ຕິດຕັ້ງ LEMP (Nginx, PHP, MySQL ກັບເຄື່ອງຈັກ MariaDB ແລະ PhpMyAdmin) ໃນ Arch Linux


ເນື່ອງຈາກຮູບແບບ Rolling ປ່ອຍຕົວຂອງມັນທີ່ປະຍຸກໃຊ້ໂປແກຼມຕັດຍຸກ Arch Linux ບໍ່ໄດ້ຖືກອອກແບບແລະພັດທະນາເພື່ອເຮັດວຽກເປັນ server ເພື່ອໃຫ້ບໍລິການເຄືອຂ່າຍທີ່ ໜ້າ ເຊື່ອຖືເພາະມັນຕ້ອງການເວລາພິເສດ ສຳ ລັບການ ບຳ ລຸງຮັກສາ, ການປັບປຸງຄົງທີ່ແລະການຕັ້ງຄ່າແຟ້ມທີ່ ເໝາະ ສົມ.

ແຕ່ວ່າ, ຍັງ, ເພາະວ່າ Arch Linux ມາພ້ອມກັບການຕິດຕັ້ງ CD core ທີ່ມີໂປແກຼມທີ່ມີການຕິດຕັ້ງ ໜ້ອຍ ທີ່ສຸດ, ມັນສາມາດເປັນຕົວແທນຈຸດເລີ່ມຕົ້ນທີ່ ໝັ້ນ ຄົງໃນການຕິດຕັ້ງບໍລິການເຄືອຂ່າຍທີ່ນິຍົມໃຊ້ຫຼາຍທີ່ສຸດໃນມື້ນີ້, ເຊິ່ງລວມທັງ < b> LEMP ຫຼື LAMP , Apache Web Server, Nginx, PHP, ຖານຂໍ້ມູນ SQL, Samba, ເຄື່ອງແມ່ຂ່າຍ FTP, BIND ແລະອື່ນໆ, ຫຼາຍໆຂໍ້ມູນນັ້ນໄດ້ຖືກສະ ໜອງ ຈາກ Arch > ບ່ອນເກັບມ້ຽນທີ່ເປັນທາງການຂອງ Linux ແລະອື່ນໆຈາກ AUR .

ບົດແນະ ນຳ ນີ້ຈະ ນຳ ພາໂດຍຜ່ານການຕິດຕັ້ງແລະຕັ້ງຄ່າ LEMP stack (Nginx, PHP, MySQL ກັບເຄື່ອງຈັກ MariaDB ແລະ PhpMyAdmin) ຈາກການໃຊ້ SSH ຫ່າງໄກສອກຫຼີກເຊິ່ງສາມາດສ້າງພື້ນຖານທີ່ແຂງແຮງໃນການສ້າງ Web Server Application.

ຄູ່ມືການຕິດຕັ້ງ Linux Linux ກ່ອນ ໜ້າ ນີ້, ຍົກເວັ້ນພາກສ່ວນສຸດທ້າຍໃນການເຊື່ອມຕໍ່ເຄືອຂ່າຍກັບ DHCP.

ຂັ້ນຕອນທີ 1: ກຳ ນົດ IP Static ໃນ Network Interface

1. ຫຼັງຈາກການຕິດຕັ້ງ ສຳ ຄັນທີ່ສຸດ Arch Linux reboot server ຂອງທ່ານເລີ່ມຕົ້ນ ໃໝ່, ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ root ຫຼືບັນຊີ sudo ທີ່ບໍລິຫານແລະທຽບເທົ່າກັບລະບົບຊື່ NICs ຂອງລະບົບຂອງທ່ານໂດຍໃຊ້ ip link ຄຳ ສັ່ງ.

# ip link

2. ເພື່ອມອບ ໝາຍ ການຕັ້ງຄ່າເຄືອຂ່າຍແບບຄົງທີ່ພວກເຮົາຈະ ນຳ ໃຊ້ຊຸດ Netctl ເພື່ອຈັດການການເຊື່ອມຕໍ່ເຄືອຂ່າຍ. ຫຼັງຈາກທີ່ທ່ານໄດ້ລະບຸຊື່ສົບຜົນ ສຳ ເລັດຂອງທ່ານ ເຄືອຂ່າຍອິນເຕີເນັດ ເອົາ ສຳ ເນົາແມ່ແບບເອກະສານ ethernet-static ໃສ່ ເສັ້ນທາງລະບົບ ແລະປ່ຽນຊື່ຂອງມັນໄປສູ່ລະບົບການຕັ້ງຊື່ທີ່ອະທິບາຍ ( ລອງໃຊ້“ ສະຖິດ ” ໃຊ້ຮ່ວມກັບຊື່ຂອງ NIC), ໂດຍອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

3. ຂັ້ນຕອນຕໍ່ໄປແມ່ນການດັດແກ້ເອກະສານແມ່ແບບ ໃໝ່ ນີ້ໂດຍການປ່ຽນທິດທາງຂອງແຟ້ມເອກະສານແລະໃຫ້ການຕັ້ງຄ່າເຄືອຂ່າຍຕົວຈິງຂອງທ່ານ (Interface, IP/Netmask, Gateway, Broadcast, DNS) ຄືໃນບົດຄັດຫຍໍ້ລຸ່ມນີ້.

# 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. ຂັ້ນຕອນຕໍ່ໄປແມ່ນການເລີ່ມຕົ້ນການເຊື່ອມຕໍ່ເຄືອຂ່າຍຂອງທ່ານໂດຍຜ່ານເຄື່ອງມືລະບົບ netctl ແລະກວດສອບການເຊື່ອມຕໍ່ລະບົບຂອງທ່ານໂດຍການອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

5. ຖ້າທ່ານມີສະຖານະການອອກສີຂຽວທີ່ທ່ານເຄື່ອນໄຫວທ່ານໄດ້ຕັ້ງຄ່າ ອິນເຕີເຟດເຄືອຂ່າຍ ຂອງທ່ານແລະມັນເຖິງເວລາແລ້ວທີ່ຈະເປີດໃຊ້ບໍລິການທົ່ວລະບົບ. ພ້ອມທັງທົດສອບເຄືອຂ່າຍຂອງທ່ານໂດຍການໃຊ້ ຄຳ ສັ່ງ ping ຕໍ່ກັບຊື່ໂດເມນແລະຍັງຕິດຕັ້ງ ຊຸດເຄື່ອງມືສຸດທິ (ຄຸນລັກສະນະທີ່ມີຊື່ສຽງທີ່ສຸດຂອງຊຸດນີ້ແມ່ນ ifconfig command ທີ່ Arch ນັກພັດທະນາຖືວ່າເປັນປະເພດທີ່ຖືກຄັດເລືອກແລະທົດແທນມັນໂດຍ iproute2 ).

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

6. ຕອນນີ້ທ່ານສາມາດ ດຳ ເນີນການ ຄຳ ສັ່ງ ifconfig ເພື່ອກວດພິສູດການຕັ້ງຄ່າ ເຄືອຂ່າຍອິນເຕີເນັດ ແລະກວດເບິ່ງວ່າທຸກຢ່າງຖືກສະແດງຢ່າງຖືກຕ້ອງ, ຫຼັງຈາກນັ້ນ ເລີ່ມຕົ້ນ ໃໝ່ ລະບົບຂອງທ່ານເພື່ອໃຫ້ແນ່ໃຈວ່າ ທຸກສິ່ງທຸກຢ່າງແມ່ນຢູ່ໃນສະຖານທີ່ແລະຖືກຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ.

# ping linux-console.net

ຂັ້ນຕອນທີ 2: ຕິດຕັ້ງຊອບແວ LEMP

ດັ່ງທີ່ໄດ້ຊີ້ໃຫ້ເຫັນໃນບົດແນະ ນຳ ບົດຂຽນນີ້ LEMP ໝາຍ ສຳ ລັບ Linux + Nginx + PHP/PhpMyAdmin + MySQL/MariaDB ເຊິ່ງເປັນ ໜຶ່ງ ໃນແພລະຕະຟອມການ ນຳ ໃຊ້ເວັບທີ່ເຜີຍແຜ່ຫຼາຍທີ່ສຸດໃນມື້ນີ້ຫລັງຈາກ LAMP (the stack ດຽວກັນກັບ Apache ໃນສົມຜົນ).

7. ກ່ອນທີ່ຈະຕິດຕັ້ງກະຕ່າ LEMP ພວກເຮົາ ຈຳ ເປັນຕ້ອງປັບປຸງລະບົບແລະຫຼັງຈາກນັ້ນໄດ້ຮັບການຄວບຄຸມຫ່າງໄກສອກຫຼີກໃຫ້ກັບ Arch Linux server. ຄືກັບທີ່ທ່ານອາດຈະຮູ້ OpenSSH ແມ່ນຜູ້ສະ ໝັກ ຕົ້ນຕໍ ສຳ ລັບວຽກນີ້ດັ່ງນັ້ນທ່ານຄວນເດີນ ໜ້າ ແລະຕິດຕັ້ງມັນ, ເລີ່ມຕົ້ນໂດເມນ SSH ແລະເປີດໃຊ້ລະບົບໃຫ້ກວ້າງ.

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

ດຽວນີ້ເຖິງເວລາແລ້ວທີ່ຈະ ດຳ ເນີນການຕິດຕັ້ງ LEMP . ເນື່ອງຈາກວ່າບົດແນະ ນຳ ນີ້ມີຄວາມ ໝາຍ ວ່າເປັນ ຄຳ ແນະ ນຳ ທີ່ສົມບູນແບບຂ້ອຍຈະແບ່ງການຕິດຕັ້ງກະຕ່າ LEMP ເປັນຕ່ອນນ້ອຍໆເທື່ອລະຂັ້ນຕອນ.

8. ທຳ ອິດຕິດຕັ້ງ Nginx Web Server , ຈາກນັ້ນເລີ່ມຕົ້ນແລະກວດສອບສະຖານະຂອງມັນໂດຍການອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

9. ການບໍລິການຕໍ່ໄປທີ່ຈະຕິດຕັ້ງແມ່ນຖານຂໍ້ມູນ MySQL . ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງ MySQL server server ແລະເລືອກເຄື່ອງຈັກ ທີ່ຢູ່ຫຼັງຈາກນັ້ນເລີ່ມຕົ້ນແລະກວດສອບສະຖານະພາບຂອງ daemon.

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

10. ຂັ້ນຕອນຕໍ່ໄປແມ່ນການສ້າງສະພາບແວດລ້ອມທີ່ປອດໄພສູງ ສຳ ລັບຖານຂໍ້ມູນ MySQL ໂດຍການໃຫ້ລະຫັດລັບ ສຳ ລັບບັນຊີ root MySQL, ລຶບບັນຊີຜູ້ໃຊ້ທີ່ບໍ່ອອກຊື່, ລຶບຖານຂໍ້ມູນການທົດສອບແລະບັນຊີຮາກທີ່ສາມາດເຂົ້າເຖິງໄດ້ຈາກພາຍນອກຂອງ localhost. ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອປັບປຸງຄວາມປອດໄພຂອງ MySQL, ກົດ [ ປ້ອນ ] ສຳ ລັບລະຫັດຜ່ານບັນຊີຮາກປະຈຸບັນ, ຈາກນັ້ນຕອບ ແມ່ນ ສຳ ລັບທຸກ ຄຳ ຖາມ (ພ້ອມທັງຕັ້ງລະຫັດຜ່ານບັນຊີຮາກຂອງທ່ານ).

$ sudo mysql_secure_installation

ໝາຍ ເຫດ: ໂດຍວິທີໃດກໍ່ຕາມບໍ່ສັບສົນບັນຊີ root ຂອງ MySQL ກັບບັນຊີຮາກລະບົບ Linux - ພວກມັນແມ່ນສອງຢ່າງທີ່ແຕກຕ່າງກັນ - ບໍ່ແຕກຕ່າງກັນປານໃດແຕ່ມັນໃຊ້ໃນລະດັບຕ່າງກັນ.

ເພື່ອຢັ້ງຢືນການເຂົ້າລະບົບຄວາມປອດໄພຂອງ MySQL ໃນຖານຂໍ້ມູນໂດຍໃຊ້ mysql -u root -p syntax ຄຳ ສັ່ງ, ໃຫ້ລະຫັດຜ່ານຮາກຂອງທ່ານຫຼັງຈາກນັ້ນປ່ອຍຖານຂໍ້ມູນດ້ວຍ ຄຳ ສັ່ງ ອອກ; .

# mysql -u root -p

11. ດຽວນີ້ເຖິງເວລາແລ້ວທີ່ທ່ານຕ້ອງການຕິດຕັ້ງ ພາສາອັງກິດ PHP ທີ່ຢູ່ດ້ານ server ເພື່ອໃຫ້ສາມາດພັດທະນາແລະ ນຳ ໃຊ້ໂປແກຼມເວັບແບບເຄື່ອນໄຫວທີ່ສັບສົນ, ບໍ່ພຽງແຕ່ໃຫ້ບໍລິການ HTML/CSS ເທົ່ານັ້ນ.

ເນື່ອງຈາກວ່າພວກເຮົາ ກຳ ລັງໃຊ້ Nginx ເປັນເຄື່ອງແມ່ຂ່າຍເວັບພວກເຮົາ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງໂມດູນທີ່ຮອງຮັບ PHP-FPM ເພື່ອສື່ສານຜ່ານ Fast Common Gateway ແລະປ່ຽນເນື້ອຫາແບບເຄື່ອນໄຫວທີ່ສ້າງຂື້ນ ໂດຍ PHP scripts.

ອອກເສັ້ນ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງບໍລິການ PHP-FPM , ຫຼັງຈາກນັ້ນເລີ່ມ daemon ແລະກວດສອບສະຖານະພາບ.

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

ເພື່ອລົງລາຍຊື່ທີ່ມີຢູ່ທັງ ໝົດ ໂມດູນ PHP ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

12. ໜຶ່ງ ໃນບາດກ້າວສຸດທ້າຍແມ່ນການຕິດຕັ້ງ PhpMyAdmin Web Interface ສຳ ລັບຖານຂໍ້ມູນ MySQL. ອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້ໃຫ້ຕິດຕັ້ງ PhpMyAdmin ພ້ອມດ້ວຍໂມດູນທີ່ ຈຳ ເປັນຂອງ PHP ແລ້ວສ້າງລິ້ງ ສຳ ລັບສັນຍາລັກ ສຳ ລັບເສັ້ນທາງລະບົບ PhpMyaAdmin ໄປຫາເສັ້ນທາງຮາກຂອງ Nginx.

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

13. ຫຼັງຈາກນັ້ນໃຫ້ ກຳ ນົດໄຟລ໌ php.ini ເພື່ອປະກອບມີສ່ວນຂະຫຍາຍທີ່ ຈຳ ເປັນທີ່ຕ້ອງການໂດຍໂປແກມ PhpMyAdmin.

$ sudo nano /etc/php/php.ini

ສະຖານທີ່ດ້ວຍປຸ່ມ <] ແລະຄວາມບໍ່ພໍໃຈ (ເອົາ ; ທີ່ຢູ່ແຖວຕົ້ນ) ແຖວຕໍ່ໄປນີ້.

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

ໃນເອກະສານດຽວກັນຊອກຫາແລະ ແກ້ໄຂ open_basedir ທິດທາງເພື່ອໃຫ້ຄ້າຍຄືກັບລາຍການທີ່ມີຢູ່ຕໍ່ໄປນີ້.

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

14. ຂັ້ນຕອນຕໍ່ໄປແມ່ນການເປີດໃຊ້ PHP-FPM FastCGI ໃນທິດທາງຂອງ localhost Nginx. ອອກ ຄຳ ສັ່ງຕໍ່ໄປໃຫ້ ສຳ ຮອງ nginx.conf ການຕັ້ງຄ່າແຟ້ມເອກະສານຂອງເວັບເຊີຟເວີຫຼັງຈາກນັ້ນແທນມັນດ້ວຍເນື້ອຫາຕໍ່ໄປນີ້.

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

ເພີ່ມເນື້ອຫາຕໍ່ໄປນີ້ໃນ 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. ຫຼັງຈາກການຕັ້ງຄ່າເອກະສານທັງ ໝົດ ໄດ້ເຮັດແລ້ວ, ສິ່ງທີ່ທ່ານຕ້ອງເຮັດຄືການຕັ້ງຄ່າການບໍລິການ ໃໝ່ Nginx ແລະ PHP-FPM ແລະຊີ້ຕົວທ່ອງເວັບຂອງທ່ານໄປ http:// localhost/phpmyadmin URL ຈາກ node ທ້ອງຖິ່ນຫຼື http:// arch_IP/phpmyadmin ສ້າງຄອມພິວເຕີ້ອື່ນ.

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

16. ຖ້າທຸກຢ່າງ ດຳ ເນີນໄປຕາມຈຸດປະສົງຂັ້ນຕອນສຸດທ້າຍແມ່ນເພື່ອເຮັດໃຫ້ລະບົບ LEMP ກວ້າງພ້ອມດ້ວຍ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

ຊົມເຊີຍ! ທ່ານໄດ້ຕິດຕັ້ງແລະຕັ້ງຄ່າ LEMP ໃນ Arch Linux ແລະດຽວນີ້, ທ່ານມີອິນເຕີເຟດແບບເຕັມຮູບແບບເພື່ອເລີ່ມຕົ້ນແລະພັດທະນາໂປແກຼມເວັບຕ່າງໆ.

ເຖິງແມ່ນວ່າ Arch Linux ບໍ່ແມ່ນລະບົບທີ່ ເໝາະ ສົມທີ່ສຸດໃນການເຮັດວຽກໃນເຊີຟເວີການຜະລິດເນື່ອງຈາກຮູບແບບການປ່ອຍແບບຊຸມຊົນແບບຊຸມຊົນມັນສາມາດເປັນແຫຼ່ງທີ່ໄວແລະເຊື່ອຖືໄດ້ ສຳ ລັບສະພາບແວດລ້ອມການຜະລິດທີ່ບໍ່ ສຳ ຄັນ.