Zoeken op website

LEMP (Linux, Nginx, MariaDB, PHP-FPM) installeren op Debian 9 Stretch


Omdat Debian een groot percentage van de webservers over de hele wereld beheert, zullen we in dit artikel uitleggen hoe u de LEMP (Linux + Nginx) installeert + MariaDB + PHP-FPM) stapelen op Debian 9 Stretch als alternatief voor LAMP (gebruik deze handleiding om installeer LAMP op Debian 9).

Daarnaast laten we zien hoe je een minimale Nginx/PHP-FPM configuratie uitvoert, zodat zelfs nieuwe systeembeheerders geheel nieuwe webservers kunnen opzetten om dynamische pagina's op te zetten.

Om dit te doen, zullen we gebruik maken van de recente updates van de officiële repositories van de distributie. Er wordt aangenomen dat u Debian 9 op een bare metal, virtuele machine of VPS hebt geïnstalleerd, of een upgrade van Jessie hebt uitgevoerd.

LEMP installeren in Debian 9 Stretch

Je vraagt je misschien af waarom we PHP-FPM in plaats van PHP hebben genoemd als onderdeel van de LEMP-stack. In tegenstelling tot andere webservers biedt Nginx geen native ondersteuning voor PHP.

Om die reden wordt PHP-FPM (Fast Process Manager) gebruikt om verzoeken voor PHP-pagina's af te handelen. U kunt meer leren over PHP-FPM op de officiële PHP-site.

De standaardversie die wordt aangeboden in de Debian-opslagplaatsen php7.0-fpm. Zoals je waarschijnlijk kunt raden op basis van de naam van het pakket, kan deze versie zelfs verzoeken naar pagina's met PHP 7-code afhandelen.

OPMERKING: als Apache eerder in dezelfde box is geïnstalleerd, zorg er dan voor dat deze is gestopt en uitgeschakeld voordat u doorgaat.

Dat gezegd hebbende, laten we de componenten van de LEMP-stack als volgt installeren:

aptitude update 
aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm

Wanneer de installatie voltooid is, zorgen we er eerst voor dat Nginx en PHP-FPM actief zijn en ingeschakeld zijn om te starten bij het opstarten:

systemctl status nginx php7.0-fpm

Als dit aangeeft dat een of beide services niet actief zijn, doe dat dan.

systemctl start nginx php7.0-fpm
systemctl enable nginx php7.0-fpm

Zoals het geval is bij elke MariaDB- of MySQL-installatie, is het belangrijk om mysql_secure_installation uit te voeren om een minimale beveiligingsconfiguratie uit te voeren en het wachtwoord in te stellen het databasehoofdaccount.

mysql_secure_installation

Als u niet weet hoe u dit moet doen, kunt u stap #4 raadplegen in MariaDB 10 installeren op Debian en Ubuntu.

Nginx configureren om PHP-FPM te gebruiken op Debian 9

Het hoofdconfiguratiebestand van Nginx is /etc/nginx/sites-available/default, waar we de volgende wijzigingen moeten aanbrengen in het serverblok:

  • Zorg ervoor dat het location-blok dat PHP-verzoeken afhandelt, is ingeschakeld, met uitzondering van het blok waarbij de fastcgi_pass-richtlijn verwijst naar de loopback-NIC.
  • Voeg index.php toe na de index richtlijn om aan te geven dat, indien gevonden, deze standaard vóór index.html of andere bestanden moet worden weergegeven.
  • Voeg de instructie servernaam toe die naar het IP-adres of de hostnaam van uw server verwijst. In ons geval is dit 192.168.0.35.
  • Zorg er bovendien voor dat de root richtlijn verwijst naar de locatie waar uw .php bestanden zullen worden opgeslagen (standaard /var/www/html) .

Wanneer u klaar bent, kunt u de volgende opdracht gebruiken om het configuratiebestand op fouten te testen.

nginx -t 

Op dit punt zou uw /etc/nginx/sites-available/default er als volgt uit moeten zien, waarbij de cijfers verwijzen naar de configuratie en de bovenstaande lijst vertegenwoordigen:

grep -Ev '#' /etc/nginx/sites-available/default

Nginx en PHP-FPM testen op Debian 9

Om er zeker van te zijn dat we nu Nginx als onze webserver gebruiken, maken we een bestand met de naam info.php in /var/www/html met de volgende inhoud:

<?php
	phpinfo();
?>

Ga dan naar http://192.168.0.35/info.php en controleer bovenaan de pagina waar je dit zou moeten zien:

Laten we ten slotte onze browser naar het bestand booksandauthors.php verwijzen dat we hebben gemaakt in Install LAMP (Linux, Apache, MariaDB of MySQL en PHP) Stack op Debian 9.

Zoals je in de volgende afbeelding kunt zien, wordt dit bestand nu aangeboden door Nginx:

OPMERKING: Als je merkt dat Nginx de .php bestanden als downloads serveert in plaats van ze uit te voeren, wis dan je browsercache of probeer een andere browser . Vooral als u Chrome gebruikt, wilt u misschien testen met de incognitomodus.

Samenvatting

In dit artikel hebben we uitgelegd hoe je Nginx installeert en configureert om dynamische .php pagina's weer te geven. Het is belangrijk op te merken dat er na deze eerste installatie instellingen zijn waarmee rekening moet worden gehouden om de webserver te beveiligen.

U kunt een basissamenvatting vinden in The Ultimate Guide to Secure, Harden and Improvement Performance of Nginx Web Server.

Als u op zoek bent naar virtuele hosting op Nginx, lees dan Hoe u op naam gebaseerde en IP-gebaseerde virtuele hosts op NGINX kunt instellen.

Aarzel zoals altijd niet om ons te laten weten of u vragen of opmerkingen heeft over dit artikel.