Envato Elements - pobieraj co chcesz, ile chcesz

Opisałem już jak postawić serwer WWW (Apache2, MySQL, phpMyAdmin), jak zamienić PHP-MOD na PHP-FPM, oraz jak uruchomić serwer WWW oparty o Nginx (z PHP-FPM).

Opisałem też jak uruchomić stronę z wbudowanymi statystykami dla serwera Apache2, oraz Nginx. I tak dziś mnie naszło, że chyba zapomniałem o jeszcze jednej stronie tego typu – stronie ze statystykami serwera PHP-FPM, co zamierzam właśnie nadrobić…

PHP: Parametry pracy usługi

W tym poradniku postaram się w prosty i przystępny sposób (czyli jak zwykle ;-)) opisać, jak uruchomić standardową (wbudowaną) w PHP-FPM stronę ze statusem pracy usługi dla webserwerów Apache2 i Nginx.

Konfiguracja PHP-FPM

Zacznę od tego, co jest wspólne dla tych 2 webserwerów, czyli aktywacja odpowiedniej opcji w ustawieniach PHP-FPM:

sudo nano /etc/php5/fpm/pool.d/www.conf

W tym pliku szukamy:

;pm.status_path = /status

Następnie usuwamy znak średnika, tak by odkomentować:

pm.status_path = /status

Możecie od razu zmienić adres URL z „status”, na jakiś inny, tak by nie kolidowało z innymi stronami statusów (np. Apache2 czy Nginx). Na potrzeby tego poradnika niech to będzie:

pm.status_path = /status-php

Zapisujemy, i restartujemy usługę:

sudo service php5-fpm restart

Połowa pracy przed nami, teraz musimy jeszcze skonfigurować nasz webserwer:

Konfiguracja Apache2

Jeśli korzystamy z Apache2, to przystępujemy do edycji pliku strefy naszego serwera (plik w którym definiujemy parametry strony/domeny), np.:

sudo nano /etc/apache2/sites-available/000-default.conf

I między:

<VirtualHost *:80>

i

</VirtualHost>

dodajemy:

<LocationMatch /status-php>
SetHandler php5-fcgi-virt
Action php5-fcgi-virt /php5-fcgi virtual
Deny from all
Allow from 127.0.0.1
Allow from [KOLEJNY UPRAWNIONY ADRES IP]
</LocationMatch>

Zapisujemy, i restartujemy Apache2:

sudo service apache2 restart

Lub tylko odświeżamy konfigurację:

sudo service apache2 reload

Strona ze statusem usługi powinna w tym momencie działać pod adresem:

http://[domena lub adres IP]/status-php

Jeśli otrzymujecie błąd 403 (odmowa dostępu), sprawdźcie, czy na liście dozwolonych adresów znajduje się Wasz adres IP, gdyż ze względów bezpieczeństwa blokujemy dostęp do statystyk z nieautoryzowanych adresów IP (nie jest to jakieś specjalnie duże zagrożenie, ale dobrą praktyką jest przekazywanie na zewnątrz do publicznego odczytu jak najmniej informacji, bo nigdy nie wiadomo jaka przyda się atakującemu).

Konfiguracja Nginx

Jeśli korzystamy z Nginx, to i tym razem przystępujemy edycji pliku strefy naszego serwera (plik w którym definiujemy parametry strony/domeny), np.:

/etc/nginx/sites-enabled/default
Ze względu na zmianę w konfiguracji FastCGI/PHP w nowych wersjach webserwera Nginx dokonałem aktualizacji tego wpisu – komentując wpis dla Nginx 1.2.1 (np. Debian 7 Wheezy), i dodając wpis dla Nginx 1.6.1+ (Debian 8 Jessie).

Pamiętaj by wybrać wpis odpowiedni dla swojej konfiguracji – więcej na ten temat w tym wpisie…

I między:

server {

i

}

dodajemy:

location /php-status {
access_log off;
allow 127.0.0.1;
allow [KOLEJNY UPRAWNIONY ADRES IP]
deny all;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
# Nginx 1.2.1:
#include fastcgi_params;
# Nginx 1.6.1+:
include fastcgi.conf;
# Więcej informacji w tabelce w tym wpisie
}

Zapisujemy, i restartujemy Nginx:

sudo service nginx restart

Lub tylko odświeżamy konfigurację:

sudo service nginx reload

Strona ze statusem usługi powinna w tym momencie działać pod adresem:

http://[domena lub adres IP]/ping-php

Przykładowa strona z parametrami pracy usługi:

pool: www
process manager: xxx
start time: 06/Nov/2015:08:07:46 +0100
start since: xxx
accepted conn: yyy
listen queue: x
max listen queue: x
listen queue len: x
idle processes: x
active processes: x
total processes: x
max active processes: x
max children reached: x
slow requests: x

Jeśli otrzymujecie błąd 403 (odmowa dostępu), sprawdźcie, czy na liście dozwolonych adresów znajduje się Wasz adres IP, gdyż ze względów bezpieczeństwa blokujemy dostęp do statystyk z nieautoryzowanych adresów IP (nie jest to jakieś specjalnie duże zagrożenie, ale dobrą praktyką jest przekazywanie na zewnątrz do publicznego odczytu jak najmniej informacji, bo nigdy nie wiadomo jaka przyda się atakującemu).

PHP-FPM: Status pracy usługi (ping-pong)

A skoro przy stronie z parametrami pracy usługi PHP-FPM jesteśmy, to warto przedstawić jeszcze jedną funkcję z tym związaną, dzięki której wprawdzie nie otrzymamy żadnych szczegółowych informacji, ale za każdym razem, gdy wywołamy stronę otrzymamy ten sam tekst (pong), który świadczy o tym, że nasz webserwer (w tym PHP) działa – idealne do zdalnego i automatycznego monitorowania pracy serwera.

Z racji tego, że konfiguracja jest bardzo (naprawdę bardzo) podobna, możecie mieć miejscami wrażenie, że już to czytaliście ;-)

Konfiguracja PHP-FPM

Ponownie zacznę od tego, co jest wspólne dla tych 2 webserwerów, czyli aktywacja odpowiedniej opcji w ustawieniach PHP-FPM:

sudo nano /etc/php5/fpm/pool.d/www.conf

W tym pliku szukamy:

;ping_path = /ping

Następnie usuwamy znak średnika, tak by odkomentować:

ping_path = /ping

Możecie od razu zmienić adres URL z „status”, na jakiś inny, tak by nie kolidowało z innymi stronami statusów (np. Apache2 czy Nginx). Na potrzeby tego poradnika niech to będzie:

ping_path = /ping-php

Jeśli chcecie zmienić również odpowiedź (wyświetlany tekst) wystarczy zmodyfikować parametr:

;ping.response = pong

na:

ping.response = webinsider

Zapisujemy, i restartujemy usługę:

sudo service php5-fpm restart

Połowa pracy przed nami, teraz musimy jeszcze skonfigurować nasz webserwer:

Konfiguracja Apache2

Jeśli korzystamy z Apache2, to przystępujemy do edycji pliku strefy naszego serwera (plik w którym definiujemy parametry strony/domeny), np.:

sudo nano /etc/apache2/sites-available/000-default.conf

I między:

<VirtualHost *:80>

i

</VirtualHost>

dodajemy:

<LocationMatch /ping-php>
SetHandler php5-fcgi-virt
Action php5-fcgi-virt /php5-fcgi virtual
Allow from all
#Deny from all
#Allow from 127.0.0.1
#Allow from [KOLEJNY UPRAWNIONY ADRES IP]
</LocationMatch>

Zapisujemy, i restartujemy Apache2:

sudo service apache2 restart

Lub tylko odświeżamy konfigurację:

sudo service apache2 reload

Strona ze statusem usługi powinna w tym momencie działać pod adresem:

http://[domena lub adres IP]/ping-php

W przeglądarce – jeśli wszystko działa poprawnie – zobaczycie tekst:

pong

Z racji tego, że w tym przypadku właściwie nie przesyłamy żadnych informacji poza tym, że strona działa – ustawiłem stronę jako dostępną dla każdego, z dowolnego adresu IP, dzięki czemu możecie wykorzystać ją do sprawdzania/monitorowania pracy Waszego serwera (oczywiście w każdej chwili możecie to zmienić, jako komentarze zostawiłem odpowiednie opcje).

Konfiguracja Nginx

Jeśli korzystamy z Nginx, to również tym razem przystępujemy edycji pliku strefy naszego serwera (plik w którym definiujemy parametry strony/domeny), np.:

/etc/nginx/sites-enabled/default

I między:

server {

i

}

dodajemy:

location /ping-php {
access_log off;
allow all;
#allow 127.0.0.1;
#allow [KOLEJNY UPRAWNIONY ADRES IP]
#deny all;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
# Nginx 1.2.1:
#include fastcgi_params;
# Nginx 1.6.1+:
include fastcgi.conf;
# Więcej informacji w tabelce w tym wpisie
}

Zapisujemy, i restartujemy Nginx:

sudo service nginx restart

Lub tylko odświeżamy konfigurację:

sudo service nginx reload

Strona ze statusem usługi powinna w tym momencie działać pod adresem:

http://[domena lub adres IP]/ping-php

W przeglądarce – jeśli wszystko działa poprawnie – zobaczycie tekst:

pong

Z racji tego, że w tym przypadku właściwie nie przesyłamy żadnych informacji poza tym, że strona działa – ustawiłem stronę jako dostępną dla każdego, z dowolnego adresu IP, dzięki czemu możecie wykorzystać ją do sprawdzania/monitorowania pracy Waszego serwera (oczywiście w każdej chwili możecie to zmienić, jako komentarze zostawiłem odpowiednie opcje).

PS. Można skonfigurować obie strony za pomocą wspólnego wpisu, ale ze względu na rożne uprawnienia dostępu dla rożnych informacji zazwyczaj korzystam z nich tak jak w tym poradniku, czyli rozdzielnie.

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!
Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Janusz i Janusz zapisali się do Newslettera WebInsider.pl i... sobie chwalą
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Roztańczona Karolina zapisała się do Newslettera WebInsider.pl i... teraz może tańczyć