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

การติดตั้งเครื่องมือ "PHP Server Monitor" โดยใช้ LEMP หรือ LAMP Stack ใน Arch Linux


PHP Server Monitor เป็นเครื่องมือตรวจสอบส่วนหน้าของเว็บแบบโอเพ่นซอร์สที่เขียนด้วย PHP ซึ่งสามารถตรวจสอบว่าเซิร์ฟเวอร์ของคุณ (IP, โดเมน) หรือบริการต่างๆ ทำงานอยู่หรือไม่ และสามารถส่งการแจ้งเตือนถึงคุณผ่านบริการอีเมลหรือ SMS หากเกิดปัญหากับบริการหรือพอร์ตที่ได้รับการตรวจสอบ ตรวจสอบเว็บไซต์โดยใช้รหัสสถานะ HTTP สามารถแสดงกราฟประวัติสถานะการออนไลน์และเวลาแฝง และสามารถใช้การรับรองความถูกต้องได้สองระดับ (ผู้ดูแลระบบและผู้ใช้ทั่วไป)

บทช่วยสอนนี้นำเสนอวิธีที่คุณสามารถติดตั้ง PHP Server Monitor ในสภาพแวดล้อมเซิร์ฟเวอร์ Arch Linux โดยใช้ Apache เป็นเซิร์ฟเวอร์หรือเว็บเซิร์ฟเวอร์ Nginx คุณจึงสามารถเลือกขั้นตอนการติดตั้งที่เหมาะกับคุณที่สุดได้

ข้อกำหนดการตรวจสอบเซิร์ฟเวอร์ PHP

ตามข้อกำหนดทั่วไปในการติดตั้งและตั้งค่า PHP Server Monitor สำหรับแพลตฟอร์ม Linux อื่นๆ เซิร์ฟเวอร์ของคุณจำเป็นต้องติดตั้งแพ็คเกจต่อไปนี้

  1. PHP 5.3.7+
  2. แพ็คเกจ PHP: cURL, MySQL
  3. ฐานข้อมูล MySQL
  4. เว็บเซิร์ฟเวอร์ Nginx หรือ Apache

ความต้องการของระบบ

หากต้องการติดตั้ง PHP Server Monitor ด้วย Nginx ให้ใช้บทช่วยสอนต่อไปนี้เป็นแนวทางในการตั้งค่า LEMP stack และ Virtual Hosts บน Arch

  1. ติดตั้ง LEMP (Linux, Nginx, MySQL, PHP) ใน Arch Linux
  2. สร้างโฮสต์เสมือน Nginx ใน Arch Linux

หากต้องการติดตั้ง PHP Server Monitor ด้วย Apache ให้ใช้คำแนะนำต่อไปนี้เพื่อตั้งค่า LAMP stack บน Arch Linux

  1. ติดตั้ง LAMP (Linux, Apache, MySQL, PHP) ใน Arch Linux

ขั้นตอนที่ 1: กำหนดค่าเว็บเซิร์ฟเวอร์ Nginx/Apache

1. ก่อนที่เราจะเริ่ม หากการตั้งค่าของคุณใช้โฮสติ้งเสมือน คุณต้องแน่ใจว่าคุณมีรายการ DNS ที่ถูกต้องซึ่งชี้ไปยังโดเมนของคุณ หรือใช้ไฟล์ โฮสต์ ในเครื่องในกรณีที่คุณไม่' ไม่มีเซิร์ฟเวอร์ DNS บทช่วยสอนนี้ใช้โฮสติ้งเสมือนกับทั้งเว็บเซิร์ฟเวอร์ (Nginx และ Apache) ที่กำหนดค่าด้วยโดเมนท้องถิ่นปลอม – phpsrvmon.lan – ถึง /etc/hosts ไฟล์

สร้างไฟล์การกำหนดค่าโฮสต์เสมือน Nginx

2. หากต้องการเพิ่ม Nginx Virtual Host ใหม่ ให้สร้างไฟล์การกำหนดค่าใหม่บน /etc/nginx/sites-available/ ด้วย phpsrvmon.conf ตั้งชื่อและใช้เทมเพลตต่อไปนี้เป็นตัวอย่างการกำหนดค่า

sudo nano /etc/nginx/sites-available/phpsrvmon.conf

เพิ่มโค้ดต่อไปนี้ลงในไฟล์ phpsrvmon.conf

server {
    listen 80;
    server_name phpsrvmon.lan;

    access_log /var/log/nginx/phpsrvmon.lan-access.log;
    error_log /var/log/nginx/phpsrvmon.lan-error.log;

                root /srv/www/phpsrvmon;

    location / {
    index index.php index.html index.htm;
                autoindex on;
}

location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

3. หากคุณต้องการเข้าถึง PHP Sever Monitor ผ่านโปรโตคอล HTTP ที่ปลอดภัย ให้สร้างไฟล์การกำหนดค่าที่เทียบเท่ากับ SSL

sudo nano /etc/nginx/sites-available/phpsrvmon-ssl.conf

เพิ่มโค้ดต่อไปนี้ลงในไฟล์ phpsrvmon-ssl.conf

server {
    listen 443 ssl;
    server_name phpsrvmon.lan;

       root /srv/www/phpsrvmon;
       ssl_certificate     /etc/nginx/ssl/nginx.crt;
       ssl_certificate_key  /etc/nginx/ssl/nginx.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/phpsrvmon.lan-ssl_access.log;
    error_log /var/log/nginx/phpsrvmon.lan-ssl_error.log;

    location / {
    index index.php index.html index.htm;
                autoindex on;
 }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

4. หลังจากแก้ไขไฟล์ Nginx conf แล้ว ให้สร้างพาธ Document Root ในกรณีที่คุณเปลี่ยนดังนี้เป็น /srv/www/phpsrvmon/ ให้เปิดใช้งานโฮสต์เสมือนทั้งสองโดยใช้ n2ensite และรีสตาร์ท Nginx เพื่อให้สอดคล้องกับการเปลี่ยนแปลง

sudo mkdir -p /srv/www/phpsrvmon/
sudo n2ensite phpsrvmon
sudo n2ensite phpsrvmon-ssl
sudo systemctl restart nginx

หากคุณต้องการใบรับรอง SSL ใหม่สำหรับโฮสต์เสมือนของคุณ ให้สร้างใบรับรองโดยใช้คำสั่ง nginx_gen_ssl พร้อมชื่อโดเมนของคุณ และแก้ไข phpsrvmon-ssl.conf ตามลำดับ

สร้างไฟล์การกำหนดค่าโฮสต์เสมือน Apache

5. หากคุณใช้ Apache เป็นเว็บเซิร์ฟเวอร์ ให้สร้างไฟล์การกำหนดค่า Virtual Host ใหม่บน /etc/httpd/conf/sites-available/ ด้วย phpsrvmon conf และใช้คำจำกัดความของไฟล์ต่อไปนี้เป็นเทมเพลต

sudo nano /etc/httpd/conf/sites-available/phpsrvmon.conf

เพิ่มโค้ดต่อไปนี้ลงในไฟล์ phpsrvmon.conf

<VirtualHost *:80>
                DocumentRoot "/srv/www/phpsrvmon"
                ServerName phpsrvmon.lan
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/phpsrvmon-error_log"
                TransferLog "/var/log/httpd/phpsrvmon-access_log"

<Directory />
    Options +Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>
</VirtualHost>

6. หากคุณต้องการการเข้าถึง PHP Server Monitor บนโปรโตคอล HTTPS ให้สร้างไฟล์การกำหนดค่า Virtual Host SSL ใหม่ด้วยคำสั่งต่อไปนี้

sudo nano /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf

เพิ่มโค้ดทั้งหมดต่อไปนี้ลงในไฟล์ phpsrvmon-ssl.conf

<VirtualHost *:443>
                ServerName phpsrvmon.lan
                DocumentRoot "/srv/www/phpsrvmon"
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/phpsrvmon.lan-error_log"
                TransferLog "/var/log/httpd/phpsrvmon.lan-access_log"

SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/phpsrvmon.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/phpsrvmon.lan.key"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory />
    Options +Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>
</VirtualHost>

7. ใช้ขั้นตอนเดียวกันกับ Nginx สร้างไดเร็กทอรี Document Root ในกรณีที่เส้นทางการให้บริการไฟล์เว็บมีการเปลี่ยนแปลง ให้เปิดใช้งาน Apache Virtual Hosts โดยใช้คำสั่ง a2ensite และรีสตาร์ท daemon ไปที่ ใช้การเปลี่ยนแปลง

sudo mkdir -p /srv/www/phpsrvmon/
sudo a2ensite phpsrvmon
sudo a2ensite phpsrvmon-ssl
sudo systemctl restart httpd

หากต้องการสร้างใบรับรอง SSL และคีย์ใหม่สำหรับโฮสต์เสมือนนี้ ให้ใช้ยูทิลิตี apache_gen_ssl ต่อท้ายชื่อโดเมนของคุณบนชื่อใบรับรองและแก้ไข /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf โดยแทนที่ใบรับรอง SSL เก่าและพาธคีย์และชื่อด้วยอันใหม่

ขั้นตอนที่ 2: แก้ไขการกำหนดค่า PHP

8. เพื่อหลีกเลี่ยงข้อผิดพลาดในการติดตั้ง PHP Server Monitor นั้นจะโยนทิ้งเมื่อตรวจสอบความต้องการของระบบที่เปิดไฟล์ php.ini และทำการปรับเปลี่ยนต่อไปนี้

sudo nano /etc/php/php.ini

หากเส้นทางรูทของเอกสาร Nginx/Apache มีการเปลี่ยนแปลง (ค่าเริ่มต้นคือ /srv/http/) ให้ใช้ [Ctrl+w] เพื่อค้นหา open_basedir คำสั่งและต่อท้ายเส้นทางใหม่โดยนำหน้าด้วยโคลอน “ : “ – ในกรณีนี้ เส้นทางใหม่คือ /srv/www/ – เพื่อให้มีลักษณะเหมือนในตัวอย่างด้านล่าง

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

ค้นหาและเปิดใช้งานส่วนขยาย PHP pdo, mysqli และ curl โดยไม่ใส่เครื่องหมายข้อคิดเห็น (ลบเครื่องหมายอัฒภาคออกจากด้านหน้า)

extension=curl.so
extension=mysqli.so
extension=pdo_mysql.so

ค้นหาเขตเวลาและตั้งเวลาท้องถิ่นของคุณโดยใช้หน้านี้

date.timezone = Continent/City

9. หลังจากทำการเปลี่ยนแปลงทั้งหมดแล้ว ให้รีสตาร์ทบริการของคุณเพื่อใช้การเปลี่ยนแปลง

sudo systemctl restart php-fpm
sudo systemctl restart nginx
sudo systemctl restart httpd

ขั้นตอนที่ 3: สร้างฐานข้อมูล MySQL ตรวจสอบเซิร์ฟเวอร์ PHP

10. หากต้องการสร้างฐานข้อมูลที่จำเป็นสำหรับ PHP Server Monitor เพื่อจัดเก็บข้อมูล ให้เข้าสู่ระบบฐานข้อมูล MySQL/MariaDB และสร้างฐานข้อมูลใหม่โดยใช้คำสั่งต่อไปนี้ (แทนที่ฐานข้อมูล ผู้ใช้ และรหัสผ่านด้วยข้อมูลรับรองที่คุณต้องการ)

mysql -u root -p

MariaDB > create database phpsrvmon;
MariaDB > create user phpsrvmon_user@localhost identified by "user_password";
MariaDB > grant all privileges on phpsrvmon.* to phpsrvmon_user@localhost;
MariaDB > flush privileges;
MariaDB > quit

หากคุณติดตั้ง PhpMyAdmin บนระบบของคุณ คุณสามารถสร้างฐานข้อมูล PHP Server Monitor ได้โดยการเข้าถึง MySQL/MariaDB จากเว็บอินเตอร์เฟส

ขั้นตอนที่ 4: ติดตั้ง PHP Server Monitor

11. ก่อนดำเนินการดาวน์โหลดเครื่องมือ PHP Server Monitor ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งคำสั่ง wget แล้ว

sudo pacman -S wget

12. หากต้องการรับ PHP Server Monitor เวอร์ชันล่าสุด โปรดไปที่ลิงก์ต่อไปนี้และดาวน์โหลดไฟล์เก็บถาวร tar.gz หรือใช้ลิงก์ดาวน์โหลด Git อย่างเป็นทางการที่ให้ไว้ด้านล่าง

  1. http://www.phpservermonitor.org/download/
  2. https://github.com/phpservermon/phpservermon

หรือคุณสามารถดาวน์โหลดได้โดยตรงโดยใช้คำสั่ง wget ต่อไปนี้

wget http://downloads.sourceforge.net/project/phpservermon/phpservermon/PHP%20Server%20Monitor%20v3.0.1/phpservermon-v3.0.1.tar.gz

13. หลังจากดาวน์โหลดเวอร์ชันล่าสุด ให้แตกไฟล์ด้วยคำสั่ง tar และคัดลอกเนื้อหาที่แตกออกมาทั้งหมดไปยังพาธรูทของเอกสารเซิร์ฟเวอร์เว็บโดยใช้คำสั่งต่อไปนี้

tar xfvz phpservermon-v3.0.1.tar.gz
sudo cp -r phpservermon/* /srv/www/phpsrvmon/

14. จากนั้นเปิดเบราว์เซอร์และไปที่ชื่อโดเมนของคุณ (ในกรณีที่คุณใช้โฮสต์เสมือนตามที่แสดงในบทช่วยสอนนี้ มิฉะนั้นให้ใช้ที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ ) และบนหน้าทักทาย ให้กดปุ่ม Let’s go

15. ในหน้าจอถัดไป ให้ป้อนข้อมูลฐานข้อมูล MySQL ของคุณแล้วกด บันทึกการกำหนดค่า

16. หากคุณได้รับข้อผิดพลาดที่ระบุว่าไฟล์การกำหนดค่าของคุณไม่สามารถเขียนได้ ให้ใช้คำสั่งต่อไปนี้เพื่อสร้างไฟล์ confing.php ที่เขียนได้ และกดที่ I ได้บันทึกการกำหนดค่าแล้ว

su -c “> /srv/www/phpsrvmon/config.php”
sudo chmod 777 /srv/www/phpsrvmon/config.php

17. หลังจากบันทึกการกำหนดค่าแล้ว ให้สร้างผู้ใช้ที่เป็นผู้ดูแลระบบสำหรับ PHP Server Monitor โดยเลือกข้อมูลประจำตัวของคุณ และกดปุ่ม ติดตั้ง

18. หลังจากกระบวนการติดตั้งเสร็จสิ้น กดปุ่ม ไปที่จอภาพของคุณ และคุณจะถูกเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบ เข้าสู่ระบบด้วยข้อมูลประจำตัวของคุณและคุณจะได้รับแจ้งให้ไปที่หน้า PHP Server Monitor เริ่มต้น คืนค่าการเปลี่ยนแปลงไปยังไฟล์ config.php ของ PHP Server Monitor ด้วย

sudo chmod 754 /srv/www/phpsrvmon/config.php

19. หากต้องการเพิ่มเว็บไซต์ใหม่สำหรับการตรวจสอบ ให้ไปที่ เซิร์ฟเวอร์ -> เพิ่มใหม่ กรอกข้อมูลในฟิลด์บังคับด้วยการตั้งค่าเซิร์ฟเวอร์ของคุณ และกดที่ ปุ่มบันทึก

20. หากต้องการเริ่มกระบวนการตรวจสอบบนเซิร์ฟเวอร์และบริการทั้งหมด ให้กดปุ่ม อัปเดต และคุณจะถูกเปลี่ยนเส้นทางไปยังหน้าแรกเริ่มต้นซึ่งคุณจะเห็นสถานะเว็บไซต์/บริการของคุณ

21. เพื่อให้ PHP Server Monitor ตรวจสอบสถานะเซิร์ฟเวอร์/บริการของคุณโดยอัตโนมัติในช่วงเวลาปกติ คุณจะต้องติดตั้งตัวกำหนดเวลางาน Cron บนระบบของคุณ และเพิ่มเวลาการตรวจสอบ รายการช่วงเวลาในไฟล์ cron

sudo pacman -S cronie
sudo systemctl start cronie
sudo systemctl enable cronie

22. หากต้องการเพิ่มรายการใหม่ในไฟล์ cron ซึ่งจะตรวจสอบเว็บไซต์ของคุณทุกๆ 5 นาที ให้ใช้ คำสั่ง sudo crontab –e หรือ ดีกว่านั้น แก้ไขไฟล์ root cron ด้วยตนเองที่อยู่ใน < ไดเรกทอรี b>/var/spool/cron/ โดยการปรับเส้นทางให้ตรงกับไดเรกทอรีการติดตั้ง PHP Server Monitor ของคุณ หากต้องการแสดงรายการ crontab ทั้งหมดให้ใช้บรรทัดคำสั่ง sudo crontab -l

sudo nano /var/spool/cron/root

เพิ่มรายการต่อไปนี้ - ปรับช่วงเวลาและเส้นทางการติดตั้งให้เหมาะสม

*/5 * * * * /usr/bin/php   /srv/www/phpsrvmon/cron/status.cron.php

บทสรุป

แม้ว่า PHP Server Monitor จะไม่มีความซับซ้อนเพิ่มขึ้นเหมือนกับบริการตรวจสอบอื่นๆ เช่น Nagios, Cacti หรือ Zabbix แต่มีแนวโน้มที่จะใช้ทรัพยากรเพียงเล็กน้อย และสามารถตอบสนองงานในฐานะแพลตฟอร์มการตรวจสอบโดยการกำหนดค่าให้ส่งอีเมลหรือข้อความ SMS ผ่านรายการเกตเวย์ SMS ขนาดใหญ่ ในกรณีที่เว็บไซต์และบริการที่ได้รับการตรวจสอบของคุณประสบปัญหาทางเทคนิคหรือล่ม

หน้าแรก: การตรวจสอบเซิร์ฟเวอร์ PHP