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


LEMP eller Linux, Engine-x, MySQL og PHP stack er en programvare pakke sammensatt av åpen kildekode-programvare installert på Linux-operativsystemet for å kjøre PHP-baserte nettapplikasjoner drevet av Nginx HTTP-serveren og MySQL/MariaDB-databasebehandlingssystemet.

Les også: Installer LAMP – Apache, PHP, MariaDB og PhpMyAdmin i OpenSUSE

Denne veiledningen vil veilede deg om hvordan du installerer en LEMP-stabel med Nginx, MariaDB, PHP, PHP-FPM og PhpMyAdminOpenSuse server-/desktop-utgaver.

Installerer Nginx HTTP Server

Nginx er en rask og pålitelig HTTP- og proxy-server som kan håndtere høyere belastning av HTTP-forespørsler. Den bruker en asynkron hendelsesdrevet tilnærming til å håndtere forespørsler, og dens modulære hendelsesdrevne arkitektur kan gi mer forutsigbar ytelse under høy belastning.

For å installere NginxOpenSuse, kjør følgende kommando.

sudo zypper install nginx

Når Nginx er installert, kan du starte tjenesten for nå, og deretter aktivere den til å starte automatisk ved oppstart og bekrefte statusen til Nginx ved å kjøre følgende kommandoer.

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

Les også: 10 mest brukte Nginx-kommandoer som alle Linux-brukere må kjenne til

På dette tidspunktet skal Nginx-webserveren være oppe og kjøre, du kan også bekrefte statusen ved å bruke netstat-kommandoen som vist.

sudo netstat -tlpn | grep nginx

Nå må vi teste om Nginx-installasjonen fungerer bra. I motsetning til andre Linux-distribusjoner, under openSUSE, har ikke Nginx et standard index.html-dokument i nettrotmappen. Vi må lage en ny index.html fil under rotnettkatalogen "/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 installert brannmur, må du åpne port 80 og 443 for å tillate nettrafikk på brannmur.

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

Deretter åpner du en nettleser og går til adressen http://localhost og bekrefter Nginx-siden.

Installere MariaDB Database Server

MariaDB er en gratis og åpen kildekode for MySQL relasjonsdatabaseadministrasjonssystemet. Det er utviklet av de opprinnelige utviklerne av MySQL og ment å være åpen kildekode. MariaDB er rask, skalerbar og robust, med et rikt økosystem av lagringsmotorer, plugins og mange andre verktøy gjør den veldig allsidig for en lang rekke brukstilfeller.

For å installere MariaDBOpenSuse, kjør følgende kommando.

sudo zypper install mariadb mariadb-client 

Start deretter MariaDB-tjenesten for nå, og aktiver den til å automatisk starte ved oppstart og sjekk statusen.

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

Det neste kritiske trinnet under denne delen er å sikre MariaDB-serverinstallasjonen. Kjør derfor sikkerhetsskriptet som følger med MariaDB-pakken, som vist.

Merk: Å kjøre MariaDB sikkerhetsskript og alle delene anbefales sterkt for alle MariaDB-servere i produksjon.

sudo mysql_secure_installation 

Etter å ha kjørt skriptet, les beskrivelsen ved hvert trinn nøye. Du bør angi et root-brukerpassord, fjerne anonyme brukere, deaktivere ekstern roottilgang, fjerne testdatabasen og tilgang til den og til slutt laste inn rettighetstabellen på nytt.

Installere og konfigurere PHP og PHP-FPM

PHP-FPM (forkortelse for PHP FastCGI Process Manager) er en alternativ FastCGI-demon for PHP med noen tilleggsfunksjoner og designet for å håndtere høy belastning. Den opprettholder bassenger (arbeidere som kan svare på PHP-forespørsler) for å oppnå dette. Viktigere, det er raskere enn tradisjonelle CGI-baserte metoder, for eksempel SUPHP, for flerbruker PHP-miljøer.

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

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

Før vi fortsetter med å starte PHP-FPM-tjenesten, må vi opprette de nødvendige konfigurasjonsfilene fra standardfilene som ble levert under installasjonen, og konfigurere tjenesten klar for operasjoner.

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

Åpne deretter hovedkonfigurasjonsfilen for php-fpm.conf for redigering.

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

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

error_log = log/php-fpm.log

Lagre og lukk filen.

Deretter må vi definere de riktige innstillingene for de konfigurerte bassengene i www.conf konfigurasjonsfilen.

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

Konfigurer først Unix-eieren og gruppeeieren av prosesser til Nginx-brukeren og -gruppen. Gjør dette ved å endre verdiene til bruker- og gruppeparametrene fra nobody til nginx.

user = nginx
group = nginx

Lagre nå endringene i filen og avslutt den.

I tillegg er det enda en viktig konfigurasjon å utføre, som sikrer PHP-FPM i /etc/php/cli/php.ini-filen.

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

Søk etter linjen ;cgi.fix_pathinfo=1 og endre den til.

cgi.fix_pathinfo=0

Lagre endringene i filen og avslutt.

Start deretter PHP-FPM-tjenesten inntil videre, og aktiver den til å automatisk starte ved oppstart og sjekk statusen.

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

Konfigurere Nginx til å fungere med PHP-FPM

På dette tidspunktet må vi konfigurere Nginx til å fungere med PHP-FPM i standard Nginx-konfigurasjonsfilen.

sudo vim /etc/nginx/nginx.conf

Se deretter etter følgende seksjon, og legg til index.php i listen over forventede indeksfiler.

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

Finn også følgende seksjon (som bør kommenteres) og fjern kommentarer. Denne delen brukes til å sende PHP-skriptene til FastCGI-serveren som 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; 
       }

Lagre endringene i filen og avslutt.

Tester Nginx og PHP-FPM

Det neste trinnet er å teste om Nginx fungerer bra sammen med PHP-FPM ved å lage en ny PHP-testfil under DocumentRoot-katalogen som vist.

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

Nå må vi sjekke om Nginx-konfigurasjonen er riktig som følger, før vi fortsetter å starte tjenesten på nytt.

sudo nginx -t

Hvis Nginx-konfigurasjonssyntaksen er ok, fortsett og start Nginx- og PHP-FPM-tjenestene på nytt for at de siste endringene skal tre i kraft.

sudo systemctl restart nginx php-fpm

Åpne nå en nettleser og naviger til adressen http://localhost/info.php for å bekrefte PHP-konfigurasjonen som vist i følgende skjermbilde.

Installere og konfigurere PhpMyAdmin

phpMyAdmin er et gratis, enkelt brukervennlig og populært verktøy skrevet i PHP, bygget for å administrere MySQL-server over nettet. Den støtter et bredt spekter av operasjoner på MySQL og MariaDB.

For å installere phpMyAdminOpenSuse, kjør følgende kommando.

sudo zypper install phpMyAdmin

Når installasjonen er fullført, lag en ny vhost-konfigurasjonsfil for tilgang til phpMyAdmin som vist.

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

Legg til disse følgende konfigurasjonene 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; 
   } 
} 

Lagre endringene og lukk filen. Start deretter Nginx-tjenesten på nytt med følgende kommando.

sudo systemctl restart nginx

Gå nå til nettleseren din og skriv inn adressen http://localhost/phpMyAdmin. En phpMyAdmin påloggingsside skal vises som vist i følgende skjermbilde. Skriv inn påloggingsinformasjonen for databaserotbruker og klikk .

Det er alt! I denne opplæringen har vi forklart deg hvordan du installerer en LEMP-stabel med Nginx, MariaDB, PHP, PHP-FPM og PhpMyAdminOpenSuse server-/desktop-utgaver. Hvis du har problemer under oppsettet, kan du stille spørsmålene dine via et kommentarskjema nedenfor.