วิธีเปิดใช้งานและตรวจสอบสถานะ PHP-FPM ใน Nginx
PHP-FPM (FastCGI Process Manager) เป็นการใช้งาน PHP FastCGI อีกทางเลือกหนึ่งที่มาพร้อมกับคุณสมบัติพิเศษมากมายที่เป็นประโยชน์สำหรับเว็บไซต์ทุกขนาด โดยเฉพาะไซต์ที่ได้รับการเข้าชมสูง
โดยทั่วไปจะใช้ในสแต็ก LEMP (Linux Nginx MySQL/MariaDB PHP) Nginx ใช้ PHP FastCGI สำหรับการให้บริการเนื้อหา HTTP แบบไดนามิกบนเครือข่าย มีการใช้เพื่อรองรับคำขอ PHP หลายล้านรายการสำหรับเว็บไซต์หลายร้อยแห่งบนเว็บเซิร์ฟเวอร์บนอินเทอร์เน็ต
อ่านเพิ่มเติม: วิธีเปิดใช้งานหน้าสถานะ NGINX
คุณสมบัติที่มีประโยชน์อย่างหนึ่งของ php-fpm คือหน้าสถานะในตัว ซึ่งสามารถช่วยคุณตรวจสอบความสมบูรณ์ของหน้าได้ ในบทความนี้ เราจะแสดงวิธีเปิดใช้งานหน้าสถานะ PHP-FPM บน Linux
วิธีเปิดใช้งานหน้าสถานะ PHP-FPM ใน Linux
ขั้นแรกให้เปิดไฟล์การกำหนดค่า php-fpm และเปิดใช้งานหน้าสถานะตามที่แสดง
sudo vim /etc/php-fpm.d/www.conf
OR
sudo vim /etc/php/7.2/fpm/pool.d/www.conf #for PHP versions 5.6, 7.0, 7.1
ภายในไฟล์นี้ ให้ค้นหาและยกเลิกหมายเหตุตัวแปร pm.status_path=/status
ดังที่แสดงในภาพหน้าจอ
บันทึกการเปลี่ยนแปลงและออกจากไฟล์
จากนั้น ตรวจสอบว่าไฟล์การกำหนดค่า PHP-FPM มีข้อผิดพลาดหรือไม่ โดยเรียกใช้คำสั่งด้านล่าง
sudo php-fpm -t
OR
sudo php7.2-fpm -t
จากนั้นรีสตาร์ทบริการ PHP-FPM เพื่อใช้การเปลี่ยนแปลงล่าสุด
sudo systemctl restart php-fpm
OR
sudo systemctl restart php7.2-fpm
จากนั้น แก้ไขไฟล์การกำหนดค่า บล็อกเซิร์ฟเวอร์ (โฮสต์เสมือน) เริ่มต้นของคุณ และเพิ่ม บล็อกตำแหน่ง ด้านล่างลงไป ตัวอย่างเช่น ในระบบทดสอบ ไฟล์กำหนดค่าของบล็อกเซิร์ฟเวอร์เริ่มต้นคือ /etc/nginx/conf.d/default.conf สำหรับไซต์ test.lab
sudo vim /etc/nginx/conf.d/default.conf
นี่คือบล็อกตำแหน่งที่จะเพิ่ม ในการกำหนดค่านี้ เราอนุญาตให้เข้าถึงเฉพาะสถานะกระบวนการ PHP-FPM ภายในโลคัลโฮสต์ โดยใช้คำสั่ง อนุญาต 127.0.0.1 ด้วยเหตุผลด้านความปลอดภัย
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php7.2-fpm.sock;
}
บันทึกไฟล์และปิด
จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Nginx เพื่อใช้การเปลี่ยนแปลงข้างต้น
sudo systemctl restart nginx
ตอนนี้ให้เปิดเบราว์เซอร์แล้วพิมพ์ URL http://test.lab/status
เพื่อดูสถานะกระบวนการ PHP-FPM ของคุณ
หรือใช้โปรแกรม curl ดังต่อไปนี้ โดยที่แฟล็ก -L
ระบุตำแหน่งของเพจ
curl -L http://test.lab/status
ตามค่าเริ่มต้น หน้าสถานะจะพิมพ์เฉพาะสถานะสรุปหรือสถานะแบบสั้นเท่านั้น หากต้องการดูสถานะของกระบวนการพูลแต่ละกระบวนการ ให้ส่ง “full ” ในสตริงการสืบค้น เช่น:
http://www.foo.bar/status?full
คุณสามารถกำหนดรูปแบบเอาต์พุต (JSON, HTML หรือ XML) ดังที่แสดง
http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full
ด้านล่างนี้คือค่าที่ส่งคืนในสถานะเต็ม php-fpm สำหรับแต่ละกระบวนการ:
- pid – PID ของกระบวนการ
- สถานะ สถานะกระบวนการ (ไม่ได้ใช้งาน ทำงานอยู่ ฯลฯ)
- เวลาเริ่มต้น – วันที่และเวลาที่กระบวนการเริ่มต้นขึ้น
- เริ่มต้นตั้งแต่ – จำนวนวินาทีนับตั้งแต่กระบวนการเริ่มต้นขึ้น
- คำขอ – จำนวนคำขอที่กระบวนการได้ให้บริการ
- ระยะเวลาคำขอ – ระยะเวลาเป็น µs ของคำขอ
- วิธีการร้องขอ – วิธีการร้องขอ (GET, POST ฯลฯ)
- ร้องขอ URI – ขอ URI ด้วยสตริงการสืบค้น
- ความยาวเนื้อหา – ความยาวเนื้อหาของคำขอ (เฉพาะกับ POST)
- ผู้ใช้ – ผู้ใช้ (PHP_AUTH_USER) (หรือ '-' หากไม่ได้ตั้งค่า)
- สคริปต์ – สคริปต์หลักที่เรียกว่า (หรือ '-' หากไม่ได้ตั้งค่า)
- คำขอล่าสุด cpu – %cpu คำขอสุดท้ายที่ใช้ไป (โปรดทราบว่าจะเป็น 0 เสมอหากกระบวนการไม่อยู่ในสถานะไม่ได้ใช้งาน)
- หน่วยความจำคำขอล่าสุด – จำนวนหน่วยความจำสูงสุดที่คำขอล่าสุดใช้ไป (จะเป็น 0 เสมอหากกระบวนการไม่อยู่ในสถานะไม่ได้ใช้งาน)
แค่นั้นแหละ! ในบทความนี้ เราได้อธิบายวิธีเปิดใช้งานหน้าสถานะ php-fpm ภายใต้เว็บเซิร์ฟเวอร์ Nginx ใช้แบบฟอร์มคำติชมด้านล่างเพื่อแบ่งปันความคิดของคุณกับเรา