Installere LEMP (Nginx, PHP, MySQL med MariaDB-motor og PhpMyAdmin) i Arch Linux


På grunn av den rullende utgivelsesmodellen som omfatter skjærende programvare, ble Arch Linux ikke designet og utviklet for å kjøre som en server for å tilby pålitelige nettverkstjenester fordi det krever ekstra tid til vedlikehold, konstante oppgraderinger og fornuftige filkonfigurasjoner.

Men likevel, fordi Arch Linux kommer med en CD-kjerneinstallasjon med minimal programvare forhåndsinstallert, kan det representere et solid oppstartspunkt for å installere de fleste av de populære nettverkstjenestene i disse dager, dette inkludert < b>LEMP eller LAMP, Apache Web Server, Nginx, PHP, SQL-databaser, Samba, FTP-servere, BIND og andre, mange av dem leveres fra Arch Offisielle Linux-repositorier og andre fra AUR.

Denne opplæringen vil veilede gjennom installasjon og konfigurering av LEMP-stack (Nginx, PHP, MySQL med MariaDB-motor og PhpMyAdmin) fra en eksternt bruker SSH, som kan gi et sterkt grunnlag for å bygge webserverapplikasjoner.

Krav

Tidligere Arch Linux-installasjonsveiledning, bortsett fra siste del om nettverk med DHCP.

Trinn 1: Tilordne statisk IP på nettverksgrensesnittet

1. Etter minimal Arch Linux kjerneinstallasjon, start serveren på nytt, logg på med root-konto eller tilsvarende administrativ sudo-konto, og identifiser system-NICs enhetsnavn ved hjelp av ip-kobling kommando.

ip link

2. For å tilordne statiske nettverkskonfigurasjoner skal vi bruke pakken Netctl for å administrere nettverkstilkoblinger. Etter at du har identifisert Nettverksgrensesnitt-navnene dine, kopier ethernet-statisk filmalen til netctl-systembanen og endre navnet til et beskrivende navneskjema ( prøv å bruke "statisk"-streng kombinert med NICs navn), ved å gi følgende kommando.

cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. Det neste trinnet er å redigere denne nye malfilen ved å endre filens direktiver og oppgi dine faktiske nettverksinnstillinger (grensesnitt, IP/nettmaske, gateway, kringkasting, DNS) som i utdraget nedenfor.

nano  /etc/netctl/static.ens33

Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')

4. Det neste trinnet er å starte nettverkstilkoblingen gjennom systemverktøyet netctl og bekrefte systemtilkoblingen ved å utstede følgende kommandoer.

netctl start static.ens33
netctl status static.ens33

5. Hvis du får en aktiv grønn avslutningsstatus, har du konfigurert nettverksgrensesnittet og det er på tide å aktivere det automatisk på systemomfattende tjenester. Test også nettverket ditt ved å kjøre en ping-kommando mot et domenenavn, og installer også net-tools-pakken (den mest kjente funksjonen i denne pakken er ifconfig-kommandoen som Arch utviklere ansett for å være utdatert og erstattet den med iproute2).

Aktiver systemomfattende NICs konfigurasjoner
netctl enable static.ens33
Installer net-tools-pakken
pacman -S net-tools

6. Nå kan du kjøre kommandoen ifconfig for å bekrefte innstillingene for Nettverksgrensesnitt og sjekke om alt vises riktig, og deretter starte på nytt b> systemet ditt for å sikre at alt er på plass og riktig konfigurert.

ping linux-console.net

Trinn 2: Installer LEMP-programvaren

Som påpekt i denne artikkelintroduksjonen står LEMP for Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, som er en av de mest utbredte nettapplikasjonsplattformene i dag etter LAMP (den samme stabel med Apache i ligningen).

7. Før vi faktisk installerer LEMP-stabelen, må vi oppdatere systemet og deretter få fjernkontroll til Arch Linux-serveren. Som du sikkert vet er OpenSSH hovedkandidaten for denne jobben, så fortsett og installer den, start SSH daemon og aktiver den hele systemet.

sudo pacman -Syu
sudo pacman –S openssh

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd

Nå er det på tide å fortsette med installasjonen av LEMP. Fordi denne opplæringen er ment å være en omfattende veiledning, vil jeg dele LEMP-stabelinstallasjonen i små biter, trinn for trinn.

8. Installer først Nginx Web Server, start den og bekreft statusen ved å utstede følgende kommandoer.

sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl status nginx

9. Den neste tjenesten som skal installeres er MySQL-databasen. Utfør følgende kommando for å installere MySQL-databaseserveren og velg MariaDB-motoren, start og verifiser daemonstatus.

sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl status mysqld

10. Det neste trinnet er å gi et svært trygt miljø for MySQL-databaser ved å oppgi et passord for MySQL-rotkontoen, fjerne anonym brukerkonto, fjerne testdatabasen og root-kontoer som er tilgjengelige fra utenfor localhost. Kjør følgende kommando for å forbedre MySQL-sikkerheten, trykk [Enter] for gjeldende rootkontopassord, og svar deretter Ja på alle spørsmål (konfigurer også rootkontopassordet).

sudo mysql_secure_installation

Merk: Ikke forveksle MySQL-rotkonto med Linux-systemrotkonto – det er to forskjellige ting – ikke så forskjellige, men de kjører på forskjellige nivåer.

For å verifisere MySQL-sikkerhetspålogging til databasen ved å bruke kommandosyntaksen mysql -u root -p, oppgi root-passordet og forlater databasen med kommandoen exit;.

mysql -u root -p

11. Nå er det på tide å installere PHP skriptspråk på serversiden for å kunne utvikle og kjøre komplekse dynamiske nettapplikasjoner, ikke bare tjene HTML/CSS b> kode.

Fordi vi bruker Nginx som en webserver, må vi installere en PHP-FPM-støttet modul for å kommunisere gjennom Fast Common Gateway og endre dynamisk innhold generert av PHP-skript.

Utfør følgende kommandolinje for å installere PHP-FPM-tjenesten, start deretter daemon og bekreft status.

sudo pacman –S php php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm

For å liste alle tilgjengelige PHP-moduler utfør følgende kommandoer.

sudo pacman –S php[TAB]
sudo pacman –Ss | grep php

12. Et av de siste trinnene er å installere PhpMyAdmin Web Interface for MySQL-databasen. Utfør følgende kommando for å installere PhpMyAdmin sammen med dens PHP-nødvendige modul, og lag deretter en symbolsk lenke for PhpMyaAdmin-systembanen til Nginx standard rotbane.

pacman -S phpmyadmin php-mcrypt
sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. Konfigurer deretter filen php.ini til å inkludere nødvendige utvidelser som kreves av PhpMyAdmin-applikasjonen.

sudo nano /etc/php/php.ini

Finn med [CTRL+W]-tastene og avkommenter (fjern ; ved linjen som begynner) følgende linjer.

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

På samme fil finn og rediger open_basedir-direktivet for å ligne med følgende inkluderte kataloger.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. Neste trinn er å aktivere PHP-FPM FastCGI på localhost Nginx-direktivet. Utfør neste kommando for å sikkerhetskopiere nginx.conf nettserverfilkonfigurasjon og erstatt den med følgende innhold.

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo nano /etc/nginx/nginx.conf

Legg til hele følgende innhold på nginx.conf.

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
            root   /usr/share/nginx/html;
        charset koi8-r;
        location / {
        index  index.php index.html index.htm;
                                autoindex on;
                                autoindex_exact_size off;
                                autoindex_localtime on;
        }

                                location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

 error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

        location ~ /\.ht {
            deny  all;
        }
    }         
}

15. Etter at alle filkonfigurasjoner er gjort, er alt du trenger å gjøre å starte Nginx- og PHP-FPM-tjenestene på nytt og peke nettleseren til http://localhost/phpmyadmin URL fra lokal node eller http://arch_IP/phpmyadmin fra en annen datamaskin.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Hvis alt går etter hensikten, er det siste trinnet å aktivere LEMP hele systemet med følgende kommandoer.

sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl enable mysqld

Gratulerer! Du har installert og konfigurert LEMPArch Linux, og nå har du et fullstendig dynamisk grensesnitt for å starte og utvikle nettapplikasjoner.

Selv om Arch Linux ikke er det mest best egnede systemet for å kjøre på produksjonsservere på grunn av dens fellesskapsorienterte rullende utgivelsesmodellen, kan det være en veldig rask og pålitelig kilde for små ikke-kritiske produksjonsmiljøer.