ค้นหาเว็บไซต์

ติดตั้ง 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 หากคุณประสบปัญหาใดๆ ในระหว่างการตั้งค่า โปรดถามคำถามของคุณผ่านแบบฟอร์มความคิดเห็นด้านล่าง