Ịwụnye ngwa PHP Server Monitor na iji LEMP ma ọ bụ LAMP Stack na Arch Linux


PHP Server Monitor bụ ngwa nleba anya n'ihu ihu webụ mepere emepe nke edere na PHP, nke nwere ike ịchọpụta ma sava (IP, ngalaba) ma ọ bụ ọrụ gị agbagoro ma nwee ike iziga gị ọkwa site na ọrụ ozi ma ọ bụ SMS. ọ bụrụ na nsogbu mere na ọrụ nyocha ma ọ bụ ọdụ ụgbọ mmiri. Ọ na-enyocha weebụsaịtị site na iji koodu ọnọdụ HTTP, nwere ike igosipụta eserese akụkọ ihe mere eme nke oge na latency ma nwee ike iji ọkwa nyocha abụọ (onye nchịkwa na onye ọrụ oge niile).

Nkuzi a na-egosi gị otu ị ga-esi wụnye PHP Server Monitor na mpaghara sava Linux nke na-eji ma Apache dị ka sava ma ọ bụ Nginx sava weebụ, yabụ, ị nwere ike họrọ usoro nrụnye nke dabara gị mma.

Dị ka izugbe chọrọ iji wụnye na ịtọlite PHP Server Monitor maka nyiwe Linux ọ bụla ọzọ, ihe nkesa gị chọrọ ngwungwu ndị a arụnyere.

  1. PHP 5.3.7+
  2. Ngwugwu PHP: cURL, MySQL
  3. MySQL database
  4. Nginx ma ọ bụ Apache sava

Iji wụnye PHP Server Monitor na Nginx jiri nkuzi ndị a dị ka ntuziaka maka ịtọlite lemp stack na Virtual Hosts on Arch.

  1. Wụnye LEMP (Linux, Nginx, MySQL, PHP) na Arch Linux
  2. Mepụta Nginx Virtual Hosts na Arch Linux

Iji wụnye PHP Server Monitor na Apache jiri ntuziaka na-esonụ iji tọọ nchịkọta LAMP na Arch Linux.

  1. Wụnye LAMP (Linux, Apache, MySQL, PHP) na Arch Linux

Kwụpụ 1: Hazie Nginx/Apache Webserver

1. Tupu anyị amalite, ọ bụrụ na nhazi gị na-eji Virtual Bochum, ịkwesịrị ijide n'aka na ị nwere ntinye DNS ziri ezi na-atụ aka na ngalaba gị ma ọ bụ jiri faịlụ hosts mpaghara ma ọ bụrụ na ịnweghị sava DNS. Nkuzi a na-eji Virtual Bochum nwere ma sava webụ (Nginx na Apache) ahaziri ya na ngalaba adịgboroja mpaghara – phpsrvmon.lan – site na /etc/hosts faịlụ.

2. Iji tinye Nginx Virtual Host ọhụrụ, mepụta faịlụ nhazi ọhụrụ na /etc/nginx/sites-available/ na aha phpsrvmon.conf wee jiri template na-esonụ dị ka ihe atụ nhazi.

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

Tinye koodu a na faịlụ 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. Ọ bụrụ na ịchọrọ ịnweta PHP Sever Monitor site na protocol HTTP echekwara, mepụta faịlụ nhazi nke kwekọrọ na SSL ya.

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

Tinye koodu a na faịlụ 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. Mgbe idezi faịlụ Nginx conf, mepụta Document Root ụzọ, ma ọ bụrụ na ị gbanwee ya dị ka ebe a ka /srv/www/phpsrvmon/, rụọ ọrụ ma mebere hosts site na iji n2ensite utility. ma malitegharịa Nginx iji gosipụta mgbanwe.

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

Ọ bụrụ na ịchọrọ asambodo SSL ọhụrụ maka ndị ọbịa gị mebere, mepụta otu site na iji nginx_gen_ssl iwu na aha ngalaba gị wee gbanwee phpsrvmon-ssl.conf otu a.

5. Ọ bụrụ na ị na-eji Apache dị ka sava weebụ, mepụta faịlụ nhazi nhazi Ọbịa ọhụrụ na /etc/httpd/conf/sites-available/ na aha phpsrvmon.conf jiri nkọwa faịlụ ndị a dị ka ndebiri.

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

Tinye koodu a na faịlụ 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. Ọ bụrụ na ị, nwekwara, mkpa a ohere PHP Server Monitor na HTTPS protocol, mepụta ọhụrụ mebere ọbịa SSL faịlụ nhazi faịlụ na ndị na-esonụ kwuru.

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

Tinye koodu niile na faịlụ 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. Iji otu usoro dị ka maka Nginx, mepụta Document Root directory, ọ bụrụ na webụ faịlụ na-eje ozi ụzọ agbanweela, rụọ ọrụ Apache Virtual Hosts iji a2ensiteiwu na Malitegharịa ekwentị daemon itinye mgbanwe.

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

Iji wepụta ọhụrụ SSL Asambodo na igodo maka Virtual Host jiri apache_gen_ssl ike, tinye ngalaba aha gị na Asambodo aha wee gbanwee /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf faịlụ, jiri ndị ọhụrụ dochie Asambodo SSL ochie na ụzọ igodo na aha.

Kwụpụ 2: Dezie nhazi PHP

8. Iji zere ụfọdụ njehie echichi, na PHP Server Monitor ga-atụfu mgbe ọ verifies usoro chọrọ meghee php.ini faịlụ ma mee mgbanwe ndị a.

$ sudo nano /etc/php/php.ini

Ọ bụrụ na agbanweela ụzọ Nginx/Apache Document Root ( nke ndabara bụ /srv/http/) jiri [Ctrl+w] chọta open_basedir nkwupụta ma tinyekwa ụzọ ọhụrụ ahụ site na iji colon prefixing \ : \ - na nke a, ụzọ ọhụrụ bụ /srv/www/ - ka ọ dị ka ihe atụ. n'okpuru.

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

Chọọ ma mee PHP pdo, mysqli na curl extensions site na ịzaghachi ha (wepụ semicolon n'ihu ha).

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

Chọta mpaghara oge wee tọọ oge mpaghara gị ka ị na-eji ibe a.

date.timezone = Continent/City

9. Mgbe emechara mgbanwe niile malitegharịa ọrụ gị ka itinye mgbanwe.

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

Kwụpụ 3: Mepụta PHP Server Monitor MySQL Database

10. Iji mepụta nchekwa data achọrọ maka PHP Server Monitor iji chekwaa ozi, banye na MySQL/MariaDB nchekwa data wee mepụta nchekwa data ọhụrụ site na iji iwu ndị a (dochie nchekwa data, onye ọrụ na paswọọdụ na nzere masịrị gị).

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

Ọ bụrụ na ị nwere PhpMyAdmin arụnyere na sistemụ gị, ị nwere ike ịmepụta nchekwa data PHP Server Monitor site na ịnweta MySQL/MariaDB site na interface weebụ ya.

Kwụpụ 4: Wụnye Nyochaa nkesa PHP

11. Tupu ịga n'ihu na nbudata PHP Server Monitor tool, jide n'aka na ị tinyela iwu wget.

$ sudo pacman -S wget

12. Iji jide ụdị PHP Server Monitor kachasị ọhụrụ gaa na njikọ a wee budata faịlụ archive tar.gz ma ọ bụ jiri njikọ nbudata Git gọọmentị enyere n'okpuru.

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

N'aka nke ọzọ, ị nwekwara ike budata ozugbo site na iji iwu wget na-esonụ.

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

13. Mgbe nbudata nke ọhụrụ, wepụ ya na iwu tar wee detuo ihe niile amịpụtara na Web Server Document Root ụzọ site na iji iwu ndị a.

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

14. Mgbe ahụ, mepee ihe nchọgharị wee gaa na ngalaba aha gị (ọ bụrụ na ị na-eji ndị ọbịa mebere dị ka a gosipụtara na nkuzi a, ma ọ bụghị na-eji adreesị IP nke ihe nkesa gị) na ibe ekele pịa Ka anyị gaa bọtịnụ.

15. Na ihuenyo ọzọ tinye MySQL nchekwa data ozi wee kụọ na Chekwa nhazi.

16. Ọ bụrụ na ịnweta njehie na-ekwu na faịlụ nhazi gị enweghị ike ide, jiri iwu ndị a mepụta faịlụ confing.php edere wee kụọ Echekwa m nhazi >.

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

17. Mgbe ịchekwaa nhazi ahụ mepụta onye ọrụ nchịkwa maka PHP Server Monitor na-ahọrọ nzere gị wee pịa bọtịnụ Wụnye.

18. Mgbe echichi usoro zuru ezu kụrụ na Gaa gị nyochaabọtịnụ na ị ga-ibugharị ka Login page. Banye na nzere gị, a ga-akpali gị ka ị banye na ibe nleba anya PHP Server nke ndabara. Weghachite mgbanwe na PHP Server Monitor config.php faịlụ.

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

19. Iji tinye webụsaịtị ọhụrụ maka nleba anya gaa na Serva -> Tinye ọhụrụ, mejupụta mpaghara achọrọ na ntọala sava gị wee pịa bọtịnụ Chekwa .

20. Ka ịmalite usoro nlekota oru na sava na ọrụ niile kụrụ bọtịnụ Nwelite na a ga-atụgharị gị gaa na ibe mbụ ebe a ga-egosi gị na ebe nrụọrụ weebụ/ọrụ gị.

21. Ka PHP Server Monitor na-akpaghị aka na-elele ọnọdụ sava/ọrụ gị n'oge oge ọ bụla, ịkwesịrị ịwụnye onye nhazi ọrụ Cron na sistemụ gị wee tinye ntinye oge nlekota oru na faịlụ cron.

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

22. Iji tinye ntinye ọhụrụ na faịlụ cron nke na-enyocha ebe nrụọrụ weebụ gị kwa nkeji ise jiri sudo crontab -e iwu, ma ọ bụ, ka mma, jiri aka dezie faịlụ cron mgbọrọgwụ dị na /var/spool/ cron/ ndekọ site n'ịgbanwe ụzọ dabara na ndekọ nwụnye PHP Server Monitor gị. Iji depụta ndenye crontab niile jiri sudo crontab -l ahịrị iwu.

$ sudo nano /var/spool/cron/root

Tinye ntinye na-esonụ - gbanwee oge oge na ụzọ nrụnye ya

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

Mmechi

Ọ bụ ezie na PHP Server Monitor anaghị ebili na mgbagwoju anya dị ka ọrụ nlekota ndị ọzọ dị ka Nagios, Cacti ma ọ bụ Zabbix, ọ na-adịkarị mfe na akụrụngwa. oriri na ike imezu ọrụ dị ka nlekota oru n'elu ikpo okwu site configuring izipu ozi ịntanetị ma ọ bụ ederede SMS site a buru ibu SMS ọnụ ụzọ ámá ndepụta, bụrụ na gị ekwu na ebe nrụọrụ weebụ na ọrụ na-ezute teknuzu nsogbu ma ọ bụ na-ala.

Ibe mbụ: PHP Server Monitor