Uppsetning LEMP (Nginx, PHP, MySQL með MariaDB vél og PhpMyAdmin) í Arch Linux


Vegna Rolling Release líkansins sem tekur til aldurshugbúnaðar var Arch Linux ekki hannað og þróað til að keyra sem þjónn til að veita áreiðanlega netþjónustu vegna þess að það krefst auka tíma fyrir viðhald, stöðugar uppfærslur og skynsamlegar skráarstillingar.

En samt, vegna þess að Arch Linux kemur með geisladiska uppsetningu með lágmarks hugbúnaði fyrirfram uppsettum, getur það verið traustur upphafspunktur til að setja upp flestar vinsælu netþjónusturnar þessa dagana, þar á meðal < b>LEMP eða LAMP, Apache vefþjónn, Nginx, PHP, SQL gagnagrunna, Samba, FTP netþjóna, BIND og fleiri, margir þeirra eru veittir frá Arch Opinberar Linux geymslur og aðrar frá AUR.

Þessi kennsla mun leiða í gegnum uppsetningu og stillingu LEMP stafla (Nginx, PHP, MySQL með MariaDB vél og PhpMyAdmin) frá fjarnotandi SSH, sem getur veitt sterkan grunn til að byggja upp vefþjónaforrit.

Fyrri Arch Linux uppsetningarleiðbeiningar, að undanskildum síðasta hluta um netkerfi með DHCP.

Skref 1: Úthlutaðu static IP á netviðmóti

1. Eftir lágmarks Arch Linux kjarnauppsetningu endurræstu netþjóninn þinn, skráðu þig inn með rótarreikningi eða sambærilegum stjórnunarreikningi og auðkenndu tækjanöfn kerfis NIC tækisins með ip hlekk skipuninni.

# ip link

2. Til að úthluta kyrrstæðum netstillingum ætlum við að nota Netctl pakkann til að stjórna nettengingum. Eftir að þú hefur auðkennt netviðmót nöfnin þín afritaðu ethernet-static skráarsniðmátið í netctl kerfisslóðina og breyttu nafni þess í lýsandi nafnakerfi ( reyndu að nota static streng ásamt nafni NIC), með því að gefa út eftirfarandi skipun.

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

3. Næsta skref er að breyta þessari nýju sniðmátsskrá með því að breyta tilskipunum skráar og gefa upp raunverulegar netstillingar þínar (viðmót, IP/netmaska, hlið, útsending, DNS) eins og í útdrættinum hér að neðan.

# 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. Næsta skref er að hefja nettenginguna þína í gegnum netctl kerfisverkfæri og staðfesta kerfistenginguna þína með því að gefa út eftirfarandi skipanir.

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

5. Ef þú færð virka græna útgöngustöðu hefurðu stillt netviðmótið þitt og það er kominn tími til að virkja það sjálfkrafa á kerfisþjónustu. Prófaðu líka netkerfið þitt með því að keyra ping skipun á móti lénsheiti og settu einnig upp net-tools pakkann (þekktasti eiginleiki þessa pakka er ifconfig skipunin sem Arch forritarar taldir vera úreltir og skiptu því út fyrir iproute2).

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

6. Nú geturðu keyrt ifconfig skipunina til að staðfesta netviðmót stillingarnar þínar og athuga hvort allt sé rétt birt, síðan endurræstu kerfið þitt til að ganga úr skugga um allt er á sínum stað og rétt stillt.

# ping linux-console.net

Skref 2: Settu upp LEMP hugbúnað

Eins og bent er á í þessari grein kynningu stendur LEMP fyrir Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB sem er einn útbreiddasta vefforritavettvangurinn í dag eftir LAMP (þ. sama stafla og Apache í jöfnu).

7. Áður en LEMP stafla er sett upp í raun og veru þurfum við að uppfæra kerfið og fá síðan fjarstýringu á Arch Linux þjóninn. Eins og þú veist sennilega er OpenSSH aðalframbjóðandinn fyrir þetta starf svo farðu á undan og settu það upp, ræstu SSH púkinn og virkjaðu það kerfisbundið.

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

Nú er kominn tími til að halda áfram með LEMP uppsetningu. Vegna þess að þessari kennslu er ætlað að vera ítarleg leiðarvísir mun ég skipta LEMP staflauppsetningu í litla bita, skref fyrir skref.

8. Settu fyrst upp Nginx vefþjón, ræstu hann síðan og staðfestu stöðu hans með því að gefa út eftirfarandi skipanir.

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

9. Næsta þjónusta sem á að setja upp er MySQL gagnagrunnur. Gefðu út eftirfarandi skipun til að setja upp MySQL gagnagrunnsþjón og veldu MariaDB vél, ræstu síðan og staðfestu stöðu púkans.

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

10. Næsta skref er að bjóða upp á mjög öruggt umhverfi fyrir MySQL gagnagrunna með því að gefa upp lykilorð fyrir MySQL rótarreikning, fjarlægja nafnlausan notendareikning, fjarlægja prófunargagnagrunn og rótarreikninga sem eru aðgengilegir utan localhost. Keyrðu eftirfarandi skipun til að bæta MySQL öryggi, ýttu á [Enter] fyrir núverandi lykilorð rótarreiknings, svaraðu síðan við öllum spurningum (settu einnig upp lykilorð rótarreiknings).

$ sudo mysql_secure_installation

Athugið: Ekki rugla MySQL rótarreikningi saman við Linux kerfisrótreikning - það eru tveir ólíkir hlutir - ekki svo ólíkir en þeir keyra á mismunandi stigum.

Til að staðfesta MySQL öryggisinnskráningu í gagnagrunn með því að nota mysql -u root -p skipanasetningafræði, gefðu upp rótarlykilorðið þitt og farðu síðan úr gagnagrunninum með skipuninni exit;.

# mysql -u root -p

11. Nú er kominn tími til að setja upp PHP forskriftarmál á netþjóni til að geta þróað og keyrt flókin kraftmikil vefforrit, ekki bara þjóna HTML/CSS kóða.

Vegna þess að við erum að nota Nginx sem vefþjón þurfum við að setja upp PHP-FPM studda einingu til að hafa samskipti í gegnum Fast Common Gateway og breyta kraftmiklu efni sem er búið til með PHP forskriftum.

Gefðu út eftirfarandi skipanalínu til að setja upp PHP-FPM þjónustu, ræstu síðan púkann og staðfestu stöðuna.

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

Til að skrá allar tiltækar PHP mát skaltu gefa út eftirfarandi skipanir.

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

12. Eitt af síðustu skrefunum er að setja upp PhpMyAdmin vefviðmót fyrir MySQL gagnagrunn. Gefðu út eftirfarandi skipun til að setja upp PhpMyAdmin ásamt PHP nauðsynlegri einingu þess og búðu síðan til táknrænan hlekk fyrir PhpMyaAdmin kerfisslóð að Nginx sjálfgefna rótarslóð.

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

13. Stilltu síðan php.ini skrána til að innihalda nauðsynlegar viðbætur sem PhpMyAdmin forritið þarfnast.

$ sudo nano /etc/php/php.ini

Finndu með [CTRL+W] lyklum og afskrifaðu (fjarlægðu ; við upphaf línunnar) eftirfarandi línur.

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

Finndu og breyttu open_basedir tilskipuninni í sömu skrá þannig að hún líkist eftirfarandi möppum sem fylgja með.

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

14. Næsta skref er að virkja PHP-FPM FastCGI á localhost Nginx tilskipuninni. Gefðu út næstu skipun til að taka öryggisafrit af nginx.conf skráarstillingu vefþjónsins og skiptu síðan út fyrir eftirfarandi efni.

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

Bættu við öllu eftirfarandi efni á 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. Eftir að allar skráarstillingar hafa verið gerðar er allt sem þú þarft að gera að endurræsa Nginx og PHP-FPM þjónustur og beina vafranum þínum á http:// localhost/phpmyadmin vefslóð frá staðbundnum hnút eða http://arch_IP/phpmyadmin mynda aðra tölvu.

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

16. Ef allt gengur að óskum er lokaskrefið að virkja LEMP kerfisvítt með eftirfarandi skipunum.

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

Til hamingju! Þú hefur sett upp og stillt LEMP á Arch Linux og nú hefurðu fullt kraftmikið viðmót til að hefja og þróa vefforrit.

Þrátt fyrir að Arch Linux sé ekki það kerfi sem hentar best til að keyra á framleiðsluþjónum vegna samfélagsmiðaðs rúllandi útgáfulíkans getur það verið mjög hröð og áreiðanleg uppspretta fyrir lítið framleiðsluumhverfi sem ekki er mikilvægt.