-
PHP dla Nginx w 5 minut
W tym krótkim tutorialu, chciałbym przybliżyć wszystkim prostą metodę na „uzbrojenie” naszego Nginx-a w obsługę skryptów PHP. Omawiany serwer www nie posiada modułu do obsługi PHP, tak jak to jest w przypadku Apacha. Musimy posiłkować się CGI, a najlepiej fastCGI. Przystępujemy do instalacji. Sprawdźmy, czy mamy włączone repozytorium EPEL, gdzie znajdziemy wszystkie niezbędne pakiety (zakładam, że PHP jest już zainstalowane w systemie). Do dzieła:
yum install spawn-fcgi
Tworzymy skrypt do uruchamiania. ….Tak wiem istnieje w systemie już skrypt startowy dostarczony wraz z pakietem, ale ja wolę skorzystać z własnego „startera”. Oczywiście można użyć polecenia „service spawn-fcgi start”. Uprzednio jednak należy skonfigurować powyższą usługę w pliku „/etc/sysconfig/spawn-fcgi”. Poniżej prezentuję własny skrypt uruchomieniowy:
#!/bin/bash
PHP_SCRIPT=”/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -f /usr/bin/php-cgi”
RETVAL=0
case „$1” in
start)
$PHP_SCRIPT
RETVAL=$?
;;
stop)
killall -9 php
RETVAL=$?
;;
restart)
killall -9 php
$PHP_SCRIPT
RETVAL=$?
;;
*)
echo „Działające komendy: php {start|stop|restart}”
exit 1
;;
esac
exit $RETVAL
Nadajemy prawa wykonywalności
chmod +x nazwa_skryptu
Startujemy
./nazwa_skryptu start
Teraz czas na skonfigurowanie vhosta do obsługi php. Edytujemy plik „/etc/nginx/conf.d/virtual.conf”. Poniżej prezentuję przykładowy config dla strony http://6.centos.pl:
server {
listen 80;
server_name 6.centos.pl;
location / {
root /www/6.centos.pl/html/;
autoindex on;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /www/6.centos.pl/html$fastcgi_script_name;
}
}
Zapisujemy i restartujemy nginx-a.
service nginx start
Mam nadzieję, że choć trochę udało mi się przybliżyć szybki sposób na uruchomienie obsługi php dla nginx-a. W razie pytań / problemów zapraszam na nasze forum. Powodzenia 🙂
Dzięki za artykuł dodać, że nginx dużo szybszy od apache… niestety… jednak jak się ma obsługa https?
Obsługuje bez problemu. Nginx nie jest dużo szybszy od Apache. Są porównywalne, wszystko zależy od konkretnego zastosowania.
Porównywalne? Nie bardzo – przy tych samych obciążeniach apache zużywa o wiele więcej zasobów serwera.