Pag-instalar sa LEMP (Nginx, PHP, MySQL uban sa MariaDB engine ug PhpMyAdmin) sa Arch Linux


Tungod sa iyang Rolling Release nga modelo nga naglakip sa cutting age software Arch Linuxwala gidesinyo ug naugmad aron modagan isip usa ka server aron makahatag ug kasaligang serbisyo sa network tungod kay nagkinahanglan kini og dugang nga panahon alang sa pagmentinar, makanunayon nga pag-upgrade ug makatarunganon nga mga configuration sa file.

Apan, sa gihapon, tungod kay ang Arch Linux nag-uban sa usa ka CD core installation nga adunay gamay nga software nga na-pre-install, kini mahimong magrepresentar sa usa ka lig-on nga base sa pagsugod nga punto aron i-install ang kadaghanan sa mga sikat nga serbisyo sa network karong mga adlawa, kini naglakip sa < b>LEMP o LAMP, Apache Web Server, Nginx, PHP, SQL database, Samba, FTP servers, BIND ug uban pa, daghan niini gihatag gikan sa Arch Mga opisyal nga repositoryo sa Linux ug uban pa gikan sa AUR.

Kini nga panudlo maggiya pinaagi sa pag-install ug pag-configure sa LEMP stack (Nginx, PHP , MySQL nga adunay MariaDB engine ug PhpMyAdmin) gikan sa layo nga gamit ang SSH, nga makahatag usa ka lig-on nga pundasyon sa pagtukod sa mga Aplikasyon sa Web Server.

Nauna nga giya sa Pag-install sa Arch Linux, gawas sa katapusang bahin sa networking gamit ang DHCP.

Lakang 1: I-assign ang Static IP sa Network Interface

1. Human sa gamay nga Arch Linux nga core installation i-reboot ang imong server, login gamit ang root account o katumbas nga administratibong sudo account, ug ilha ang imong system NICs device names gamit ang ip link command.

# ip link

2. Para mag-assign ug static nga network configurations atong gamiton ang Netctl nga package para magdumala sa network connections. Human nimo malampusong mailhan ang imong Network Interfaces nga mga ngalan kopyaha ang ethernet-static file template ngadto sa netctl system path ug usba ang ngalan niini ngadto sa descriptive name scheme ( sulayi gamit ang static nga string nga gihiusa sa ngalan sa NIC), pinaagi sa pag-isyu sa mosunod nga sugo.

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

3. Ang sunod nga lakang mao ang pag-edit niining bag-ong template file pinaagi sa pag-usab sa mga direktiba sa file ug paghatag sa imong tinuod nga network settings ( Interface, IP/Netmask, Gateway, Broadcast, DNS) sama sa ubos nga kinutlo.

# 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. Ang sunod nga lakang mao ang pagsugod sa imong koneksyon sa network pinaagi sa netctl system tool ug pagmatuod sa imong system connectivity pinaagi sa pag-isyu sa mosunod nga mga sugo.

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

5. Kung nakakuha ka usa ka aktibo nga berde nga exit status malampuson nimo nga na-configure ang imong Network Interface ug panahon na nga awtomatiko kini nga mahimo sa mga serbisyo sa tibuuk nga sistema. Sulayi usab ang imong network pinaagi sa pagpadagan ug ping nga sugo batok sa usa ka domain name ug usab, i-install ang net-tools nga pakete (ang labing ilado nga bahin niini nga pakete mao ang ifconfig nga sugo nga Arch ang mga developers giisip nga matang sa wala na gamita ug gipulihan kini og iproute2).

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

6. Karon mahimo nimong ipadagan ang ifconfig nga sugo aron mapamatud-an ang imong Mga Interface sa Network nga mga setting ug susihon kung ang tanan husto nga gipakita, unya reboot ang imong sistema aron masiguro ang tanan naa sa lugar ug husto nga gi-configure.

# ping linux-console.net

Lakang 2: I-install ang LEMP Software

Sama sa gipunting niini nga artikulo nga introduksiyon LEMP nagpasabot sa Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB nga usa sa labing kaylap nga mikaylap nga web application platform karon human sa LAMP (ang parehas nga stack sa Apache sa equation).

7. Sa dili pa aktuwal nga i-install ang LEMP stack kinahanglan namong i-update ang sistema ug dayon makakuha og remote control sa Arch Linux server. Sama sa imong nahibal-an nga OpenSSH mao ang nag-unang kandidato alang niini nga trabaho busa padayon ug i-install kini, sugdi ang SSH daemon ug pagana kini sa tibuok sistema.

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

Karon na ang panahon sa pagpadayon sa LEMP instalasyon. Tungod kay kini nga panudlo gituyo nga usa ka komprehensibo nga giya akong bahinon ang LEMP pag-install sa stack sa gagmay nga mga piraso, sa lakang sa lakang.

8. I-install una ang Nginx Web Server, dayon sugdi kini ug pamatud-i ang kahimtang niini pinaagi sa pag-isyu sa mosunod nga mga sugo.

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

9. Ang sunod nga serbisyo nga i-install mao ang MySQL database. Ipagawas ang mosunod nga sugo aron i-install ang MySQL database server ug pilia ang MariaDB engine, dayon sugdi ug pamatud-i ang status sa daemon.

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

10. Ang sunod nga lakang mao ang paghatag ug luwas nga palibot alang sa MySQL databases pinaagi sa paghatag ug password para sa MySQL root account, pagtangtang sa anonymous nga user account, pagtangtang sa test database ug root accounts nga ma-access gikan sa gawas localhost. Pagdalagan ang mosunod nga sugo aron mapalambo ang seguridad sa MySQL, pindota ang [Enter] para sa kasamtangang root account password, dayon tubaga ang Oo sa tanang pangutana ( i-setup usab ang imong root account password).

$ sudo mysql_secure_installation

Mubo nga sulat: Sa bisan unsa nga paagi ayaw libuga ang MySQL root account sa Linux system root account - kini duha ka lain-laing mga butang - dili kaayo lahi apan kini nagdagan sa lainlaing lebel.

Para ma-verify ang MySQL security login sa database gamit ang mysql -u root -p command syntax, ihatag ang imong root password unya biyai ang database nga adunay exit; command.

# mysql -u root -p

11. Karon na ang panahon nga i-install ang PHP server-side scripting language aron makahimo ug makapadagan sa komplikadong dinamikong mga aplikasyon sa web, dili lang magsilbi sa HTML/CSS code.

Tungod kay gigamit namo ang Nginx isip web server kinahanglan namo nga i-install ang PHP-FPM nga gipaluyohan nga module aron makigkomunikar pinaagi sa Fast Common Gateway ug usbon ang dinamikong sulod nga namugna pinaagi sa mga script sa PHP.

I-issue ang mosunod nga command line aron i-install ang PHP-FPM nga serbisyo, dayon sugdi ang daemon ug pamatud-i ang status.

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

Aron ilista ang tanang anaa PHP module ipagawas ang mosunod nga mga sugo.

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

12. Usa sa katapusang mga lakang mao ang pag-instalar sa PhpMyAdmin Web Interface para sa MySQL database. I-issue ang mosunud nga mando aron i-install ang PhpMyAdmin kauban ang PHP nga gikinahanglan nga module dayon paghimo usa ka simbolo nga link alang sa PhpMyaAdmin system path sa Nginx default root path.

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

13. Dayon i-configure ang php.ini file aron maapil ang gikinahanglan nga mga extension nga gikinahanglan sa PhpMyAdmin application.

$ sudo nano /etc/php/php.ini

Pangitaa gamit ang [CTRL+W] nga mga yawe ug uncomment (kuhaa ang ; sa linya nga nagsugod) sa mosunod nga mga linya.

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

Sa samang payl pangitaa ug edit open_basedir nga direktiba aron mahisama sa mosunod nga gilakip nga mga direktoryo.

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

14. Ang sunod nga lakang mao ang pagpagana PHP-FPM FastCGI sa localhost Nginx directive. Ipagawas ang sunod nga sugo sa pag-backup sa nginx.conf web server file configuration unya ilisan kini sa mosunod nga sulod.

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

Idugang ang tibuok mosunod nga sulod sa 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. Human mabuhat ang tanang configuration sa file, ang kinahanglan nimong buhaton mao ang pag-restart sa Nginx ug PHP-FPM nga mga serbisyo ug itudlo ang imong browser sa http:// localhost/phpmyadmin URL gikan sa local node o http://arch_IP/phpmyadmin magporma og laing kompyuter.

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

16. Kung ang tanan modagan sumala sa gituyo ang katapusang lakang mao ang pagpagana sa LEMP nga sistema sa lapad uban sa mosunod nga mga sugo.

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

Mga pahalipay! Imong gi-install ug gi-configure ang LEMP sa Arch Linux ug, karon, aduna kay bug-os nga dinamikong interface aron makasugod ug makapalambo sa mga aplikasyon sa web.

Bisan tuod ang Arch Linux dili mao ang labing kaayo nga haum nga sistema sa pagdagan sa mga server sa produksiyon tungod sa iyang komunidad nga oriented nga rolling release nga modelo mahimo kini nga usa ka paspas ug kasaligan nga tinubdan alang sa gagmay nga dili kritikal nga mga palibot sa produksiyon.