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 PhpMyAdmin på OpenSuse 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 Nginx på OpenSuse, 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 MariaDB på OpenSuse, 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 phpMyAdmin på OpenSuse, 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 Gå.
Det er alt! I denne opplæringen har vi forklart deg hvordan du installerer en LEMP-stabel med Nginx, MariaDB, PHP, PHP-FPM og PhpMyAdmin på OpenSuse server-/desktop-utgaver. Hvis du har problemer under oppsettet, kan du stille spørsmålene dine via et kommentarskjema nedenfor.