Ịwụnye LEMP (Nginx, PHP, MySQL na MariaDB engine na PhpMyAdmin) na Arch Linux


N'ihi ụdị mwepụta Rolling ya nke na-anabata sọftụwia ịbelata afọ Arch Linux emebeghị ma mepụta ka ọ na-agba ọsọ dị ka ihe nkesa iji nye ọrụ netwọk a pụrụ ịdabere na ya n'ihi na ọ na-achọ oge mgbakwunye maka mmezi, nkwalite na-agbanwe agbanwe na nhazi faịlụ nwere ezi uche.

Ma, ka na, n'ihi na Arch Linux na-abịa na CD isi nrụnye na minimal software tupu arụnyere, ọ nwere ike na-anọchi anya a siri ike isi mmalite mmalite iji wụnye ọtụtụ n'ime ndị na-ewu ewu netwọk ọrụ ụbọchị a, nke a gụnyere << b>LEMPma ọ bụ LAMP, Apache Web Server, Nginx, PHP, SQL databases, Samba, FTP sava, BIND na ndị ọzọ, ọtụtụ n'ime ha na-enweta site na Arch Ebe nchekwa ndị ọrụ Linux na ndị ọzọ sitere na AUR.

Nkuzi a ga-eduzi site na ntinye na nhazi nke LEMPstack (Nginx, PHP , MySQL na MariaDB engine na PhpMyAdmin) site na iji SSH dịpụrụ adịpụ, nke nwere ike inye ntọala siri ike iji wuo ngwa sava weebụ.

Ntuziaka nwụnye Arch Linux gara aga, ewezuga akụkụ ikpeazụ na ịkparịta ụka n'Ịntanet na DHCP.

Kwụpụ 1: Kenye Static IP na ntanetị netwọkụ

1. Mgbe obere Arch Linux isi nwụnye malitegharịa ihe nkesa gị, banye na akaụntụ mgbọrọgwụ ma ọ bụ akaụntụ sudo nke kwekọrọ na ya, wee chọpụta aha ngwaọrụ NIC gị site na iji iwu ip njikọ.

# ip link

2. Iji kenye nhazi netwọkụ static, anyị ga-eji ngwugwu Netctl iji jikwaa njikọ netwọkụ. Mgbe ị chọpụtachara aha Network Interfaces gị nke ọma, detuo ndebiri faịlụ ethernet-static gaa na netctl usoro wee gbanwee aha ya ka ọ bụrụ atụmatụ nkọwa aha ( nwaa iji eriri “static” jikọtara ya na aha NIC), site na ịnye iwu na-esonụ.

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

3. Nzọụkwụ ọzọ bụ dezie faịlụ template ọhụrụ a site n'ịgbanwe ntuziaka faịlụ na ịnye ntọala netwọk gị n'ezie (Interface, IP/Netmask, Gateway, Broadcast, DNS) dị ka nke dị n'okpuru ebe a.

# 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. Nzọụkwụ ọzọ bụ ịmalite njikọ netwọk gị site na ngwá ọrụ usoro netctl wee chọpụta njikọ nke sistemu gị site na ịnye iwu ndị a.

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

5. Ọ bụrụ na ị nweta ọkwa ọpụpụ akwụkwọ ndụ akwụkwọ ndụ na-arụ ọrụ, ị haziela Network Interface nke ọma ma ọ bụ oge iji mee ya na-akpaghị aka na ọrụ obosara sistemụ. Nwalee netwọk gị site na iji iwu ping megide aha ngalaba yana wụnye ngwugwu net-tools (ihe kacha mara nke ọma na ngwugwu a bụ ifconfig Command nke Arch. ndị mmepe na-ewere dị ka ụdị emebiela ma jiri iproute2 dochie ya.

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

6. Ugbu a, ị nwere ike ịgba ọsọ ifconfig iwu iji nyochaa ntọala Network Interfaces wee lelee ma ọ bụrụ na egosipụtara ihe niile nke ọma, wee reboot sistemu gị iji jide n'aka. ihe niile dị n'ebe na ahaziri nke ọma.

# ping linux-console.net

Nzọụkwụ 2: Wụnye LEMP Software

Dị ka e kwuru na mmalite isiokwu a LEMP na-anọchi anya Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB nke bụ otu n'ime nyiwe ngwa weebụ na-agbasakarị taa mgbe LAMP Otu ngwugwu na Apache na nha nha).

7. Tupu tinye n'ezie LEMP tojupụtara anyị kwesịrị imelite sistemu wee nweta njikwa remote na sava Arch Linux. Dị ka ị maara na OpenSSH bụ isi onye na-azọ ọkwa maka ọrụ a, ya mere gawa n'ihu tinye ya, malite SSH daemon ma mee ka ọ dị na usoro dum.

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

Ugbu a bụ oge iji gaa n'ihu na ntinye LEMP. N'ihi na nkuzi a pụtara ka ọ bụrụ ntuziaka zuru oke, m ga-ekewa nrụnye LEMP n'ime obere iberibe, site na nzọụkwụ.

8. Buru ụzọ tinye Nginx Web Server, wee malite ya wee chọpụta ọkwa ya site n'inye iwu ndị a.

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

9. Ọrụ ọzọ a ga-arụnye bụ MySQL nchekwa data. Nye iwu na-esonụ ka ịwụnye MySQL nchekwa data nkesa na họrọ MariaDB engine, wee malite na nyochaa daemon ọnọdụ.

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

10. Nzọụkwụ ọzọ bụ ịnye ebe nchekwa dị oke nchebe maka ọdụ data MySQL site na ịnye paswọọdụ maka akaụntụ mgbọrọgwụ MySQL, wepụ akaụntụ njirimara na-amaghị aha, wepụ nchekwa data ule na akaụntụ mgbọrọgwụ nke a na-enweta site na mpụga localhost. Gbaa iwu na-esonụ iji melite nchekwa MySQL, pịa [Tinye] maka okwuntughe akaụntụ mgbọrọgwụ ugbu a, wee zaa Ee n'ajụjụ niile ( na-edozikwa paswọọdụ akaụntụ mgbọrọgwụ gị).

$ sudo mysql_secure_installation

Cheta na: N'ụzọ ọ bụla adịghị mgbagwoju anya MySQL mgbọrọgwụ akaụntụ na Linux usoro mgbọrọgwụ akaụntụ - ha abụọ dị iche iche ihe - bụghị otú dị iche iche ma ha na-agba ọsọ na dị iche iche na ọkwa.

Iji nyochaa nbanye MySQL na nchekwa data site na iji mysql -u root -p iwu syntax, nye mgbọrọgwụ paswọọdụ wee hapụ nchekwa data na wepụ;iwu.

# mysql -u root -p

11. Ugbu a ọ bụ oge iji wụnye PHP asụsụ ederede n'akụkụ sava ka ị nwee ike ịmepụta ma mee ngwa weebụ dị mgbagwoju anya, ọ bụghị naanị ijere koodu HTML/CSS.

N'ihi na anyị na-eji Nginx dị ka sava weebụ anyị kwesịrị ịwụnye PHP-FPM modul akwadoro iji kparịta ụka site na Ọsọ ọsọ ọsọ ọsọ wee gbanwee ọdịnaya dị ike ewepụtara. site na script PHP.

Wepụta ahịrị iwu a ka ịwụnye ọrụ PHP-FPM, wee malite daemon wee chọpụta ọkwa.

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

Ka ịdepụta ihe niile PHP modul dị na-enye iwu ndị a.

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

12. Otu n'ime usoro ikpeazụ bụ ịwụnye PhpMyAdmin Web Interface maka MySQL nchekwa data. Nye iwu a ka ịwụnye PhpMyAdmin yana modul PHP ya dị mkpa wee mepụta njikọ ihe atụ maka usoro PhpMyaAdmin na ụzọ mgbọrọgwụ Nginx.

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

13. Mgbe ahụ hazie faịlụ php.ini ka ọ tinye mgbakwunye dị mkpa nke ngwa PhpMyAdmin chọrọ.

$ sudo nano /etc/php/php.ini

Chọta na igodo [CTRL+W] na enweghị nkwupụta (wepụ ; na akara mmalite) ahịrị ndị a.

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

N'otu faịlụ ahụ chọta na dezie open_basedir ntụziaka iji yie akwụkwọ ndekọ aha ndị a gụnyere.

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

14. Nzọụkwụ ọzọ bụ iji mee ka PHP-FPM FastCGI na localhost Nginx ntụziaka. Nye iwu na-esote iji kwado ndabere nginx.conf nhazi faịlụ sava weebụ wee jiri ọdịnaya ndị a dochie ya.

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

Tinye ọdịnaya niile na-eso na 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. Mgbe emechara nhazi faịlụ niile, naanị ihe ị ga - eme bụ ịmalitegharịa Nginx na PHP-FPM ọrụ wee tụọ ihe nchọgharị gị na http:// localhost/phpmyadmin URL sitere na ọnụ mpaghara ma ọ bụ http://arch_IP/phpmyadmin na-emepụta kọmputa ọzọ.

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

16. Ọ bụrụ na ihe niile na-aga dị ka echere, nzọụkwụ ikpeazụ bụ iji mee ka usoro LEMP gbasaa na iwu ndị a.

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

Ekele! Ị tinyela ma hazie LEMP na Arch Linux na, ugbu a, ị nwere interface zuru oke iji malite wee mepụta ngwa weebụ.

Ọ bụ ezie na Arch Linux abụghị usoro kachasị dabara adaba iji na-agba ọsọ na sava mmepụta n'ihi ụdị ntọhapụ mpịakọta nke obodo ya, ọ nwere ike ịbụ ebe dị ngwa ngwa na ntụkwasị obi maka obere mpaghara mmepụta ihe na-adịghị mkpa.