Arch Linux-da LEMP (Nginx, PHP, MySQL, MariaDB dwigateli we PhpMyAdmin) gurmak


Kesgitli ýaş programma üpjünçiligini öz içine alýan “Rolling Release” modeli sebäpli Arch Linux ygtybarly ulgam hyzmatlaryny üpjün etmek üçin serwer hökmünde işlemek üçin döredilmedi we tehniki hyzmat, yzygiderli täzelenmeler we faýl konfigurasiýalary üçin goşmaça wagt talap edýär.

Şeýle-de bolsa, Arch Linux öňünden gurlan iň az programma üpjünçiligi bolan CD ýadroly gurnama bilen gelýändigi sebäpli, şu günler meşhur tor hyzmatlarynyň köpüsini gurmak üçin berk başlangyç nokadyny görkezip biler, şol sanda < b> LEMP ýa-da LAMP , Apache web serweri, Nginx, PHP, SQL maglumat bazalary, Samba, FTP serwerleri, BIND we beýlekiler, köpüsi Arch Linux resmi ammarlary we beýlekiler AUR dan.

Bu gollanma, uzakdan SSH ulanyp, LEMP stakany (Nginx, PHP, MySQL we MariaDB dwigateli we PhpMyAdmin) gurmak we düzmek arkaly ýol görkezer, bu Web Serwer Programmalaryny gurmak üçin berk binýady üpjün edip biler.

DHCP bilen arabaglanyşygyň soňky böleginden başga öňki Arch Linux gurnama gollanmasy.

1-nji ädim: Tor interfeýsinde statiki IP belläň

1. Iň az Arch Linux ýadro gurmakdan soň serweriňizi täzeden açyň, kök hasaby ýa-da şoňa meňzeş administratiw sudo hasaby bilen giriň we ip link buýrugy ulanyp ulgamyňyzyň NIC enjam atlaryny kesgitläň.

# ip link

2. Statiki tor konfigurasiýalaryny bellemek üçin, tor birikmelerini dolandyrmak üçin Netctl paketini ulanarys. Tor interfeýsleri atlaryňyzy üstünlikli kesgitläniňizden soň, ethernet-statik faýl şablonyny netctl ulgam ýoluna göçüriň we adyny düşündirişli atlandyryş shemasyna üýtgediň ( Aşakdaky buýrugy bermek bilen, NIC-iň ady bilen birleşdirilen statik setirini ulanyp görüň.

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

3. Indiki ädim, bu täze şablon faýly faýlyň görkezmelerini üýtgetmek we aşakdaky bölekdäki ýaly hakyky ulgam sazlamalaryňyzy (Interfeýs, IP/Netmask, şlýuz, ýaýlym, DNS) üpjün etmek.

# 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. Indiki ädim, netctl ulgam guralynyň üsti bilen tor birikdirmäňizi başlamak we aşakdaky buýruklary bermek bilen ulgam birikmäňizi barlamak.

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

5. Işjeň ýaşyl çykyş statusyny alsaňyz, Tor interfeýsini üstünlikli düzdüňiz we ulgamyň giň hyzmatlarynda awtomatiki usulda işlemegiň wagty geldi. Şeýle hem, domen adyna garşy ping buýrugy işledip, öz ulgamyňyzy synap görüň we net-tools paketini guruň (bu bukjanyň iň belli aýratynlygy, Arch-yň ifconfig buýrugydyr işläp düzüjiler könelişen bir görnüş hasaplandy we ýerine iproute2 ) çalyşdy.

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

6. Indi tor interfeýsleri sazlamalaryňyzy barlamak we hemme zadyň dogry görkezilendigini barlamak üçin ifconfig buýrugyny işledip bilersiňiz, soň bolsa ulgamyňyzy täzeden açyň hemme zat ýerinde we dogry düzülen.

# ping linux-console.net

2-nji ädim: LEMP programma üpjünçiligini guruň

Bu makalada görkezilişi ýaly LEMP Linux + Nginx + PHP/PhpMyAdmin + MySQL/MariaDB diýmekdir, bu gün LAMP -den soň iň giň ýaýran web programma platformalarynyň biri. deňlemede Apache bilen şol bir stak).

7. Aslynda LEMP stack gurmazdan ozal ulgamy täzelemeli we soňra Arch Linux serwerine uzakdan dolandyrmaly. Bilşiňiz ýaly, OpenSSH bu işiň esasy dalaşgäri, şonuň üçin ony dowam etdiriň we SSH daemonyny işe giriziň we ulgamy giňeldiň.

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

Indi LEMP gurnamagy dowam etdirmegiň wagty geldi. Bu gollanma giňişleýin gollanma hökmünde göz öňünde tutulýandygy sebäpli, men LEMP stack gurnamasyny ädimme-ädim böleklere bölýärin.

8. Ilki bilen Nginx Web Server guruň, soňra başlaň we aşakdaky buýruklary çykaryp ýagdaýyny barlaň.

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

9. Guruljak indiki hyzmat MySQL maglumat bazasydyr. MySQL maglumat bazasynyň serwerini gurmak we MariaDB motoryny saýlamak üçin aşakdaky buýrugy beriň, soňra daemon ýagdaýyny başlaň we barlaň.

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

10. Indiki ädim, MySQL kök hasaby üçin parol bermek, näbelli ulanyjy hasaby aýyrmak, ýerli maglumatlar bazasyndan we daşarky ýerli hasaplardan girip boljak kök hasaplaryny aýyrmak arkaly MySQL maglumat bazalary üçin ýokary howpsuz gurşaw üpjün etmekdir. MySQL howpsuzlygyny gowulandyrmak üçin aşakdaky buýrugy işlediň, häzirki kök hasaby paroly üçin [ Enter ] basyň, soňra ähli soraglara Hawa jogap beriň (kök hasabyňyzyň parolyny hem düzüň).

$ sudo mysql_secure_installation

Bellik: Her niçigem bolsa MySQL kök hasaby Linux ulgam kök hasaby bilen garyşdyrmaň - iki dürli zat - beýle üýtgeşik däl, ýöne dürli derejelerde işleýär.

MybQL howpsuzlyk girişini mysql -u root -p buýruk sintaksisini ulanyp barlamak üçin kök parolyňyzy beriň, soňra çykyş; buýrugy bilen maglumat bazasyny goýuň.

# mysql -u root -p

11. Indi diňe HTML/CSS koduna hyzmat etmän, çylşyrymly dinamiki web programmalaryny ösdürip we işletmek üçin PHP serwer tarapyndaky skript dilini gurmagyň wagty geldi.

Web serweri hökmünde Nginx ulanýandygymyz sebäpli, Çalt umumy şlýuz arkaly habarlaşmak we döredilen dinamiki mazmuny üýtgetmek üçin PHP-FPM goldanýan moduly gurmalydyrys. PHP skriptleri bilen.

PHP-FPM hyzmatyny gurmak üçin aşakdaky buýruk setirini beriň, soňra daemon başlaň we ýagdaýyny barlaň.

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

Bar bolan PHP moduly sanawlamak üçin aşakdaky buýruklary beriň.

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

12. Iň soňky ädimleriň biri, MySQL maglumat bazasy üçin PhpMyAdmin web interfeýsi gurmakdyr. PhpMyAdmin-i PHP zerur moduly bilen bilelikde gurmak üçin aşakdaky buýrugy beriň, soňra PhpMyaAdmin ulgam ýoly üçin Nginx başlangyç kök ýoluna simwoliki baglanyşyk dörediň.

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

13. Soňra PhpMyAdmin programmasy üçin zerur bolan giňeltmeleri goşmak üçin php.ini faýly düzüň.

$ sudo nano /etc/php/php.ini

Aşakdaky setirleri [ CTRL + W ] düwmeleri we tertipsizlik bilen tapyň (setiriň başynda ; aýyryň).

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

Şol bir faýlda aşakdaky goşulan kataloglara meňzeş bolmak üçin open_basedir direktiwasyny tapyň we redaktirläň.

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

14. Indiki ädim, ýerlihost Nginx direktiwasynda PHP-FPM FastCGI işletmekdir. Web serwer faýl konfigurasiýasyny ätiýaçlyk nginx.conf ätiýaçlandyrmak üçin indiki buýrugy beriň, soňra aşakdaky mazmun bilen çalşyň.

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

Aşakdaky mazmuny nginx.conf-a goşuň.

#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. filehli faýl konfigurasiýalary düzülenden soň, diňe Nginx we PHP-FPM hyzmatlaryny täzeden açmak we brauzeriňizi http:// görkezmek gerek. ýerli düwünden ýerlihost/phpmyadmin URL ýa-da http:// arch_IP/phpmyadmin başga bir kompýuter döredýär.

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

16. Hemme zat göz öňünde tutulan ýaly işleýän bolsa, iň soňky ädim aşakdaky buýruklar bilen LEMP ulgamyny giňeltmekdir.

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

Gutlaýarys! Arch Linux -da LEMP gurnadyňyz we düzdüňiz, indi web programmalaryny başlamak we ösdürmek üçin doly dinamiki interfeýsiňiz bar.

Arch Linux jemgyýetçilik gönükdirilen prokat modeli sebäpli önümçilik serwerlerinde işlemek üçin iň amatly ulgam bolmasa-da, möhüm däl önümçilik şertleri üçin gaty çalt we ygtybarly çeşme bolup biler.