ວິທີການຕິດຕັ້ງ Nginx 1.15, MariaDB 10 ແລະ PHP 7 ໃນ CentOS 7


ໃນບົດຂຽນນີ້ພວກເຮົາຈະອະທິບາຍວິທີການຕິດຕັ້ງ LEMP stack (Linux, Nginx, MariaDB, PHP) ພ້ອມດ້ວຍ PHP-FPM ໃນ RHEL/CentOS 7/6 ແລະເຄື່ອງແມ່ຂ່າຍ Fedora 26-29 ໂດຍໃຊ້ dnf package manager.

ໃນລະຫວ່າງຂັ້ນຕອນນີ້ພວກເຮົາຈະຕິດຕັ້ງແລະເປີດໃຊ້ຫໍສະ ໝຸດ Epel, Remi, Nginx ແລະ MariaDB ເພື່ອໃຫ້ສາມາດຕິດຕັ້ງລຸ້ນ ໃໝ່ ຫຼ້າສຸດຂອງແພັກເກດເຫຼົ່ານີ້.

ຂັ້ນຕອນທີ 1: ການຕິດຕັ້ງ EPEL ແລະ Remi Repository

EPEL (ແພກເກດພິເສດ ສຳ ລັບ Linux Linux) ແມ່ນຫໍສະມຸດຊຸມຊົນທີ່ມີໂປແກຼມເພີ່ມເຕີມ ສຳ ລັບການແຈກຈ່າຍ Linux ທີ່ອີງໃສ່ RHEL.

Remi ແມ່ນບ່ອນເກັບມ້ຽນບ່ອນທີ່ທ່ານສາມາດຊອກຫາ PHP ລຸ້ນລ້າສຸດ (ແບບເຕັມຮູບແບບ) ສຳ ລັບຕິດຕັ້ງໃນການແຈກຈ່າຍ Fedora ແລະ Enterprise Linux.

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
# subscription-manager repos --enable=rhel-7-server-optional-rpms
# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
# subscription-manager repos --enable=rhel-6-server-optional-rpms
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

ຂັ້ນຕອນທີ 2: ການຕິດຕັ້ງ Nginx ແລະ MariaDB Repositories

The Nginx repository ແມ່ນມີຄວາມ ຈຳ ເປັນໃນການ ຈຳ ໜ່າຍ RHEL ແລະ CentOS ເທົ່ານັ້ນ. ສ້າງແຟ້ມເອກະສານທີ່ມີຊື່ວ່າ /etc/yum.repos.d/nginx.repo ແລະຕື່ມສາຍຕໍ່ໄປນີ້ໃສ່ມັນ.

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

ເພື່ອເປີດໃຊ້ឃ្លាំង MariaDB, ສ້າງແຟ້ມຊື່ວ່າ /etc/yum.repos.d/mariadb.repo ດ້ວຍເນື້ອໃນຕໍ່ໄປນີ້:

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

ຂັ້ນຕອນທີ 4: ການຕິດຕັ້ງ Ngnix ແລະ MariaDB

Nginx (Engine X) ແມ່ນແຫຼ່ງເປີດ, ແຂງແຮງ, ມີນ້ ຳ ໜັກ ເບົາແລະມີປະສິດຕິພາບສູງ, ມີໂປແກຼມ Web server ແບບປ່ຽນແທນ, ແລະຍັງມີໂປແກຼມສົ່ງອີເມວ ສຳ ລັບ HTTP, SMTP, POP3 ແລະ IMAP. ສຳ ລັບລາຍລະອຽດເພີ່ມເຕີມ, ເຂົ້າເບິ່ງທີ່ http://wiki.nginx.org/Overview.

MariaDB ແມ່ນສ້ອມຂອງ MySQL ທີ່ມີຊື່ສຽງ, ໜຶ່ງ ໃນລະບົບການຄຸ້ມຄອງຖານຂໍ້ມູນທີ່ມີຊື່ສຽງທີ່ສຸດຂອງໂລກ (RDBMS). ມັນຖືກພັດທະນາໂດຍຊຸມຊົນທັງ ໝົດ ແລະດັ່ງນັ້ນມັນຈຶ່ງມີຈຸດປະສົງທີ່ຈະຍັງຄົງ FOSS ແລະເຂົ້າກັນໄດ້ກັບ GPL.

ການຕິດຕັ້ງ Ngnix ແລະ MariaDB, ດໍາເນີນການຄໍາສັ່ງຕໍ່ໄປນີ້.

----------- Installing on RHEL/CentOS 7/6 ----------- 
# yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
# dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

ຂັ້ນຕອນທີ 3: ການຕິດຕັ້ງ PHP ໂດຍໃຊ້ Remi Repository

PHP (Hypertext Preprocessor) ແມ່ນພາສາຂຽນແບບຂ້າງເຊີຟເວີແລະແບບເປີດແຫຼ່ງທີ່ ເໝາະ ສົມທີ່ສຸດ ສຳ ລັບການພັດທະນາເວບໄຊທ໌. ມັນສາມາດຖືກນໍາໃຊ້ເພື່ອຜະລິດຫນ້າເວັບແບບເຄື່ອນໄຫວສໍາລັບເວັບໄຊທ໌ແລະມັກພົບເລື້ອຍທີ່ສຸດໃນເຄື່ອງແມ່ຂ່າຍ * nix. ຂໍ້ດີຂໍ້ ໜຶ່ງ ຂອງ PHP ແມ່ນວ່າມັນສາມາດຂະຫຍາຍໄດ້ງ່າຍໂດຍຜ່ານການ ນຳ ໃຊ້ໂມດູນທີ່ຫລາກຫລາຍ.

ເພື່ອຕິດຕັ້ງ PHP, ທຳ ອິດທ່ານ ຈຳ ເປັນຕ້ອງເປີດໃຊ້ Remi repository ໂດຍການຕິດຕັ້ງ yum-utils , ເຊິ່ງເປັນຊຸດຂອງໂປແກຼມທີ່ມີປະໂຫຍດໃນການຈັດການ yum repositories ແລະ package.

# yum install yum-utils

ເມື່ອຕິດຕັ້ງແລ້ວ, ທ່ານສາມາດໃຊ້ yum-config-manager ທີ່ສະ ໜອງ ໂດຍ yum-utils ເພື່ອໃຫ້ສາມາດເກັບຮັກສາຫໍສະ ໝຸດ Remi ເປັນບ່ອນເກັບຄ່າເລີ່ມຕົ້ນ ສຳ ລັບຕິດຕັ້ງເວີຊັນ PHP ທີ່ແຕກຕ່າງກັນດັ່ງທີ່ສະແດງ.

ຍົກຕົວຢ່າງ, ເພື່ອຕິດຕັ້ງ PHP 7.x version, ໃຫ້ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

------------- On CentOS & RHEL ------------- 
# yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
# yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
# yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
# yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
# dnf --enablerepo=remi install php70      [Install PHP 7.0]
# dnf --enablerepo=remi install php71      [Install PHP 7.1]
# dnf --enablerepo=remi install php72      [Install PHP 7.2]
# dnf --enablerepo=remi install php73      [Install PHP 7.3]

ຕໍ່ໄປ, ພວກເຮົາຈະຕິດຕັ້ງໂປແກຼມ PHP ຕໍ່ໄປນີ້ທັງ ໝົດ.

------ On RHEL/CentOS 7/6 ------
# yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
# dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

ຂັ້ນຕອນທີ 6: ການຢຸດແລະປິດການບໍລິການ Apache

ໂດຍຄ່າເລີ່ມຕົ້ນ, Apache ແລະ Nginx ຟັງຢູ່ໃນພອດດຽວກັນ (TCP 80). ດ້ວຍເຫດຜົນດັ່ງກ່າວ, ຖ້າ Apache ຖືກຕິດຕັ້ງຢູ່ໃນ server ຂອງທ່ານ, ທ່ານ ຈຳ ເປັນຕ້ອງຢຸດແລະປິດ/ປິດ ໜ້າ ກາກ (ສະບັບທີ່ແຂງແຮງກວ່າເກົ່າທີ່ເຊື່ອມຕໍ່ບໍລິການກັບ/dev/null) ເພື່ອ ນຳ ໃຊ້ Nginx, ຫຼືທ່ານສາມາດເອົາມັນອອກໄດ້ຖ້າ ທ່ານບໍ່ໄດ້ວາງແຜນກ່ຽວກັບການ ນຳ ໃຊ້ອີກຕໍ່ໄປ.

# systemctl stop httpd 
# systemctl disable httpd 
or 
# systemctl mask httpd 

ຂັ້ນຕອນທີ 7: ເລີ່ມຕົ້ນ/ຢຸດເຊົາການ Nginx, MariaDB ແລະ PHP-FPM

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
# systemctl enable nginx 
# systemctl enable mariadb 
# systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
# systemctl start nginx 
# systemctl start mariadb 
# systemctl start php-fpm 

ຂັ້ນຕອນທີ 8: ການຕັ້ງຄ່າ Nginx ແລະ PHP-FPM

ຕອນນີ້ຂໍໃຫ້ພວກເຮົາສ້າງໂຄງສ້າງໄດເລກະທໍລີ ສຳ ລັບເວັບໄຊທ໌ຂອງທ່ານ (ໂຮດຕິ້ງເສີຍໆຫລືບລັອກເຊີເວີ້ທີ່ມັນຖືກເອີ້ນໃນ Nginx) ພາຍໃຕ້/srv/www /. ໃນຕົວຢ່າງນີ້ພວກເຮົາຈະໃຊ້ linux-console.net , ແຕ່ຮູ້ສຶກວ່າບໍ່ເສຍຄ່າທີ່ຈະເລືອກໂດເມນແລະໄດເລກະທໍລີຫຼັກຖ້າທ່ານຕ້ອງການ.

# mkdir -p /srv/www/tecmint/public_html 
# mkdir /srv/www/tecmint/logs 
# chown -R nginx:nginx /srv/www/tecmint  

ຂັ້ນຕອນທີ 9: ການຕັ້ງຄ່າລາຍຊື່ແຟ້ມໂຮດຕິ້ງ Nginx

ດັ່ງທີ່ທ່ານຮູ້, ຄວາມສາມາດໃນການເຮັດວຽກຫລາຍໆເວັບໄຊທ໌ຈາກເຄື່ອງດຽວກັນແມ່ນ ໜຶ່ງ ໃນຄຸນລັກສະນະທີ່ໂດດເດັ່ນຂອງເຄື່ອງແມ່ຂ່າຍເວັບທີ່ ສຳ ຄັນ. ຕອນນີ້ຂໍໃຫ້ພວກເຮົາ ດຳ ເນີນການສ້າງລາຍການຕ່າງໆເພື່ອເກັບຂໍ້ມູນ server ຂອງພວກເຮົາ (ທີ່ຮູ້ກັນໃນນາມ virtual hosts ໃນ Apache) ພາຍໃຕ້/etc/nginx.

# mkdir /etc/nginx/sites-available 
# mkdir /etc/nginx/sites-enabled 

ລະຫັດເສັ້ນຕໍ່ໄປນີ້, ເຊິ່ງຕ້ອງໄດ້ໃສ່ກ່ອນທີ່ຈະປິດ http block ໃນ /etc/nginx/nginx.conf, ຈະຮັບປະກັນວ່າໄຟລ໌ການຕັ້ງຄ່າຕ່າງໆພາຍໃນໄດເລກະທໍລີທີ່ເປີດໃຊ້/etc/nginx/sites ຕ່າງໆຈະຖືກ ຄຳ ນຶງເຖິງເມື່ອ Nginx ກຳ ລັງແລ່ນ. :

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 

ເພື່ອສ້າງບລັອກເຊີຟເວີ ສຳ ລັບ linux-console.net , ຕື່ມແຖວຂອງລະຫັດຕໍ່ໄປນີ້ໃສ່/etc/nginx/sites-available/tecmint (ເອກະສານນີ້ຈະຖືກສ້າງຂື້ນເມື່ອທ່ານເຂົ້າເສັ້ນທາງເຕັມເພື່ອເລີ່ມຕົ້ນທີ່ທ່ານຕ້ອງການ ບັນນາທິການຕົວ ໜັງ ສື). ນີ້ແມ່ນເອກະສານ config config ຂອງ virtual host ພື້ນຖານ.

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

ຂັ້ນຕອນຂອງການ“ ເປີດໃຊ້ງານ” virtual host ປະກອບມີການສ້າງສັນຍາລັກເຊື່ອມໂຍງຈາກ ຄຳ ນິຍາມຂອງ tecmint host virtual ກັບ/etc/nginx/sites-enable.

# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

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

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 

ເພື່ອເຂົ້າຫາເຈົ້າພາບເສມືນທີ່ຖືກສ້າງຂື້ນ ໃໝ່ ຂອງທ່ານ, ທ່ານ ຈຳ ເປັນຕ້ອງເພີ່ມສາຍຕໍ່ໄປນີ້ໃສ່/etc/hosts ເປັນວິທີການພື້ນຖານຂອງການແກ້ໄຂຊື່ໂດເມນ.

192.168.0.18	linux-console.net linux-console.net 

ຂັ້ນຕອນທີ 10: ການທົດສອບ Nginx, MySQL, PHP ແລະ PHP-FPM

ຕິດຢູ່ກັບແບບເກົ່າແກ່ຂອງການທົດສອບ PHP. ສ້າງແຟ້ມເອກະສານທີ່ມີຊື່ວ່າ test.php ພາຍໃຕ້/srv/www/tecmint/public_html/ແລະເພີ່ມສາຍໂຄດດັ່ງຕໍ່ໄປນີ້ໃສ່ມັນ.

ໜ້າ ທີ່ phpinfo() ສະແດງຂໍ້ມູນຫຼາຍຢ່າງກ່ຽວກັບການຕິດຕັ້ງ PHP ໃນປະຈຸບັນ:

<?php 
	phpinfo(); 
?> 

ຕອນນີ້ຊີ້ຕົວທ່ອງເວັບຂອງທ່ານໄປທີ່ http://tecmint/test.php ແລະກວດສອບການມີຂອງໂມດູນທີ່ຕິດຕັ້ງແລະຊອບແວເພີ່ມເຕີມ:

ຊົມເຊີຍ! ດຽວນີ້ທ່ານໄດ້ຕິດຕັ້ງ LEMP stack ແລ້ວ. ຖ້າບາງສິ່ງບາງຢ່າງບໍ່ໄດ້ຕາມທີ່ຄາດໄວ້, ກະລຸນາຕິດຕໍ່ຫາພວກເຮົາໂດຍໃຊ້ແບບຟອມລຸ່ມນີ້. ຄຳ ຖາມແລະ ຄຳ ແນະ ນຳ ກໍ່ຖືກຕ້ອນຮັບ.