ຕິດຕັ້ງ LEMP - Nginx, PHP, MariaDB ແລະ PhpMyAdmin ໃນ OpenSUSE


LEMP ຫຼື Linux, Engine-x, MySQL ແລະ PHP stack ແມ່ນຊຸດຊອບແວທີ່ປະກອບດ້ວຍຊອບແວ open source ທີ່ຕິດຕັ້ງຢູ່ໃນລະບົບປະຕິບັດການ Linux ສຳ ລັບໃຊ້ງານ web based web applications ທີ່ ນຳ ໃຊ້ໂດຍ Nginx HTTP server ແລະລະບົບຈັດການຖານຂໍ້ມູນ MySQL/MariaDB.

ບົດແນະ ນຳ ນີ້ຈະແນະ ນຳ ທ່ານກ່ຽວກັບວິທີຕິດຕັ້ງ LEMP stack ດ້ວຍ Nginx, MariaDB, PHP, PHP-FPM ແລະ PhpMyAdmin ໃນ OpenSuse server/desktop editions.

ການຕິດຕັ້ງ Nginx HTTP Server

Nginx ແມ່ນເຄື່ອງແມ່ຂ່າຍ HTTP ແລະ proxy ທີ່ໄວແລະເຊື່ອຖືໄດ້ເຊິ່ງສາມາດຈັດການກັບການຮ້ອງຂໍ HTTP ທີ່ສູງຂື້ນ. ມັນໃຊ້ວິທີການແບບບັງຄັບເຫດການໃນການຈັດການກັບການຮ້ອງຂໍ, ແລະສະຖາປັດຕະຍະ ກຳ ແບບເຄື່ອນໄຫວແບບໂມເດວຂອງມັນສາມາດໃຫ້ການປະຕິບັດທີ່ຄາດເດົາໄດ້ຫຼາຍຂື້ນພາຍໃຕ້ການໂຫຼດທີ່ສູງ.

ການຕິດຕັ້ງ Nginx ໃນ OpenSuse, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo zypper install nginx

ເມື່ອ Nginx ຕິດຕັ້ງແລ້ວ, ທ່ານສາມາດເລີ່ມຕົ້ນໃຫ້ບໍລິການ ສຳ ລັບດຽວນີ້, ຫຼັງຈາກນັ້ນໃຫ້ມັນເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນເວລາບູດແລະກວດສອບສະຖານະຂອງ Nginx ໂດຍການແລ່ນ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

ໃນຈຸດນີ້, ເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ Nginx ຄວນຈະຂຶ້ນແລະແລ່ນ, ທ່ານຍັງສາມາດກວດສອບສະຖານະພາບໂດຍໃຊ້ ຄຳ ສັ່ງ netstat ດັ່ງທີ່ສະແດງໄວ້.

$ sudo netstat -tlpn | grep nginx

ຕອນນີ້, ພວກເຮົາຕ້ອງການທົດສອບວ່າການຕິດຕັ້ງ Nginx ເຮັດວຽກໄດ້ດີຫລືບໍ່. ບໍ່ຄືກັບການແຈກຈ່າຍ Linux ອື່ນໆ, ພາຍໃຕ້ openSUSE, Nginx ບໍ່ມີເອກະສານ index.html ມາດຕະຖານໃນໂຟນເດີຮາກເວັບ. ພວກເຮົາຕ້ອງສ້າງເອກະສານ index.html ໃໝ່ ພາຍໃຕ້ລະບົບຮາກເວັບໄຊຕ໌ "/ srv/www/htdocs" ຄືດັ່ງທີ່ສະແດງ.

$ echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

ຖ້າທ່ານໄດ້ຕິດຕັ້ງ firewalld, ທ່ານຕ້ອງເປີດ port 80 ແລະ 443 ເພື່ອອະນຸຍາດໃຫ້ມີການເຂົ້າຊົມເວັບໃນ firewall.

$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

ຕໍ່ໄປ, ເປີດຕົວທ່ອງເວັບເວັບໄຊຕ໌ແລະທ່ອງໄປຫາທີ່ຢູ່ http:// localhost ແລະກວດສອບ ໜ້າ Nginx.

ການຕິດຕັ້ງ Server Database ຂອງ MariaDB

MariaDB ແມ່ນຄວາມຍາວຂອງສ້ອມທີ່ບໍ່ເສຍຄ່າແລະເປີດເຜີຍຂອງລະບົບການຄຸ້ມຄອງຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບ MySQL. ມັນຖືກພັດທະນາໂດຍນັກພັດທະນາຕົ້ນສະບັບຂອງ MySQL ແລະມີຈຸດປະສົງທີ່ຈະຢູ່ແບບເປີດເຜີຍ. MariaDB ແມ່ນໄວ, ສາມາດປັບຂະ ໜາດ ໄດ້ແລະແຂງແຮງ, ມີລະບົບນິເວດທີ່ອຸດົມສົມບູນຂອງເຄື່ອງຈັກໃນການເກັບຮັກສາ, ປັinsກອິນແລະເຄື່ອງມືອື່ນໆຫຼາຍຢ່າງເຮັດໃຫ້ມັນມີຄວາມຄ່ອງແຄ້ວຫຼາຍ ສຳ ລັບຫລາຍໆກໍລະນີການ ນຳ ໃຊ້.

ການຕິດຕັ້ງ MariaDB ໃນ OpenSuse, ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້.

$ sudo zypper install mariadb mariadb-client 

ຕໍ່ໄປ, ເລີ່ມຕົ້ນໃຫ້ບໍລິການ MariaDB ສຳ ລັບດຽວນີ້, ຫຼັງຈາກນັ້ນໃຫ້ມັນເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນເວລາບູດແລະກວດເບິ່ງສະຖານະພາບຂອງມັນ.

$ sudo systemctl start mariadb 
$ sudo systemctl enable mariadb 
$ sudo systemctl status mariadb 

ຂັ້ນຕອນ ສຳ ຄັນຕໍ່ໄປພາຍໃຕ້ພາກນີ້ແມ່ນການຮັບປະກັນການຕິດຕັ້ງເຊີບເວີ MariaDB. ດັ່ງນັ້ນ, ດຳ ເນີນການຂຽນ ຄຳ ສັ່ງດ້ານຄວາມປອດໄພທີ່ຂົນສົ່ງກັບຊຸດ MariaDB, ດັ່ງທີ່ສະແດງໄວ້.

ໝາຍ ເຫດ: ການແລ່ນສະຄິບຄວາມປອດໄພຂອງ MariaDB ແລະທຸກພາກສ່ວນຂອງມັນແມ່ນຖືກແນະ ນຳ ໃຫ້ເປັນຢ່າງສູງ ສຳ ລັບເຄື່ອງແມ່ຂ່າຍຂອງ MariaDB ທັງ ໝົດ ໃນການຜະລິດ.

$ sudo mysql_secure_installation 

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

ການຕິດຕັ້ງແລະການຕັ້ງຄ່າ PHP ແລະ PHP-FPM

PHP-FPM (ສັ້ນ ສຳ ລັບຜູ້ຈັດການໂປຣແກຣມ PHP FastCGI) ແມ່ນ daemon FastCGI ທີ່ເປັນທາງເລືອກ ສຳ ລັບ PHP ທີ່ມີບາງລັກສະນະເພີ່ມເຕີມແລະຖືກອອກແບບມາເພື່ອຈັດການກັບການໂຫຼດສູງ. ມັນຮັກສາສະລອຍນ້ ຳ (ພະນັກງານທີ່ສາມາດຕອບສະ ໜອງ ຄຳ ຮ້ອງຂໍຂອງ PHP) ເພື່ອເຮັດ ສຳ ເລັດສິ່ງນີ້. ສິ່ງທີ່ ສຳ ຄັນ, ມັນໄວກວ່າວິທີການທີ່ອີງໃສ່ແບບ CGI ແບບດັ້ງເດີມ, ເຊັ່ນ SUPHP, ສຳ ລັບສະພາບແວດລ້ອມ PHP ທີ່ມີຜູ້ ນຳ ໃຊ້ຫຼາຍຄົນ.

ການຕິດຕັ້ງ PHP ແລະ PHP-FPM ພ້ອມກັບໂມດູນທີ່ ຈຳ ເປັນ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo zypper install php php-mysql php-fpm php-gd php-mbstring

ກ່ອນທີ່ພວກເຮົາຈະເລີ່ມ ດຳ ເນີນການບໍລິການຂອງ PHP-FPM, ພວກເຮົາຕ້ອງສ້າງເອກະສານການຕັ້ງຄ່າທີ່ຕ້ອງການຈາກແຟ້ມຄ່າເລີ່ມຕົ້ນທີ່ໃຫ້ໃນລະຫວ່າງການຕິດຕັ້ງ, ແລະ ກຳ ນົດຄ່າບໍລິການທີ່ກຽມພ້ອມ ສຳ ລັບການ ດຳ ເນີນງານ.

$ sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
$ sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

ຫຼັງຈາກນັ້ນເປີດເອກະສານການຕັ້ງຄ່າ php-fpm.conf ຕົ້ນຕໍເພື່ອແກ້ໄຂ.

$ sudo vim /etc/php7/fpm/php-fpm.conf 

ບໍ່ປະຕິບັດຕາມສາຍຕໍ່ໄປນີ້ທີ່ເລກທີ 24 ຕາມທີ່ສະແດງ.

error_log = log/php-fpm.log

ບັນທຶກແລະປິດແຟ້ມ.

ຕໍ່ໄປ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງ ກຳ ນົດການຕັ້ງຄ່າທີ່ຖືກຕ້ອງ ສຳ ລັບສະລອຍນ້ ຳ ທີ່ ກຳ ນົດໄວ້ໃນເອກະສານການຕັ້ງຄ່າ www.conf .

$ sudo vim /etc/php7/fpm/php-fpm.d/www.conf

ກ່ອນອື່ນ ໝົດ, ກຳ ນົດເຈົ້າຂອງ Unix ແລະເຈົ້າຂອງກຸ່ມຂອງຂະບວນການໃຫ້ກັບຜູ້ໃຊ້ແລະກຸ່ມ Nginx. ເຮັດແບບນີ້ໂດຍການປ່ຽນຄຸນຄ່າຂອງຕົວ ກຳ ນົດການຂອງຜູ້ໃຊ້ແລະກຸ່ມຈາກ ບໍ່ມີໃຜ ເປັນ nginx

user = nginx
group = nginx

ຕອນນີ້ບັນທຶກການປ່ຽນແປງຂອງເອກະສານແລ້ວອອກຈາກມັນ.

ນອກຈາກນັ້ນ, ຍັງມີການຕັ້ງຄ່າທີ່ ສຳ ຄັນອີກອັນ ໜຶ່ງ ທີ່ຕ້ອງເຮັດ, ເຊິ່ງຮັບປະກັນ PHP-FPM ໃນແຟ້ມ /etc/php/cli/php.ini .

$ sudo vim /etc/php7/cli/php.ini

ຄົ້ນຫາເສັ້ນ ; cgi.fix_pathinfo = 1 ແລະປ່ຽນມັນ.

cgi.fix_pathinfo=0

ບັນທຶກການປ່ຽນແປງຂອງເອກະສານແລະອອກ.

ຕໍ່ໄປ, ເລີ່ມການບໍລິການ PHP-FPM ສຳ ລັບດຽວນີ້, ຫຼັງຈາກນັ້ນໃຫ້ມັນເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນເວລາບູດແລະກວດເບິ່ງສະຖານະຂອງມັນ.

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
$ sudo systemctl status php-fpm

ການຕັ້ງຄ່າ Nginx ເພື່ອເຮັດວຽກກັບ PHP-FPM

ໃນຈຸດນີ້, ພວກເຮົາ ຈຳ ເປັນຕ້ອງ ກຳ ຫນົດຄ່າ Nginx ເພື່ອເຮັດວຽກກັບ PHP-FPM ໃນແຟ້ມຄ່າຕັ້ງຄ່າ Nginx.

$ sudo vim /etc/nginx/nginx.conf

ຈາກນັ້ນຊອກຫາພາກສ່ວນຕໍ່ໄປນີ້, ແລະເພີ່ມ index.php ໃນບັນຊີລາຍຊື່ຂອງເອກະສານດັດສະນີທີ່ຄາດຫວັງ.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

ຍັງຊອກຫາພາກຕໍ່ໄປນີ້ (ເຊິ່ງຄວນຈະມີ ຄຳ ເຫັນ) ສ່ວນນີ້ແມ່ນໃຊ້ໃນການຖ່າຍທອດສະຄິບ PHP ໃຫ້ກັບ server ຂອງ FastCGI ຟັງໃນ 127.0.0.1:9000

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

ບັນທຶກການປ່ຽນແປງຂອງເອກະສານແລະອອກ.

ການທົດສອບ Nginx ແລະ PHP-FPM

ຂັ້ນຕອນຕໍ່ໄປແມ່ນການທົດສອບຖ້າ Nginx ເຮັດວຽກໄດ້ດີສົມທົບກັບ PHP-FPM ໂດຍການສ້າງເອກະສານທົດສອບ PHP ໃໝ່ ພາຍໃຕ້ໄດເລກະທໍລີ DocumentRoot ດັ່ງທີ່ສະແດງໄວ້.

$ echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

ຕອນນີ້ພວກເຮົາ ຈຳ ເປັນຕ້ອງກວດເບິ່ງວ່າການຕັ້ງຄ່າ Nginx ແມ່ນຖືກຕ້ອງດັ່ງຕໍ່ໄປນີ້, ກ່ອນທີ່ພວກເຮົາຈະ ດຳ ເນີນການເລີ່ມການບໍລິການ ໃໝ່.

$ sudo nginx -t

ຖ້າ syntax ການຕັ້ງຄ່າ Nginx ແມ່ນດີ, ສືບຕໍ່ເດີນຫນ້າແລະເລີ່ມການບໍລິການ Nginx ແລະ PHP-FPM ສຳ ລັບການປ່ຽນແປງ ໃໝ່ ໃນການ ນຳ ໃຊ້ efffect.

$ sudo systemctl restart nginx php-fpm

ຕອນນີ້ເປີດໂປແກຼມທ່ອງເວັບແລ້ວໄປທີ່ທີ່ຢູ່ http://localhost/info.php ເພື່ອກວດສອບການຕັ້ງຄ່າ PHP ດັ່ງທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຕໍ່ໄປນີ້.

ຕິດຕັ້ງແລະຕັ້ງຄ່າ PhpMyAdmin

phpMyAdmin ແມ່ນເຄື່ອງມືທີ່ໃຊ້ງ່າຍແລະງ່າຍດາຍທີ່ນິຍົມໃຊ້ງ່າຍແລະເປັນທີ່ນິຍົມທີ່ຂຽນໄວ້ໃນ PHP, ສ້າງຂື້ນມາເພື່ອບໍລິຫານ MySQL server ຜ່ານເວັບ. ມັນສະ ໜັບ ສະ ໜູນ ການເຮັດວຽກທີ່ຫຼາກຫຼາຍໃນ MySQL ແລະ MariaDB.

ການຕິດຕັ້ງ phpMyAdmin ໃນ OpenSuse, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo zypper install phpMyAdmin

ເມື່ອການຕິດຕັ້ງ ສຳ ເລັດແລ້ວ, ສ້າງແຟ້ມການຕັ້ງຄ່າ vhost ໃໝ່ ສຳ ລັບເຂົ້າເຖິງ phpMyAdmin ດັ່ງທີ່ສະແດງ.

$ sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

ຕື່ມການຕັ້ງຄ່າຕໍ່ໄປນີ້ເພື່ອຍື່ນ.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

   location / { 
       try_files $uri /index.php?$args; 
   } 

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

ບັນທຶກການປ່ຽນແປງແລະປິດເອກະສານ. ຫຼັງຈາກນັ້ນ, ເລີ່ມການບໍລິການ Nginx ດ້ວຍ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo systemctl restart nginx

ຕອນນີ້ເຂົ້າໄປທີ່ web browser ຂອງທ່ານແລ້ວພິມທີ່ຢູ່ http:// localhost/phpMyAdmin. ໜ້າ ເຂົ້າສູ່ລະບົບ phpMyAdmin ຄວນສະແດງຕາມ ໜ້າ ຈໍຕໍ່ໄປນີ້. ໃສ່ຂໍ້ມູນປະ ຈຳ ຕົວຜູ້ໃຊ້ເຂົ້າລະບົບຖານຂໍ້ມູນຂອງທ່ານແລະກົດເຂົ້າ.

ຫມົດເທົ່ານີ້! ໃນບົດແນະ ນຳ ນີ້, ພວກເຮົາໄດ້ອະທິບາຍໃຫ້ທ່ານຮູ້ວິທີຕິດຕັ້ງ LEMP stack ກັບ Nginx, MariaDB, PHP, PHP-FPM ແລະ PhpMyAdmin ກ່ຽວກັບ OpenSuse server/desktop editions. ຖ້າທ່ານ ກຳ ລັງປະເຊີນບັນຫາໃດ ໜຶ່ງ ໃນລະຫວ່າງການຕັ້ງຄ່າ, ໃຫ້ຖາມ ຄຳ ຖາມຂອງທ່ານຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.