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


På grund af sin Rolling Release-model, der omfavner skæreåldersoftware, blev Arch Linux ikke designet og udviklet til at køre som server for at levere pålidelige netværkstjenester, fordi det kræver ekstra tid til vedligeholdelse, konstante opgraderinger og fornuftige filkonfigurationer.

Men stadig, fordi Arch Linux leveres med en cd-kerneinstallation med minimal software forudinstalleret, kan det repræsentere et solidt startstartpunkt til at installere de fleste af de populære netværkstjenester i disse dage, dette inklusive < b> LEMP eller LAMP , Apache-webserver, Nginx, PHP, SQL-databaser, Samba, FTP-servere, BIND og andre, hvoraf mange leveres fra Arch Officielle Linux-arkiver og andre fra AUR .

Denne vejledning vil guide gennem installation og konfiguration af LEMP stak (Nginx, PHP, MySQL med MariaDB-motor og PhpMyAdmin) fra en ekstern SSH-bruger, som kan give et stærkt fundament til at opbygge webserverapplikationer.

Forrige Arch Linux installationsvejledning, undtagen sidste del om netværk med DHCP.

Trin 1: Tildel statisk IP på netværksgrænsefladen

1. Efter minimal Arch Linux kerneinstallation genstart din server, log ind med root-konto eller tilsvarende administrativ sudo-konto, og identificer dine system-NIC'er enhedsnavne ved hjælp af kommandoen ip link .

# ip link

2. For at tildele statiske netværkskonfigurationer skal vi bruge pakken Netctl til at administrere netværksforbindelser. Når du har identificeret dine netværksgrænseflader navne, kopier ethernet-statisk filskabelon til netctl systemstien og skift dens navn til et beskrivende navngivningsskema ( prøv at bruge " statisk " streng kombineret med NIC's navn) ved at udstede følgende kommando.

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

3. Det næste trin er at redigere denne nye skabelonfil ved at ændre filens direktiver og give dine faktiske netværksindstillinger (Interface, IP/Netmask, Gateway, Broadcast, DNS) som i nedenstående uddrag.

# 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 næste trin er at starte din netværksforbindelse via netctl systemværktøjet og kontrollere din systemforbindelse ved at udstede følgende kommandoer.

# netctl start static.ens33
# netctl status static.ens33

5. Hvis du får en aktiv grøn exitstatus, har du konfigureret din netværksgrænseflade , og det er tid til automatisk at aktivere den i hele systemet. Test også dit netværk ved at køre en ping -kommando mod et domænenavn, og installer også net-tools -pakken (den mest kendte funktion i denne pakke er ifconfig-kommando, som Arch udviklere, der anses for at være forældede, og erstattede den med iproute2 ).

# netctl enable static.ens33
# pacman -S net-tools

6. Nu kan du køre kommandoen ifconfig for at bekræfte dine indstillinger for netværksgrænseflader og kontrollere, om alt vises korrekt, og derefter genstarte dit system for at sikre alt er på plads og korrekt konfigureret.

# ping linux-console.net

Trin 2: Installer LEMP-software

Som påpeget i denne artikel står LEMP for Linux + Nginx + PHP/PhpMyAdmin + MySQL/MariaDB, som er en af de mest udbredte webapplikationsplatforme i dag efter LAMP ( samme stak med Apache i ligning).

7. Før vi faktisk installerer LEMP stack, skal vi opdatere systemet og derefter få fjernbetjening til Arch Linux -serveren. Som du sikkert ved, er OpenSSH hovedkandidaten til dette job, så fortsæt med at installere det, start SSH-dæmonen og aktiver den i hele systemet.

$ sudo pacman -Syu
$ sudo pacman –S openssh
$ sudo systemctl start sshd
$ sudo systemctl status sshd
$ sudo systemctl enable sshd

Nu er det tid til at fortsætte med LEMP installation. Fordi denne tutorial er beregnet til at være som en omfattende guide, vil jeg opdele LEMP stakinstallation i små stykker trin for trin.

8. Installer først Nginx Web Server , start den og bekræft dens status ved at udstede følgende kommandoer.

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

9. Den næste tjeneste, der skal installeres, er MySQL -databasen. Udsted følgende kommando for at installere MySQL-databaseserver og vælg MariaDB -motor, start derefter og bekræft dæmonstatus.

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

10. Det næste trin er at give et meget sikkert miljø til MySQL-databaser ved at give en adgangskode til MySQL-rodkonto, fjerne anonym brugerkonto, fjerne testdatabase og rodkonti, der er tilgængelige uden for localhost. Kør følgende kommando for at forbedre MySQL-sikkerheden, tryk på [ Indtast ] for at få adgang til den nuværende root-kontoadgangskode, og svar derefter Ja på alle spørgsmål (opsæt også din root-kontoadgangskode).

$ sudo mysql_secure_installation

Bemærk: Under ingen omstændigheder må du ikke forveksle MySQL-root-konto med Linux-system-root-konto - de er to forskellige ting - ikke så forskellige, men de kører på forskellige niveauer.

For at bekræfte MySQL-sikkerhedslogin til databasen ved hjælp af mysql -u root -p kommandosyntaks, skal du angive din rodadgangskode og derefter forlade databasen med kommandoen exit; .

# mysql -u root -p

11. Nu er det tid til at installere PHP scriptsprog på serversiden for at kunne udvikle og køre komplekse dynamiske webapplikationer, ikke kun HTML/CSS -kode.

Fordi vi bruger Nginx som en webserver, er vi nødt til at installere PHP-FPM -modul, der understøttes for at kommunikere gennem Hurtig fælles gateway og ændre genereret dynamisk indhold af PHP-scripts.

Udsted følgende kommandolinje for at installere tjenesten PHP-FPM , start derefter dæmonen og bekræft status.

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

For at liste alle tilgængelige PHP-modul skal du udstede følgende kommandoer.

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

12. Et af de sidste trin er at installere PhpMyAdmin Web Interface til MySQL-database. Udsted følgende kommando for at installere PhpMyAdmin sammen med sit PHP-nødvendige modul, og opret derefter et symbolsk link til PhpMyaAdmin-systemstien til Nginx-standardrodstien.

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

13. Konfigurer derefter php.ini -filen, så den inkluderer de nødvendige udvidelser, der er nødvendige af PhpMyAdmin-applikationen.

$ sudo nano /etc/php/php.ini

Find med [ CTRL + W ] -tasterne og fjern kommentar (fjern ; ved linjens begyndelse) de følgende linjer.

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

Find og rediger open_basedir -direktivet i samme fil for at ligne de følgende inkluderede mapper.

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

14. Det næste trin er at aktivere PHP-FPM FastCGI på localhost Nginx-direktivet. Udgiv den næste kommando for at sikkerhedskopiere nginx.conf konfigurationen af webserverfilen, og udskift den med følgende indhold.

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

Tilføj hele følgende indhold 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. Når alle filkonfigurationer er foretaget, er alt hvad du skal gøre, at genstarte Nginx og PHP-FPM tjenester og pege din browser på http:/localhost/phpmyadmin URL fra lokal node eller http:/arch_IP/phpmyadmin danner en anden computer.

$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx

16. Hvis alt kører som beregnet, er det sidste trin at aktivere LEMP system bredt med følgende kommandoer.

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

Tillykke! Du har installeret og konfigureret LEMP Arch Linux , og nu har du en fuld dynamisk grænseflade til at starte og udvikle webapplikationer.

Selvom Arch Linux ikke er det mest bedst egnede system til at køre på produktionsservere på grund af dets community-orienterede rullende frigivelsesmodel, kan det være en meget hurtig og pålidelig kilde til små ikke-kritiske produktionsmiljøer.