Installer LEMP - Nginx, PHP, MariaDB og PhpMyAdmin i OpenSUSE


LEMP eller Linux, Engine-x, MySQL og PHP stack er et softwarepakke bestående af open source-software installeret på Linux-operativsystemet til at køre PHP-baserede webapplikationer drevet af Nginx HTTP-serveren og MySQL/MariaDB-databasesystemet.

Denne vejledning vil guide dig om, hvordan du installerer en LEMP-stak med Nginx, MariaDB, PHP, PHP-FPM og PhpMyAdmin på OpenSuse server/desktop-udgaver.

Installation af Nginx HTTP-server

Nginx er en hurtig og pålidelig HTTP- og proxyserver, der kan håndtere højere belastning af HTTP-anmodninger. Det bruger en asynkron hændelsesdrevet tilgang til håndtering af anmodninger, og dens modulære hændelsesdrevne arkitektur kan give mere forudsigelig ydeevne under høje belastninger.

For at installere Nginx på OpenSuse skal du køre følgende kommando.

$ sudo zypper install nginx

Når Nginx er installeret, kan du starte tjenesten indtil videre og derefter aktivere den til automatisk start ved opstartstidspunktet og kontrollere status for Nginx ved at køre følgende kommandoer.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

På dette tidspunkt skal Nginx-webserveren køre, du kan også kontrollere status ved hjælp af netstat-kommandoen som vist.

$ sudo netstat -tlpn | grep nginx

Nu skal vi teste, om Nginx-installationen fungerer fint. I modsætning til andre Linux-distributioner har Nginx under openSUSE ikke et standard index.html -dokument i web-rodmappen. Vi er nødt til at oprette en ny index.html -fil under rodwebmappen "/ srv/www/htdocs" som vist.

$ echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

Hvis du har firewallld installeret, skal du åbne port 80 og 443 for at tillade webtrafik på firewall.

$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

Åbn derefter en webbrowser og naviger til adressen http:/localhost og verificer Nginx-siden.

Installation af MariaDB-databaseserver

MariaDB er en gratis og open source fork i MySQL-relationsdatabasesystemet. Den er udviklet af de oprindelige udviklere af MySQL og er beregnet til at forblive open source. MariaDB er hurtig, skalerbar og robust med et rigt økosystem af lagermotorer, plugins og mange andre værktøjer, der gør det meget alsidigt til en lang række brugssager.

For at installere MariaDB på OpenSuse skal du køre følgende kommando.

$ sudo zypper install mariadb mariadb-client 

Dernæst skal du starte MariaDB-tjenesten for nu, så aktivere den til automatisk start ved opstartstid og kontrollere dens status.

$ sudo systemctl start mariadb 
$ sudo systemctl enable mariadb 
$ sudo systemctl status mariadb 

Det næste kritiske trin under dette afsnit er at sikre MariaDB-serverinstallationen. Kør derfor sikkerhedsscriptet, der leveres med MariaDB-pakken, som vist.

Bemærk: At køre MariaDB-sikkerhedsscript og alle dets dele anbefales stærkt til alle MariaDB-servere i produktion.

$ sudo mysql_secure_installation 

Når du har kørt scriptet, skal du læse beskrivelsen ved hvert trin omhyggeligt. Du skal angive en root-brugeradgangskode, fjerne anonyme brugere, deaktivere fjernrodadgang, fjerne testdatabasen og adgang til den og til sidst genindlæse rettighedstabellen.

Installation og konfiguration af PHP og PHP-FPM

PHP-FPM (forkortelse for PHP FastCGI Process Manager) er en alternativ FastCGI-dæmon til PHP med nogle ekstra funktioner og designet til at håndtere høje belastninger. Det vedligeholder pools (arbejdstagere, der kan svare på PHP-anmodninger) for at opnå dette. Det er vigtigt, at det er hurtigere end traditionelle CGI-baserede metoder, såsom SUPHP, til PHP-miljøer til flere brugere.

For at installere PHP og PHP-FPM sammen med nødvendige moduler, kør følgende kommando.

$ sudo zypper install php php-mysql php-fpm php-gd php-mbstring

Før vi fortsætter med at starte PHP-FPM-tjenesten, skal vi oprette de nødvendige konfigurationsfiler fra de standardfiler, der leveres under installationen, og konfigurere tjenesten klar til drift.

$ sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
$ sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

Åbn derefter hovedkonfigurationsfilen php-fpm.conf til redigering.

$ sudo vim /etc/php7/fpm/php-fpm.conf 

Fjern kommentar til den følgende linje ved linjenummer 24 som vist.

error_log = log/php-fpm.log

Gem og luk filen.

Dernæst skal vi definere de korrekte indstillinger for de konfigurerede pools i konfigurationsfilen www.conf .

$ sudo vim /etc/php7/fpm/php-fpm.d/www.conf

Konfigurer først Unix-ejeren og gruppeejeren af processer til Nginx-brugeren og -gruppen. Gør dette ved at ændre værdierne for bruger- og gruppeparametrene fra ingen til nginx .

user = nginx
group = nginx

Gem nu ændringerne i filen, og afslut den.

Derudover er der endnu en vigtig konfiguration, der skal udføres, som sikrer PHP-FPM i filen /etc/php/cli/php.ini .

$ sudo vim /etc/php7/cli/php.ini

Søg efter linjen ; cgi.fix_pathinfo = 1 og skift den til.

cgi.fix_pathinfo=0

Gem ændringerne i filen, og afslut.

Dernæst skal du starte PHP-FPM-tjenesten indtil videre og derefter aktivere den til automatisk start ved opstartstid og kontrollere dens status.

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
$ sudo systemctl status php-fpm

Konfiguration af Nginx til at arbejde med PHP-FPM

På dette tidspunkt er vi nødt til at konfigurere Nginx til at arbejde med PHP-FPM i Nginx-standardkonfigurationsfilen.

$ sudo vim /etc/nginx/nginx.conf

Se derefter efter det følgende afsnit, og tilføj index.php på listen over forventede indeksfiler.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

Find også det følgende afsnit (som skal kommenteres) og fjern kommentar. Dette afsnit bruges til at overføre PHP-scripts til FastCGI-server, der lytter på 127.0.0.1:9000.

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

Gem ændringerne i filen, og afslut.

Test af Nginx og PHP-FPM

Det næste trin er at teste, om Nginx fungerer godt sammen med PHP-FPM ved at oprette en ny PHP-testfil under DocumentRoot-biblioteket som vist.

$ echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

Nu skal vi kontrollere, om Nginx-konfigurationen er korrekt som følger, inden vi fortsætter med at genstarte tjenesten.

$ sudo nginx -t

Hvis Nginx-konfigurationens syntaks er ok, skal du fortsætte og genstarte Nginx- og PHP-FPM-tjenesterne, for at de seneste ændringer skal træde i kraft.

$ sudo systemctl restart nginx php-fpm

Åbn nu en webbrowser og naviger til adressen http: //localhost/info.php for at bekræfte PHP-konfigurationen som vist i følgende skærmbillede.

Installation og konfiguration af PhpMyAdmin

phpMyAdmin er et gratis, simpelt brugervenligt og populært værktøj skrevet i PHP, bygget til administration af MySQL-server over internettet. Det understøtter en bred vifte af operationer på MySQL og MariaDB.

For at installere phpMyAdmin på OpenSuse skal du køre følgende kommando.

$ sudo zypper install phpMyAdmin

Når installationen er færdig, skal du oprette en ny vhost-konfigurationsfil for at få adgang til phpMyAdmin som vist.

$ sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

Tilføj disse følgende konfigurationer til filen.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

   location / { 
       try_files $uri /index.php?$args; 
   } 

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

Gem ændringerne, og luk filen. Genstart derefter Nginx-tjenesten med følgende kommando.

$ sudo systemctl restart nginx

Gå nu til din webbrowser, og skriv adressen http:/localhost/phpMyAdmin. En phpMyAdmin login-side skal vises som vist i det følgende skærmbillede. Indtast dine login-loginoplysninger for databasens rod, og klik på Start.

Det er alt! I denne vejledning har vi forklaret dig, hvordan du installerer en LEMP-stak med Nginx, MariaDB, PHP, PHP-FPM og PhpMyAdmin på OpenSuse server/desktop-udgaver. Hvis du står over for problemer under installationen, skal du stille dine spørgsmål via en kommentarformular nedenfor.