Za pomocą formularza kontaktowego dostałem pytanie dotyczące 2 niedawno opublikowanych wpisów, i mimo, że wolałbym, by było zadane w formie komentarza pod jednym z wpisów, to wydaje się na tyle ciekawe, że postanowiłem zrobić wyjątek i odpowiem na przesłane pytanie, choć w formie ogólnodostępnego wpisu – bo podejrzewam, że ta informacja może przydać się nie tylko pytającemu…
Spis treści w artykule [rozwiń]
Nginx Snippets i różne PHP Pools dla stron
W przypadku, gdy na swoim serwerze macie więcej stron (i korzystacie z webserwera Nginx) zapewne wiecie, że wspólne pliki konfiguracyjne (Nginx Snippets) znacznie potrafią uprościć wprowadzanie hurtowych/globalnych zmian w konfiguracji.
Gdy macie wiele stron, to oprócz wygody zapewne ważne dla Was jest bezpieczeństwo, a więc bardzo prawdopodobne, że korzystacie z różnych gniazd PHP (PHP Pools w PHP-FPM w Apache2/Nginx) dla poszczególnych stron.
Połączyć ogień z wodą
I tu może pojawić się problem – bo Nginx Snippets dzięki wspólnym plikom konfiguracyjnym pozwala znacznie uprościć konfigurację, ułatwić wprowadzanie zmian, ale z kolei PHP Pools wymaga indywidualnej konfiguracji usługi PHP dla każdej strony/domeny, gdyż musimy podać tam dedykowaną dla danej strony nazwę gniazda PHP.
Bo konfiguracja ZMIENNA jest
Rozwiązaniem są zmienne, które możemy zdefiniować w konfiguracji danego vHosta w webserwerze Nginx, a tym samym możemy wykorzystać taką zmienną do zdefiniowania gniazda PHP, przy wykorzystaniu wspólnej konfiguracji dla wszystkich stron korzystających z indywidualnych gniazd PHP Pools.
Zaczynamy od zdefiniowania zmiennej w konfiguracji wybranego vHosta – na potrzeby tego poradnika zmienna to „$pool_name”, a jej wartość to „webinsider”, czyli element wyróżniający wybrane gniazdo PHP (/var/run/php5-fpm-webinsider.sock):
set $pool_name webinsider;
Następnie wczytujemy plik wspólnej konfiguracji:
include snippets/php-pools.conf;
A sam plik „php-pools.conf”, w którym znajdzie się konfiguracja dla PHP-FPM może wyglądać np. tak:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm-$pool_name.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
Dzięki temu plik „php-pools.conf” możecie ustawić jako wspólny dla wielu różnych stron korzystających z indywidualnych gniazd PHP, a dzięki modyfikacji wartości zmiennej „$pool_name” sprawicie, że dla danej strony będzie wykorzystywane wybrane gniazdo PHP (PHP Pools).
Oczywiście to tylko przykład wykorzystania zmiennych, a możliwości jest dużo więcej…


- Wtyczka BackWPup w wersji 5.x to doskonały przykład, jak wylać dziecko z kąpielą i z relatywnie świetnego narzędzia zrobić właściwie bezwartościowego gniota - 1970-01-01
- Testowy przelew w Bitcoinach z najniższą prowizją, czyli krótka historia o tym, jak zamroziłem BTC na (ponad) rok - 1970-01-01
- Nowy system kopii zapasowych w Home Assistant 2025.1 to zapewne krok w dobrym kierunku, ale zdecydowanie przedwczesny - 1970-01-01