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

วิธีเปิดใช้งานและตรวจสอบสถานะ 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 ใช้แบบฟอร์มคำติชมด้านล่างเพื่อแบ่งปันความคิดของคุณกับเรา