Zoeken op website

LEMP installeren en configureren op Debian 8 (Jessie)


Een van de meest voorkomende redenen om een Linux-systeem op te zetten is het hosten van een website(s). Volgens het onderzoek van NetCraft.com uit februari 2016 onder de 1 miljoen drukste websites ter wereld, draait ongeveer 15,60% daarvan op Nginx.

Gecombineerd met de grote waarschijnlijkheid dat er een soort dynamische inhoud wordt aangeboden, evenals een soort database-back-end voor de websites, de mogelijkheid voor een beheerder om LEMP-servers in te stellen Dit is zeer voordelig voor zowel werkzoekenden als werkgevers!

In deze tutorial worden de basisbeginselen besproken van het installeren en configureren van een Linux-server (in het bijzonder Debian 8 Jessie) om te functioneren als een LEMP-server.

Wat is LEMP-server?

Geweldige vraag! Zoals met de meeste dingen in de computerwereld is LEMP een acroniem voor Linux, Nginx, MySQL en PHP.

Dit acroniem wordt vaak gebruikt om te verwijzen naar softwarecollecties op een webserver. In deze tutorial wordt eerst uitgelegd hoe u LEMP instelt, met name MySQL en PHP.

Voordat we ingaan op de configuratieaspecten van de systemen, is het belangrijk om iets te weten over Nginx.

Wat is Nginx?

Nginx begon zijn leven in 2002 toen de computerwereld zich begon te realiseren dat websites met tienduizend of meer gelijktijdige verbindingen een zeer reële mogelijkheid waren en als gevolg daarvan werd Nginx helemaal opnieuw gemaakt om dit probleem aan te pakken.

Installeren en configureren van een MySQL en PHP

1. In dit eerste deel wordt Debian behandeld als een MySQL- en PHP-server. Het Linux-gedeelte van de LEMP-server zou al voltooid moeten zijn door Debian te installeren! Mocht er echter behoefte zijn aan een handleiding over het installeren van Debian, lees dan het volgende artikel op TecMint:

  1. Installatie van Debian 8 Jessie

Zodra Debian klaar is om aan de slag te gaan, kan het proces van het installeren van de rest van de benodigde software worden voltooid met één snelle opdracht met behulp van de ‘apt‘ meta-packager.

apt-get install mysql-server-5.5 php5-mysql php5

Afhankelijk van de systeemhardware en de internetverbinding kan dit proces enige tijd duren. Op het moment dat ik dit schrijf, was voor een nieuwe installatie van Debian Jessie, waarbij alle updates waren toegepast, ongeveer 70 MB aan archieven uit de repository's nodig (niet zo slecht als je bedenkt wat de server zal doen als alles klaar is)! Tijdens het installatieproces kan het systeem de gebruiker vragen een SQL-rootgebruikerswachtwoord in te stellen. Dit is anders dan het daadwerkelijke wachtwoord van de rootgebruiker en zou om veiligheidsredenen waarschijnlijk anders moeten blijven.

2. Zodra apt klaar is met het installeren van alle software, zijn de basisservices actief. Hier stoppen zou echter een zeer korte tutorial opleveren! Laten we dus wat dieper ingaan op de configuratie van elk geïnstalleerd stukje software, te beginnen met MySQL.

3. Na de installatie van MySQL wordt vaak aanbevolen dat de SQL-server wat basisonderhoud uitvoert tijdens de standaardinstallatie. Dit kunt u eenvoudig bereiken met het hulpprogramma mysql_secure_installation.

Deze opdracht wordt eenvoudigweg uitgevoerd vanaf de opdrachtregel en zal de gebruiker vragen zaken te verwijderen zoals anonieme gebruikers, testdatabases en de mogelijkheid om op afstand in te loggen als rootgebruiker bij de SQL-database.

mysql_secure_installation

Deze opdracht start een interactieve prompt die vragen stelt over de bovenstaande onderwerpen. Omdat apt al om een MySQL root-wachtwoord heeft gevraagd, moet dat wachtwoord worden ingevoerd om eventuele wijzigingen aan te brengen. Omdat het root-wachtwoord al is ingesteld, kan Nee het antwoord zijn op de vraag over het wijzigen van het root-wachtwoord op de MySQL-server.

4. De volgende reeks vragen gaat over anonieme gebruikers, de 'test'-database en root-toegang tot de database op afstand. Het is doorgaans veilig om op al deze vragen Ja te antwoorden, tenzij er een specifieke reden is waarom de installatie een van deze opties intact moet laten.

OPMERKING: Er kan een fout optreden bij het niet verwijderen van een database met de naam 'test'. Maak je hier geen zorgen over, aangezien de database dat wel kan doen. bestaat mogelijk niet en het script zal hoe dan ook blijven doen wat nodig is.

Op dit punt is MySQL klaar voor gebruik. Zonder te weten welke databases of gebruikers nodig zijn, is het moeilijk om veel meer configuratie uit te voeren. De meeste websites zullen echter vaak automatisch de benodigde databases en gebruikers aanmaken wanneer de software wordt geïnstalleerd. Dit is echter erg softwareafhankelijk en vereist een snelle blik op de README-bestanden of installatie-instructies van de software.

5. Nu MySQL is geconfigureerd, gaan we verder en configureren we enkele basisinstellingen voor PHP voor deze specifieke server. Hoewel er talloze instellingen zijn die voor PHP kunnen worden gemanipuleerd, zijn er slechts een paar basisinstellingen die bijna altijd moeten worden gewijzigd. Het php-configuratiebestand bevindt zich op /etc/php5/fpm/php.ini. Open dit bestand met een willekeurige teksteditor.

nano /etc/php5/fpm/php.ini

Gebruik de zoekmogelijkheden van nano ctrl+w en zoek naar de tekenreeks “memory_limit ” (laat de aanhalingstekens weg). Bij een standaardinstallatie is deze regel al ingesteld op 128M, maar mocht een applicatie meer nodig hebben, dan kan deze regel worden gewijzigd om aan de vereisten te voldoen.

Een andere belangrijke optie om te controleren is de “max_execution_time” en deze wordt standaard ingesteld op 30. Mocht een toepassing meer vereisen, dan kan deze optie worden gewijzigd. Sommige mensen geven er de voorkeur aan om php-logboekregistratie ook in een speciaal bestand/map in te stellen. Mocht dit een vereiste zijn, zoek dan naar de tekenreeks “error_log = ” en verwijder vervolgens de commentaartekens van de regel door de puntkomma te verwijderen die daar doorgaans standaard staat.

Op dit punt kan een waarde voor het logbestand aan het einde van de regel worden toegevoegd. Zorg ervoor dat het pad op het systeem bestaat. Zodra u klaar bent met het aanbrengen van de noodzakelijke wijzigingen in het bestand php.ini, slaat u de wijzigingen op en sluit u de teksteditor af. Op dit punt zijn MySQL en PHP5 klaar om sites te gaan hosten. Nu is het tijd om Nginx te configureren.

Nginx installeren en configureren

6. Nginx (engine X) is een alternatieve en zeer krachtige webserver. In dit gedeelte van deze tutorial wordt uitgelegd hoe u een webpagina kunt instellen die Nginx kan hosten. De eerste stap bij het configureren van Nginx is het installeren van de benodigde pakketten met behulp van het hulpprogramma ‘apt’.

apt-get install nginx

Ervan uitgaande dat aan alle afhankelijkheden is voldaan, zou het navigeren naar het IP-adres van de server in een webbrowser de standaard Nginx-website moeten opleveren.

OPMERKING: Er zijn gevallen waarin na het installeren van Nginx de server niet automatisch wordt gestart. Als het navigeren naar het IP-adres van de server in een webbrowser de onderstaande pagina niet oplevert, voer dan de volgende opdracht uit om ervoor te zorgen dat Nginx wordt gestart.

service nginx start

Nginx host nu met succes de standaardpagina. Hoewel de standaardpagina van Debian een flitsende website is, zullen de meeste gebruikers iets op maat willen hosten.

7. De volgende stappen omvatten het instellen van Nginx om een andere website te hosten. Nginx heeft, net als Apache 2, zijn eigen configuratiemap, gelegen op /etc/nginx. Ga naar deze map met behulp van het hulpprogramma cd.

cd /etc/nginx

Voor deze tutorial zijn er verschillende belangrijke bestanden en mappen voor het opzetten van een website met Nginx. De eerste twee mappen die belangrijk zijn, zijn de ‘sites-available’ en de ‘sites-enabled‘ mappen. Net als Apache 2 gebruikt Nginx configuratiebestanden voor elke site in de map die beschikbaar is voor sites, die, wanneer ze actief zijn, symbolisch zijn gekoppeld in de map die geschikt is voor sites.

Het eerste dat nodig is om van de standaardsite af te komen, is het verwijderen van de symbolische link in sites waarvoor sites zijn ingeschakeld.

rm sites-enabled/default

8. Nu moet een nieuw siteconfiguratiebestand worden gemaakt en gekoppeld zodat Nginx de pagina kan weergeven. Het maken van het siteconfiguratiebestand kan worden vereenvoudigd door de standaardsiteconfiguratie te kopiëren en te wijzigen.

cp sites-available/default sites-available/tecmint-test

Hierdoor wordt een nieuw siteconfiguratiebestand gemaakt om mee te werken. Open dit bestand in een teksteditor om het pad te wijzigen waarnaar Nginx bestanden zal weergeven.

nano sites-available tecmint-test

Binnen dit bestand zijn er verschillende belangrijke opties die u kunt wijzigen zodat Nginx een site kan bedienen. De eerste is de regel die begint met ‘root‘, aangezien deze regel definieert waar Nginx bestanden voor deze specifieke site moet aanbieden.

Deze tutorial laat de standaardinstelling ‘/var/www/html’ staan en plaatst eenvoudigweg de HTML-bestanden die moeten worden weergegeven in deze map. Zorg er echter voor dat u dit pad wijzigt als er meerdere sites of een aangepaste configuratie op deze server nodig zijn.

De volgende belangrijke regel is de ‘index‘ regel. Omdat dit artikel gaat over LEMP-installatie en een site mogelijk php-pagina's kan aanbieden, moet Nginx ervan op de hoogte worden gesteld dat de standaardpagina een php-pagina kan zijn. Om dit te doen, voegt u eenvoudig ‘index.php‘ toe aan het einde van de indexlijst met bestanden.

Voordat de nieuwe site kan worden ingeschakeld, moet er iets zijn dat Nginx kan bedienen. De standaardindexpagina bestaat al, maar om te bevestigen dat een andere site werkt, vervangen we de inhoud van de standaardpagina door iets anders.

echo “It's ALIVE!” > /var/www/html/index.html

9. De volgende stap is het inschakelen van de nieuwe site door het zojuist gemaakte configuratiebestand te koppelen aan de map sites-enabled. Dit kan eenvoudig worden bereikt door het gebruik van de opdracht ln en vervolgens het opnieuw laden van de configuratie van Nginx met het servicehulpprogramma.

ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
service nginx reload

Op dit punt zou Nginx de nieuwe ‘eenvoudige’ webpagina moeten bedienen. Dit kan worden bevestigd door via een webbrowser naar het IP-adres van de server te navigeren!

Nogmaals, dit artikel was bedoeld om heel eenvoudige configuraties van LEMP te beschrijven. De meeste sites vereisen verdere configuratie van alle betrokken onderdelen, maar de configuratie-opties kunnen in de duizenden lopen! Veel succes bij welke opstelling dan ook die is gekozen om websites te hosten.