Installéiere vum PHP Server Monitor Tool mat LEMP oder LAMP Stack am Arch Linux


PHP Server Monitor ass en Open Source Web Frontend Iwwerwachungsinstrument geschriwwen a PHP, dat verifizéiere kann ob Är Serveren (IP, Domains) oder Servicer op a lafen sinn a kann Iech Notifikatiounen iwwer Mail Servicer oder SMS schécken wann e Problem op engem iwwerwaachte Service oder port geschitt ass. Et iwwerpréift Websäite mat HTTP-Statuscode, kann Geschichtsgrafiken vun Uptime a Latenz affichéieren a kann zwee Authentifikatiounsniveauen benotzen (Administrator a regelméisseg Benotzer).

Dësen Tutorial präsentéiert Iech e Wee wéi Dir PHP Server Monitor an engem Arch Linux Server Ëmfeld installéiere kënnt, ob Apache als Server oder Nginx Webserver benotzt, sou, Dir kënnt d'Installatioun Prozess wielen dass beschte passt Dir.

Als allgemeng Ufuerderunge fir PHP Server Monitor fir all aner Linux Plattformen z'installéieren an opzestellen, brauch Dir Server déi folgend Packagen installéiert.

  1. PHP 5.3.7+
  2. PHP Packagen: cURL, MySQL
  3. MySQL Datebank
  4. Nginx oder Apache Webserver

Fir PHP Server Monitor mat Nginx z'installéieren benotzt déi folgend Tutorials als Guiden fir LEMP Stack a Virtual Hosts op Arch opzestellen.

  1. Install LEMP (Linux, Nginx, MySQL, PHP) an Arch Linux
  2. Erstellt Nginx Virtual Hosts am Arch Linux

Fir PHP Server Monitor mat Apache z'installéieren benotzt de folgende Guide fir de LAMP Stack op Arch Linux opzestellen.

  1. LAMP (Linux, Apache, MySQL, PHP) an Arch Linux installéieren

Schrëtt 1: Nginx/Apache Webserver konfiguréieren

1. Ier mer ufänken, wann Äre Setup Virtual Hosting benotzt, musst Dir sécher sinn datt Dir gëlteg DNS-Entrée op Är Domain weist oder lokal Hosts Datei benotzt am Fall wou Dir keen DNS-Server hutt. Dësen Tutorial benotzt Virtual Hosting mat béide Webserver (Nginx an Apache) konfiguréiert mat engem lokalen Domain gefälschte - phpsrvmon.lan - duerch /etc/hosts Datei.

2. Fir en neien Nginx Virtual Host derbäi ze ginn, erstellt eng nei Konfiguratiounsdatei op /etc/nginx/sites-available/ mam phpsrvmon.conf Numm a benotzt déi folgend Schabloun als engem Configuratioun Beispill.

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

Füügt de folgende Code an d'phpsrvmon.conf Datei.

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. Wann Dir Zougang zu PHP Sever Monitor iwwer sécher HTTP-Protokoll wëllt, erstellt seng SSL-gläichwäerteg Konfiguratiounsdatei.

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

Füügt de folgende Code an d'phpsrvmon-ssl.conf Datei.

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. Nodeems Dir Nginx conf Dateien geännert hutt, erstellt de Dokument Root Wee, am Fall wou Dir et geännert hutt wéi hei op /srv/www/phpsrvmon/, aktivéiert béid virtuell Hosten mat der n2ensite Utility a restart Nginx fir Ännerungen ze reflektéieren.

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

Wann Dir en neien SSL Zertifika fir Äre Virtuelle Host erfuerdert, generéiert een mam Kommando nginx_gen_ssl mat Ärem Domain Numm an ännert phpsrvmon-ssl.conf deementspriechend.

5. Wann Dir Apache als Webserver benotzt, erstellt eng nei Virtuell Host Konfiguratiounsdatei op /etc/httpd/conf/sites-available/ mam phpsrvmon.conf Numm an benotzt déi folgend Dateidefinitioune als Schabloun.

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

Füügt de folgende Code an d'phpsrvmon.conf Datei.

<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. Wann Dir och en Zougang PHP Server Monitor op HTTPS Protokoll braucht, erstellt eng nei Virtual Host SSL Konfiguratiounsdatei mat de folgenden Aussoen.

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

Füügt de folgende ganze Code op phpsrvmon-ssl.conf Datei.

<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. Mat der selwechter Prozedur wéi fir Nginx, erstellt Dokument Root Verzeechnes, am Fall wou d'Webdateien servéiert Wee geännert hunn, aktivéiert Apache Virtual Hosts benotzt a2ensite Kommando an Neistart Daemon fir Ännerungen z'applizéieren.

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

Fir nei SSL Zertifikat a Schlëssel fir dëse virtuelle Host ze generéieren benotzt apache_gen_ssl Utility, füügt Ären Domain Numm op den Zertifikatnumm an a ännert /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf Datei, ersetzt al SSL Zertifikat a Schlësselwee an Nimm mat neien.

Schrëtt 2: PHP Konfiguratiounen änneren

8. Fir e puer Installatiounsfehler ze vermeiden, wäert de PHP Server Monitor werfen wann et d'Systemfuerderunge verifizéiert, op php.ini Datei opmaachen an déi folgend Upassungen maachen.

$ sudo nano /etc/php/php.ini

Wann den Nginx/Apache Document Root Wee geännert gouf (Standard een ass /srv/http/) benotzt [Ctrl+w] fir open_basedir ze fannen Ausso an fügen den neie Wee un andeems Dir mat engem Colon \ : \ prefixéiert - an dësem Fall ass den neie Wee /srv/www/ - fir ze kucken wéi am Beispill ënnendrënner.

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

Sicht an aktivéiert PHP pdo, mysqli a Curl Extensiounen andeems se se net kommentéieren (entfernt Semikolon vun hirer Front).

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

Situéiert Zäitzone a stellt Är lokal Zäit wéi Dir Dës Säit benotzt.

date.timezone = Continent/City

9. Nodeems all Ännerungen gemaach gi Restart Är Servicer fir Ännerungen ze gëllen.

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

Schrëtt 3: PHP Server Monitor MySQL Datebank erstellen

10. Fir d'Datebank ze kreéieren déi néideg ass fir PHP Server Monitor fir Informatioun ze späicheren, loggt Iech op d'MySQL/MariaDB Datebank an erstellt eng nei Datebank mat de folgende Kommandoen (ersetzt d'Datebank, Benotzer a Passwuert mat Äre bevorzugten Umeldungsinformatiounen).

mysql -u root -p

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

Wann Dir PhpMyAdmin op Ärem System installéiert hutt, kënnt Dir PHP Server Monitor Datebank erstellen andeems Dir op MySQL/MariaDB vu senger Webinterface zougitt.

Schrëtt 4: PHP Server Monitor installéieren

11. Ier Dir weider mam PHP Server Monitor Tool eroflueden, gitt sécher datt Dir wget Kommando installéiert hutt.

$ sudo pacman -S wget

12. Fir déi lescht PHP Server Monitor Versioun ze gräifen, gitt op de folgende Link a luet tar.gz Archivdatei erof oder benotzt den offiziellen Git Download Link hei ënnen.

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

Alternativ kënnt Dir och direkt eroflueden mat dem folgenden wget Kommando.

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

13. Nodeems Dir déi lescht Versioun erofgelueden hutt, extrahéiert se mat tar Kommando a kopéiert all extrahéierten Inhalt op Web Server Dokument Root Wee mat de folgende Kommandoen.

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

14. Dann öffnen e Browser a navigéiert op Ären Domain Numm (am Fall wou Dir virtuelle Hosten benotzt wéi Dir an dësem Tutorial presentéiert, soss benotzt Är Server IP Adress ) an op der Begréissungssäit klickt op Let's go button.

15. Op den nächsten Écran gitt Är MySQL Datebank Informatioun a klickt op Konfiguratioun späicheren.

16. Wann Dir e Feeler kritt deen seet datt Är Konfiguratiounsdatei net geschriwwe ka ginn, benotzt déi folgend Kommandoen fir eng schreiwenbar confing.php Datei ze kreéieren a klickt op Ech hunn d'Konfiguratioun gespäichert.

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

17. Nodeems Dir d'Konfiguratioun gespäichert hutt, erstellt en Administrateur Benotzer fir PHP Server Monitor, wielt Är Umeldungsinformatiounen a klickt op Installéieren Knäppchen.

18. Nodeems d'Installatiounsprozess fäerdeg ass, dréckt op Gitt op Äre Monitor Knäppchen an Dir wäert op Login Säit ëmgeleet ginn. Login mat Äre Umeldungsinformatiounen an Dir wäert op Standard PHP Server Monitor Säit opgefuerdert ginn. Och Ännerungen op PHP Server Monitor config.php Datei zrécksetzen.

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

19. Fir eng nei Websäit fir d'Iwwerwaachung ze addéieren, gitt op Server -> Füügt nei, fëllt erfuerderlech Felder mat Äre Serverastellungen aus a dréckt op Späicheren Knäppchen .

20. Fir d'Iwwerwaachungsprozess op all Server a Servicer ze starten, dréckt Update Knäppchen an Dir wäert op d'Standard-Homepage ëmgeleet ginn, wou Dir mat Äre Websäiten/Servicerstatus presentéiert gëtt.

21. Fir datt PHP Server Monitor automatesch Är Serveren/Servicer Status a reegelméissegen Zäitintervaller iwwerpréift, musst Dir e Cron Job Scheduler op Ärem System installéieren an eng Iwwerwaachungszäitperiodentrée an enger Cron Datei derbäi.

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

22. Fir en neien Entrée an der Cron-Datei ze addéieren, déi Är Websäit all 5-Minuten iwwerpréift, benotzt sudo crontab –e Kommando, oder, besser, manuell d'Root-Cron-Datei an /var/spool/ änneren. cron/ Verzeichnis andeems Dir de Wee unzepassen fir Äre PHP Server Monitor Installatiounsverzeechnes ze passen. Fir all crontab Entréen ze lëschten benotzt sudo crontab -l Kommandozeil.

$ sudo nano /var/spool/cron/root

Füügt déi folgend Entrée - d'Zäitperiod an d'Installatiounswee entspriechend unzepassen

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

Conclusioun

Och wann PHP Server Monitor net an der Komplexitéit eropgeet wéi aner Iwwerwaachungsservicer wéi Nagios, Cacti oder Zabbix, tendéiert et ganz liicht an der Ressource ze sinn Konsum a kann d'Aarbecht als Iwwerwaachungsplattform erfëllen andeems Dir E-Mailen oder SMSen duerch eng grouss SMS Gateway-Lëscht konfiguréiert konfiguréiert, am Fall wou Är iwwerwaachte Websäiten a Servicer technesch Probleemer stoussen oder erof sinn.

Homepage: PHP Server Monitor