Inasakinisha LEMP (Nginx, PHP, MySQL na injini ya MariaDB na PhpMyAdmin) katika Arch Linux


Kwa sababu ya muundo wake wa Utoaji wa Rolling ambao unakumbatia programu ya uzee Arch Linux haikuundwa na kuendelezwa ili kuendeshwa kama seva ili kutoa huduma za mtandao zinazotegemewa kwa sababu inahitaji muda wa ziada kwa ajili ya matengenezo, uboreshaji wa mara kwa mara na usanidi wa faili unaoeleweka.

Lakini, hata hivyo, kwa sababu Arch Linux inakuja na usakinishaji wa msingi wa CD na programu ndogo iliyosakinishwa awali, inaweza kuwakilisha msingi thabiti wa kuanzia ili kusakinisha huduma nyingi maarufu za mtandao siku hizi, hii ikiwa ni pamoja na < b>LEMP au LAMP, Apache Web Server, Nginx, PHP, hifadhidata za SQL, Samba, seva za FTP, BIND na zingine, nyingi zikitolewa kutoka Arch Hazina rasmi za Linux na zingine kutoka AUR.

Mafunzo haya yataelekeza katika kusakinisha na kusanidi rafu ya LEMP (Nginx, PHP , MySQL yenye injini ya MariaDB na PhpMyAdmin) kutoka kwa SSH inayotumia kwa mbali, ambayo inaweza kutoa msingi thabiti wa kuunda Programu za Seva ya Wavuti.

Mwongozo uliopita wa Ufungaji wa Arch Linux, isipokuwa sehemu ya mwisho kwenye mtandao na DHCP.

Hatua ya 1: Weka IP Tuli kwenye Kiolesura cha Mtandao

1. Baada ya usakinishaji mdogo wa Arch Linux anzisha upya seva yako, ingia ukitumia akaunti ya mizizi au akaunti sawa ya msimamizi ya sudo, na utambue majina ya kifaa chako cha NICs kwa kutumia kiungo cha ip amri.

# ip link

2. Kuweka usanidi wa mtandao tuli tutatumia Netctl kifurushi kudhibiti miunganisho ya mtandao. Baada ya kufanikiwa kutambua Violesura vyako vya Mtandao majina nakili ethernet-static kiolezo cha faili hadi netctl njia ya mfumo na kubadilisha jina lake hadi mpangilio wa kumtaja ( jaribu kutumia mfuatano wa “tuli” pamoja na jina la NIC), kwa kutoa amri ifuatayo.

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

3. Hatua inayofuata ni kuhariri faili hii mpya ya kiolezo kwa kubadilisha maagizo ya faili na kutoa mipangilio yako halisi ya mtandao (Kiolesura, IP/Netmask, Gateway, Broadcast, DNS) kama ilivyo katika dondoo lililo hapa chini.

# 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. Hatua inayofuata ni kuanzisha muunganisho wa mtandao wako kupitia netctl zana ya mfumo na uthibitishe muunganisho wa mfumo wako kwa kutoa amri zifuatazo.

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

5. Ukipata hali ya kuondoka ya kijani kibichi umefanikiwa kusanidi Kiolesura chako cha Mtandao na ni wakati wa kuiwasha kiotomatiki kwenye huduma za mfumo mzima. Pia jaribu mtandao wako kwa kutekeleza ping amri dhidi ya jina la kikoa na pia, sakinisha kifurushi cha net-tools (kipengele kinachojulikana zaidi cha kifurushi hiki ni ifconfig amri ambayo Arch wasanidi programu wanaochukuliwa kuwa walioacha kutumika na wakaibadilisha na iproute2).

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

6. Sasa unaweza kutekeleza amri ya ifconfig ili kuthibitisha mipangilio yako ya Violesura vya Mtandao na uangalie ikiwa kila kitu kimeonyeshwa kwa usahihi, kisha washa upya mfumo wako ili kuhakikisha. kila kitu kiko mahali na kimeundwa ipasavyo.

# ping linux-console.net

Hatua ya 2: Sakinisha Programu ya LEMP

Kama ilivyoonyeshwa katika utangulizi wa makala haya LEMP inawakilisha Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB ambayo ni mojawapo ya mifumo inayoenea sana ya utumaji maombi ya wavuti leo baada ya LAMP ( safu sawa na Apache katika equation).

7. Kabla ya kusakinisha rafu ya LEMP tunahitaji kusasisha mfumo na kisha kupata udhibiti wa mbali kwa seva ya Arch Linux. Huenda unajua OpenSSH ndiye mgombeaji mkuu wa kazi hii kwa hivyo endelea na uisakinishe, anzisha daemon ya SSH na uiwashe mfumo mzima.

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

Sasa ni wakati wa kuendelea na usakinishaji wa LEMP. Kwa sababu somo hili linakusudiwa kuwa mwongozo wa kina nitagawanya LEMP usakinishaji wa rafu katika vipande vidogo, hatua kwa hatua.

8. Sakinisha kwanza Seva ya Wavuti ya Nginx, kisha uanzishe na uthibitishe hali yake kwa kutoa amri zifuatazo.

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

9. Huduma inayofuata kusakinishwa ni hifadhidata ya MySQL. Toa amri ifuatayo ili kusakinisha seva ya hifadhidata ya MySQL na uchague injini ya MariaDB, kisha anza na uthibitishe hali ya daemon.

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

10. Hatua inayofuata ni kutoa mazingira salama sana kwa hifadhidata za MySQL kwa kutoa nenosiri la akaunti ya mizizi ya MySQL, kuondoa akaunti ya mtumiaji isiyojulikana, kuondoa hifadhidata ya majaribio na akaunti za mizizi ambazo zinaweza kufikiwa kutoka kwa mwenyeji wa nje wa ndani. Tekeleza amri ifuatayo ili kuboresha usalama wa MySQL, bonyeza [Enter] kwa nenosiri la sasa la akaunti ya mizizi, kisha ujibu Ndiyo kwa maswali yote (pia weka nenosiri la akaunti yako ya mizizi).

$ sudo mysql_secure_installation

Kumbuka: Kwa njia yoyote usichanganye akaunti ya mizizi ya MySQL na akaunti ya mizizi ya mfumo wa Linux - ni vitu viwili tofauti - sio tofauti sana lakini vinatumia viwango tofauti.

Ili kuthibitisha kuingia kwa usalama kwa MySQL kwenye hifadhidata kwa kutumia mysql -u root -p syntax ya amri, toa nenosiri lako la msingi kisha uache hifadhidata kwa amri ya kutoka;.

# mysql -u root -p

11. Sasa ni wakati wa kusakinisha PHP lugha ya uandishi ya upande wa seva ili kuweza kuunda na kuendesha programu tendaji za wavuti, sio tu kutoa msimbo wa HTML/CSS.

Kwa sababu tunatumia Nginx kama seva ya wavuti tunahitaji kusakinisha PHP-FPM sehemu inayoungwa mkono ili kuwasiliana kupitia Fast Common Gateway na kubadilisha maudhui yanayobadilika yanayozalishwa. kwa maandishi ya PHP.

Toa safu ya amri ifuatayo ili kusakinisha huduma ya PHP-FPM, kisha uanzishe daemon na uthibitishe hali.

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

Kuorodhesha moduli zote za PHP zinazopatikana, toa amri zifuatazo.

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

12. Moja ya hatua za mwisho ni kusakinisha PhpMyAdmin Web Interface kwa hifadhidata ya MySQL. Toa amri ifuatayo ya kusakinisha PhpMyAdmin pamoja na moduli yake ya PHP inayohitajika kisha unda kiungo cha mfano cha njia ya mfumo wa PhpMyaAdmin hadi njia ya msingi ya Nginx.

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

13. Kisha usanidi faili ya php.ini ili kujumuisha viendelezi vinavyohitajika na programu ya PhpMyAdmin.

$ sudo nano /etc/php/php.ini

Tafuta kwa kutumia vitufe vya [CTRL+W] na uondoe maoni (ondoa ; mwanzoni mwa mstari) mistari ifuatayo.

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

Kwenye faili sawa tafuta na hariri open_basedir maagizo ili kufanana na saraka zifuatazo zilizojumuishwa.

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

14. Hatua inayofuata ni kuwezesha PHP-FPM FastCGI kwenye maelekezo ya Nginx ya mwenyeji. Toa amri ifuatayo ya kuhifadhi nakala nginx.conf usanidi wa faili ya seva ya wavuti kisha uibadilishe na maudhui yafuatayo.

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

Ongeza maudhui yote yafuatayo kwenye 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. Baada ya usanidi wote wa faili kufanywa, unachohitaji kufanya ni kuanzisha upya huduma za Nginx na PHP-FPM na uelekeze kivinjari chako kwa http:// localhost/phpmyadmin URL kutoka nodi ya ndani au http://arch_IP/phpmyadmin kuunda kompyuta nyingine.

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

16. Ikiwa kila kitu kitafanya kazi ilivyokusudiwa hatua ya mwisho ni kuwezesha LEMP mfumo kwa upana na amri zifuatazo.

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

Hongera! Umesakinisha na kusanidi LEMP kwenye Arch Linux na, sasa, una kiolesura chenye nguvu cha kuanza na kuendeleza programu za wavuti.

Ingawa Arch Linux sio mfumo unaofaa zaidi kutumika kwenye seva za uzalishaji kutokana na muundo wake wa toleo unaolengwa na jumuiya unaweza kuwa chanzo cha haraka na cha kutegemewa kwa mazingira madogo ya uzalishaji yasiyo muhimu.