Installazzjoni ta' LEMP (Nginx, PHP, MySQL b'magna MariaDB u PhpMyAdmin) f'Arch Linux


Minħabba l-mudell Rolling Release tiegħu li jħaddan softwer ta 'età tat-tqattigħ Arch Linux ma kienx iddisinjat u żviluppat biex jaħdem bħala server biex jipprovdi servizzi ta' netwerk affidabbli minħabba li jeħtieġ ħin żejjed għall-manutenzjoni, titjib kostanti u konfigurazzjonijiet ta 'fajls sensibbli.

Iżda, xorta waħda, minħabba li Arch Linux jiġi b'installazzjoni tal-qalba tas-CD b'softwer minimu installat minn qabel, jista 'jirrappreżenta punt ta' bidu ta' bażi solida biex tinstalla ħafna mis-servizzi tan-netwerk popolari llum, dan inkluż < b>LEMP jew LAMP, Apache Web Server, Nginx, PHP, databases SQL, Samba, servers FTP, BIND u oħrajn, ħafna minnhom huma pprovduti minn Arch Repożitorji uffiċjali tal-Linux u oħrajn minn AUR.

Dan it-tutorja se jiggwida permezz tal-installazzjoni u l-konfigurazzjoni ta 'LEMP munzell (Nginx, PHP , MySQL b'magna MariaDB u PhpMyAdmin) minn SSH bl-użu mill-bogħod, li jista' jipprovdi pedament sod biex jibnu Applikazzjonijiet Web Server.

Gwida Preċedenti għall-Installazzjoni tal-Arch Linux, ħlief l-aħħar parti dwar in-netwerking mad-DHCP.

Pass 1: Assenja l-IP Statiku fuq l-Interface tan-Netwerk

1. Wara l-installazzjoni tal-qalba minima Arch Linux ibda mill-ġdid is-server tiegħek, illoggja b'kont root jew kont sudo amministrattiv ekwivalenti, u identifika l-ismijiet tal-apparat NICs tas-sistema tiegħek billi tuża l-kmand ip link.

# ip link

2. Biex nassenjaw konfigurazzjonijiet tan-netwerk statiċi se nużaw il-pakkett Netctl biex niġġestixxu l-konnessjonijiet tan-netwerk. Wara li tkun identifikajt b'suċċess l-ismijiet tal-Interfaces tan-Netwerk tiegħek, tikkopja l-mudell tal-fajl ethernet-static fil-passaġġ tas-sistema netctl u biddel isimha għal skema ta' ismijiet deskrittiva ( ipprova uża string “statiku” flimkien ma 'isem NIC), billi toħroġ il-kmand li ġej.

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

3. Il-pass li jmiss huwa li teditja dan il-fajl tal-mudell il-ġdid billi tbiddel id-direttivi tal-fajl u tipprovdi s-settings tan-netwerk attwalment tiegħek (Interface, IP/Netmask, Gateway, Broadcast, DNS) bħal fis-silta hawn taħt.

# 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. Il-pass li jmiss huwa li tibda l-konnessjoni tan-netwerk tiegħek permezz tal-għodda tas-sistema netctl u tivverifika l-konnettività tas-sistema tiegħek billi toħroġ il-kmandi li ġejjin.

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

5. Jekk ikollok status ta' ħruġ aħdar attiv ikkonfigurajt b'suċċess l-Interface tan-Netwerk tiegħek u wasal iż-żmien li tattivah awtomatikament fis-servizzi kollha tas-sistema. Ittestja wkoll in-netwerk tiegħek billi tħaddem kmand ping kontra isem ta' dominju u wkoll, installa l-pakkett net-tools (l-iktar karatteristika magħrufa ta' dan il-pakkett hija ifconfig kmand li Arch l-iżviluppaturi qiesu li kien tip ta' deprecated u bidluha b'iproute2).

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

6. Issa tista' tħaddem il-kmand ta' ifconfig biex tivverifika l-issettjar ta' l-Interfaces tan-Netwerk tiegħek u tiċċekkja jekk kollox huwiex muri b'mod korrett, imbagħad reboot is-sistema tiegħek biex tiżgura kollox huwa f'postu u kkonfigurat kif suppost.

# ping linux-console.net

Pass 2: Installa Software LEMP

Kif indikat f'dan l-introduzzjoni ta' l-artikolu LEMP tirreferi għal Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB li hija waħda mill-pjattaformi ta' applikazzjoni tal-web l-aktar mifruxa llum wara LAMP (il- istess munzell ma Apache fl-ekwazzjoni).

7. Qabel ma attwalment ninstallaw LEMP munzell irridu naġġornaw is-sistema u mbagħad niksbu kontroll mill-bogħod fuq is-server Arch Linux. Kif probabilment taf OpenSSH huwa l-kandidat ewlieni għal dan ix-xogħol għalhekk kompli u installah, ibda d-daemon SSH u ppermettih is-sistema kollha.

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

Issa wasal iż-żmien li tipproċedi bl-installazzjoni LEMP. Minħabba li dan it-tutorja huwa maħsub li jkun bħala gwida komprensiva, ser naqsam l-installazzjoni tal-munzell LEMP f'biċċiet żgħar, pass pass.

8. L-ewwel installa Nginx Web Server, imbagħad ibdah u ivverifika l-istatus tiegħu billi toħroġ il-kmandi li ġejjin.

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

9. Is-servizz li jmiss li għandu jiġi installat huwa database MySQL. Oħroġ il-kmand li ġej biex tinstalla s-server tad-database MySQL u agħżel il-magna MariaDB, imbagħad ibda u tivverifika l-istatus tad-daemon.

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

10. Il-pass li jmiss huwa li tipprovdi ambjent sikur ħafna għad-databases MySQL billi tipprovdi password għall-kont root MySQL, neħħi kont tal-utent anonimu, neħħi d-database tat-test u l-kontijiet tal-għeruq li huma aċċessibbli minn barra localhost. Mexxi l-kmand li ġej biex ittejjeb is-sigurtà MySQL, agħfas [Daħħal] għall-password kurrenti tal-kont root, imbagħad wieġeb Iva għall-mistoqsijiet kollha (wkoll issettja l-password tal-kont root tiegħek).

$ sudo mysql_secure_installation

Nota: Bi kwalunkwe mezz ma tħawwadx il-kont tal-għeruq MySQL mal-kont tal-għeruq tas-sistema Linux - huma żewġ affarijiet differenti - mhux daqshekk differenti iżda jimxu fuq livelli differenti.

Biex tivverifika l-login tas-sigurtà tal-MySQL fid-database bl-użu tas-sintassi tal-kmand mysql -u root -p, ipprovdi l-password tal-għeruq tiegħek imbagħad ħalli d-database bi kmand ħruġ;.

# mysql -u root -p

11. Issa wasal iż-żmien li tinstalla PHP lingwa ta’ scripting fuq is-server biex tkun tista’ tiżviluppa u tħaddem applikazzjonijiet kumplessi tal-web dinamiċi, mhux biss isservi kodiċi HTML/CSS.

Minħabba li qed nużaw Nginx bħala server tal-web irridu ninstallaw modulu appoġġjat PHP-FPM biex nikkomunikaw permezz ta' Fast Common Gateway u nbiddlu l-kontenut dinamiku ġġenerat minn skripts PHP.

Oħroġ il-linja tal-kmand li ġejja biex tinstalla s-servizz PHP-FPM, imbagħad ibda d-daemon u tivverifika l-istatus.

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

Biex telenka l-modulu PHP kollu disponibbli agħti l-kmandi li ġejjin.

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

12. Wieħed mill-aħħar passi huwa li tinstalla PhpMyAdmin Web Interface għad-database MySQL. Oħroġ il-kmand li ġej biex tinstalla PhpMyAdmin flimkien mal-modulu PHP meħtieġ tiegħu imbagħad oħloq rabta simbolika għall-mogħdija tas-sistema PhpMyaAdmin għall-mogħdija ta 'l-għeruq default ta' Nginx.

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

13. Imbagħad ikkonfigura l-fajl php.ini biex jinkludi l-estensjonijiet meħtieġa meħtieġa mill-applikazzjoni PhpMyAdmin.

$ sudo nano /etc/php/php.ini

Sib bit-tasti [CTRL+W] u neħħi l-kumment (neħħi ; fil-bidu tal-linja) il-linji li ġejjin.

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

Fuq l-istess fajl illokalizza u editja open_basedir direttiva biex tixbah mad-direttorji inklużi li ġejjin.

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

14. Il-pass li jmiss huwa li tippermetti PHP-FPM FastCGI fuq id-direttiva Nginx localhost. Aħroġ il-kmand li jmiss biex tagħmel backup tal-konfigurazzjoni tal-fajl tal-web server nginx.conf imbagħad ibdelha bil-kontenut li ġej.

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

Żid il-kontenut kollu li ġej fuq 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. Wara li jkunu saru l-konfigurazzjonijiet tal-fajls kollha, kull ma trid tagħmel hu li terġa’ tibda s-servizzi ta’ Nginx u PHP-FPM u tipponta l-browser tiegħek lejn http:// localhost/phpmyadmin URL minn nodu lokali jew http://arch_IP/phpmyadmin jiffurmaw kompjuter ieħor.

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

16. Jekk kollox jimxi kif maħsub l-aħħar pass huwa li tippermetti LEMP sistema kollha bil-kmandi li ġejjin.

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

Prosit! Installajt u kkonfigurajt LEMP fuq Arch Linux u, issa, għandek interface dinamiku sħiħ biex tibda u tiżviluppa applikazzjonijiet tal-web.

Għalkemm Arch Linux mhix l-aktar sistema adattata ħafna biex taħdem fuq servers ta 'produzzjoni minħabba l-mudell tagħha ta' rilaxx rolling orjentat lejn il-komunità tista 'tkun sors mgħaġġel ħafna u affidabbli għal ambjenti ta' produzzjoni żgħar mhux kritiċi.