ติดตั้ง LEMP - Nginx, PHP, MariaDB และ PhpMyAdmin ใน OpenSUSE
LEMP หรือ Linux, Engine-x, MySQL และ PHP stack เป็นซอฟต์แวร์ ชุดประกอบด้วยซอฟต์แวร์โอเพ่นซอร์สที่ติดตั้งบนระบบปฏิบัติการ Linux สำหรับการรันเว็บแอปพลิเคชันที่ใช้ PHP ซึ่งขับเคลื่อนโดยเซิร์ฟเวอร์ Nginx HTTP และระบบจัดการฐานข้อมูล MySQL/MariaDB
อ่านเพิ่มเติม: ติดตั้ง LAMP – Apache, PHP, MariaDB และ PhpMyAdmin ใน OpenSUSE
บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับวิธีการติดตั้งสแต็ก LEMP ด้วย Nginx, MariaDB, PHP, PHP-FPM และ PhpMyAdmin บนเซิร์ฟเวอร์/รุ่นเดสก์ท็อป OpenSuse
การติดตั้งเซิร์ฟเวอร์ Nginx HTTP
Nginx เป็น HTTP และพร็อกซีเซิร์ฟเวอร์ที่รวดเร็วและเชื่อถือได้ ซึ่งสามารถรองรับคำขอ HTTP ที่โหลดสูงขึ้นได้ โดยใช้วิธีการขับเคลื่อนด้วยเหตุการณ์แบบอะซิงโครนัสในการจัดการคำขอ และสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์แบบโมดูลาร์สามารถให้ประสิทธิภาพที่คาดการณ์ได้มากขึ้นภายใต้ภาระงานสูง
หากต้องการติดตั้ง Nginx บน OpenSuse ให้รันคำสั่งต่อไปนี้
sudo zypper install nginx
เมื่อติดตั้ง Nginx แล้ว คุณสามารถเริ่มบริการได้ในตอนนี้ จากนั้นเปิดใช้งานให้เริ่มอัตโนมัติในเวลาบูตและตรวจสอบสถานะของ Nginx โดยการเรียกใช้คำสั่งต่อไปนี้
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
อ่านเพิ่มเติม: 10 คำสั่ง Nginx ที่ใช้มากที่สุดที่ผู้ใช้ Linux ทุกคนต้องรู้จัก
ณ จุดนี้ เว็บเซิร์ฟเวอร์ 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
หากคุณติดตั้งไฟร์วอลล์ไว้ คุณจะต้องเปิดพอร์ต 80 และ 443 เพื่ออนุญาตการรับส่งข้อมูลเว็บบนไฟร์วอลล์
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
จากนั้น เปิดเว็บเบราว์เซอร์แล้วไปที่ที่อยู่ http://localhost
และยืนยันหน้า Nginx
การติดตั้งเซิร์ฟเวอร์ฐานข้อมูล MariaDB
MariaDB เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ MySQL ฟรีและเป็นโอเพ่นซอร์ส ได้รับการพัฒนาโดยนักพัฒนาดั้งเดิมของ MySQL และตั้งใจที่จะยังคงเป็นโอเพ่นซอร์ส MariaDB ทำงานรวดเร็ว ปรับขนาดได้ และแข็งแกร่ง พร้อมด้วยระบบนิเวศที่สมบูรณ์ของกลไกการจัดเก็บข้อมูล ปลั๊กอิน และเครื่องมืออื่นๆ อีกมากมาย ทำให้มีความหลากหลายมากสำหรับกรณีการใช้งานที่หลากหลาย
หากต้องการติดตั้ง 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 Process Manager) เป็น FastCGI daemon ทางเลือกสำหรับ 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 ทำได้โดยการเปลี่ยนค่าของพารามิเตอร์ผู้ใช้และกลุ่มจาก nobody
เป็น 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 ไปยังเซิร์ฟเวอร์ 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
หากไวยากรณ์การกำหนดค่า Nginx ใช้ได้ ให้ดำเนินการต่อและรีสตาร์ทบริการ Nginx และ PHP-FPM เพื่อให้การเปลี่ยนแปลงล่าสุดมีผล
sudo systemctl restart nginx php-fpm
ตอนนี้เปิดเว็บเบราว์เซอร์แล้วไปที่ที่อยู่ http://localhost/info.php
เพื่อตรวจสอบการกำหนดค่า PHP ดังที่แสดงในภาพหน้าจอต่อไปนี้
การติดตั้งและกำหนดค่า PhpMyAdmin
phpMyAdmin เป็นเครื่องมือฟรี ใช้งานง่าย และได้รับความนิยมซึ่งเขียนด้วย PHP สร้างขึ้นสำหรับการจัดการเซิร์ฟเวอร์ MySQL ผ่านทางเว็บ รองรับการดำเนินการที่หลากหลายบน 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
ตอนนี้ไปที่เว็บเบราว์เซอร์ของคุณแล้วพิมพ์ที่อยู่ http://localhost/phpMyAdmin หน้าเข้าสู่ระบบ phpMyAdmin ควรแสดงดังที่แสดงในภาพหน้าจอต่อไปนี้ ป้อนข้อมูลรับรองการเข้าสู่ระบบผู้ใช้รูทฐานข้อมูลของคุณแล้วคลิก ไป
นั่นคือทั้งหมด! ในบทช่วยสอนนี้ เราได้อธิบายให้คุณทราบถึงวิธีการติดตั้งสแต็ก LEMP ด้วย Nginx, MariaDB, PHP, PHP-FPM และ PhpMyAdmin บนเซิร์ฟเวอร์/รุ่นเดสก์ท็อป OpenSuse หากคุณประสบปัญหาใดๆ ในระหว่างการตั้งค่า โปรดถามคำถามของคุณผ่านแบบฟอร์มความคิดเห็นด้านล่าง