Namestitev LEMP (Nginx, PHP, MySQL z motorjem MariaDB in PhpMyAdmin) v Arch Linux


Model Rolling Release, ki vključuje programsko opremo za rezanje starosti, Arch Linux ni bil zasnovan in razvit za delovanje kot strežnik za zagotavljanje zanesljivih omrežnih storitev, ker zahteva dodaten čas za vzdrževanje, nadgradnje konstant in smiselne konfiguracije datotek.

A kljub temu, ker Arch Linux prihaja z namestitvijo jedra CD-ja z minimalno vnaprej nameščeno programsko opremo, lahko predstavlja trdno izhodišče za namestitev večine priljubljenih omrežnih storitev v današnjem času, vključno z < b> LEMP ali LAMP , spletni strežnik Apache, Nginx, PHP, zbirke podatkov SQL, Samba, strežniki FTP, BIND in drugi, mnogi od njih so na voljo iz Arch Uradna skladišča Linuxa in druga podjetja AUR .

Ta vadnica vas bo vodila skozi namestitev in konfiguriranje sklada LEMP (Nginx, PHP, MySQL z mehanizmom MariaDB in PhpMyAdmin) z oddaljene SSH, ki je lahko močan temelj za izdelavo aplikacij spletnih strežnikov.

Prejšnji vodnik za namestitev Arch Linuxa, razen zadnjega dela o povezovanju z DHCP.

1. korak: dodeli statični IP omrežnemu vmesniku

1. Po minimalni namestitvi jedra Arch Linux znova zaženite strežnik, se prijavite s korenskim računom ali enakovrednim skrbniškim sudo računom in z ukazom ip link določite imena svojih sistemskih NIC-jev.

# ip link

2. Za dodelitev statičnih omrežnih konfiguracij bomo za upravljanje omrežnih povezav uporabili paket Netctl . Po uspešni identifikaciji imen Omrežni vmesniki kopirajte ethernet-statično predlogo datoteke v sistemsko pot netctl in spremenite njeno ime v opisno shemo poimenovanja ( poskusite uporabiti niz » statični « v kombinaciji z imenom NIC), tako da izdate naslednji ukaz.

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

3. Naslednji korak je urediti to novo datoteko s predlogo tako, da spremenite direktive datoteke in zagotovite dejansko omrežne nastavitve (vmesnik, IP/mrežna maska, prehod, oddajanje, DNS), kot je v spodnjem odlomku.

# 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. Naslednji korak je zagon omrežne povezave s sistemskim orodjem netctl in preverjanje sistemske povezave z izdajo naslednjih ukazov.

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

5. Če dobite aktivno zeleno stanje izstopa, ste uspešno konfigurirali svoj Omrežni vmesnik in čas je, da ga samodejno omogočite v sistemskih storitvah. Preizkusite tudi svoje omrežje tako, da zaženete ukaz ping proti domenskemu imenu in namestite tudi paket net-tools (najbolj znana značilnost tega paketa je ukaz ifconfig, ki Arch razvijalci, ki so bili nekako zastareli, in so ga nadomestili z iproute2 ).

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

6. Zdaj lahko zaženete ukaz ifconfig , da preverite nastavitve Omrežni vmesniki in preverite, ali je vse pravilno prikazano, nato znova zaženite sistem in se prepričajte vse je na svojem mestu in pravilno konfigurirano.

# ping linux-console.net

2. korak: Namestite programsko opremo LEMP

Kot je poudarjeno v tem članku, uvod LEMP pomeni Linux + Nginx + PHP/PhpMyAdmin + MySQL/MariaDB, ki je danes ena od najbolj razširjenih platform spletnih aplikacij po LAMP ( enak kup z Apachejem v enačbi).

7. Pred dejansko namestitvijo sklada LEMP moramo posodobiti sistem in nato pridobiti daljinski upravljalnik za strežnik Arch Linux . Kot verjetno že veste, da je OpenSSH glavni kandidat za to opravilo, zato ga namestite, zaženite demon SSH in ga omogočite v celotnem sistemu.

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

Zdaj je čas, da nadaljujete z namestitvijo LEMP . Ker je ta vadnica namenjena izčrpnemu vodniku, bom korak za korakom razdelil namestitev sklada LEMP na majhne koščke.

8. Najprej namestite spletni strežnik Nginx , nato ga zaženite in preverite njegovo stanje z izdajo naslednjih ukazov.

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

9. Naslednja storitev, ki jo je treba namestiti, je baza podatkov MySQL. Z naslednjim ukazom namestite strežnik baz podatkov MySQL in izberite motor MariaDB , nato zaženite in preverite stanje demona.

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

10. Naslednji korak je zagotoviti zelo varno okolje za zbirke podatkov MySQL, tako da zagotovite geslo za korenski račun MySQL, odstranite anonimni uporabniški račun, odstranite testno bazo podatkov in korenske račune, ki so dostopni zunaj lokalnega gostitelja. Zaženite naslednji ukaz za izboljšanje varnosti MySQL, pritisnite [ Enter ] za trenutno geslo korenskega računa, nato odgovorite Da na vsa vprašanja (nastavite tudi geslo za korenski račun).

$ sudo mysql_secure_installation

Opomba: V nobenem primeru ne zamenjajte korenskega računa MySQL s sistemskim korenskim računom Linux - gre za dve različni stvari - ne tako različni, vendar delujeta na različnih ravneh.

Če želite preveriti varnostno prijavo MySQL v bazo podatkov s sintakso ukaza mysql -u root -p , vnesite svoje korensko geslo in zapustite bazo podatkov z ukazom exit;

# mysql -u root -p

11. Zdaj je čas, da namestite PHP skriptni jezik na strežniški strani, da lahko razvijate in zaženete zapletene dinamične spletne aplikacije, ne pa samo kode HTML/CSS .

Ker kot spletni strežnik uporabljamo Nginx , moramo za komunikacijo prek Fast Common Gateway in spreminjanje ustvarjene dinamične vsebine namestiti modul, podprt s PHP-FPM . s PHP skripti.

Za namestitev storitve PHP-FPM izdajte naslednjo ukazno vrstico, nato zaženite demon in preverite stanje.

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

Če želite seznam vseh razpoložljivih modulov PHP , izdajte naslednje ukaze.

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

12. Eden zadnjih korakov je namestitev Spletnega vmesnika PhpMyAdmin za bazo podatkov MySQL. Z naslednjim ukazom namestite PhpMyAdmin skupaj s potrebnim modulom PHP, nato ustvarite simbolno povezavo za sistemsko pot PhpMyaAdmin do privzete korenske poti Nginx.

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

13. Nato konfigurirajte datoteko php.ini , da vključuje potrebne razširitve, ki jih potrebuje aplikacija PhpMyAdmin.

$ sudo nano /etc/php/php.ini

Poiščite s tipkami [ CTRL + W ] in pokomentirajte (odstranite ; na začetku vrstice) naslednje vrstice.

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

V isti datoteki poiščite in uredite open_basedir direktivo, da bo podobna naslednjim vključenim imenikom.

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

14. Naslednji korak je omogočiti PHP-FPM FastCGI na direktivi localhost Nginx. Z naslednjim ukazom varnostno kopirajte konfiguracijo datoteke spletnega strežnika nginx.conf in ga nato zamenjajte z naslednjo vsebino.

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

Na nginx.conf dodajte celotno naslednjo vsebino.

#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. Po končani konfiguraciji datotek morate le znova zagnati storitve Nginx in PHP-FPM in brskalnik usmeriti na http:// localhost/phpmyadmin URL iz lokalnega vozlišča ali http:// arch_IP/phpmyadmin iz drugega računalnika.

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

16. Če se vse zažene, kot je predvideno, je zadnji korak omogočiti sistem LEMP z naslednjimi ukazi.

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

Čestitamo! LEMP ste namestili in konfigurirali v Arch Linux in zdaj imate popoln dinamični vmesnik za zagon in razvoj spletnih aplikacij.

Čeprav Arch Linux ni najbolj primeren sistem za delovanje na produkcijskih strežnikih zaradi svojega skupnega modela usmerjenega sproščanja, je lahko zelo hiter in zanesljiv vir za majhna nekritična proizvodna okolja.