Instalacja na Debianie (testing)/Ubuntu
sudo apt-get install nginx php5 php5-gd php5-sqlite php5-fpm
Instalacja na Bridge Linux/Archlinux
sudo pacman -S nginx php php-gd php-sqlite php-fpm
W
/etc/php5/fpm/php.ini ustawiamy opcje dla php, np. włączamy wyświetlanie błędów itp. W Bridge Linux edytujemy plik
/etc/php/php.ini i wyłączamy jedną opcję, aby otrzymać:
#open_basedir = /srv/http/...
W
/etc/php5/fpm/pool.d/www.conf:
listen = /var/run/php5-fpm.sock
- w Ubuntu 12.04 jest domyślnie
listen = 127.0.0.1:9000, czyli ustawienie dla php5-cgi, a nie php5-fpm, dlatego trzeba zmienić. W Ubuntu 13.04 nic nie trzeba zmieniać. W Bridge'u/Archu cała konfiguracja zawarta jest w
/etc/php/php-fpm.conf i nic nie trzeba zmieniać, ale ścieżka gniazda ma inną postać:
listen = /run/php-fpm/php-fpm.sock.
W
/etc/nginx/sites-available tworzymy plik (wpis) definiujący nasz serwer i zapisujemy go (w Debianie, Ubuntu) pod dowolną nazwą, np.
local.org. W Bridge'u/Archu edytujemy plik
/etc/nginx/nginx.conf. Przykładowa zawartość:
server {
listen 80;
server_name localhost;
charset utf-8;
access_log off;
root /home/lolek/public_html;
index index.php;
location / {
try_files $uri $uri/ /index.php;
#lub: try_files $uri $uri/ /index.php?id=$uri&$args
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht { deny all; }
location ~ /\. { deny all; }
}
- przy czym najważniejszy jest parametr root, który zawiera ścieżkę do katalogu z plikami serwisu, oraz sekcja
location ~.\.php$ definiująca sposób przetwarzania wywołań php.
W przypadku Bridge'a/Archa pamiętamy o wprowadzeniu poprawnej ścieżki do gniazda (!), czyli
unix:/run/php-fpm/php-fpm.sock. Zmieniamy też
fastcgi_params na
fastcgi.conf.
Usuwamy dowiązanie
/etc/nginx/sites-enabled/default i tworzymy nowe:
ln -s /etc/nginx/sites-available/lolcal.org /etc/nginx/sites-enabled/default
Na koniec restartujemy usługi:
invoke-rc.d php5-fpm restart; invoke-rc.d nginx restart - w Debianie
service php5-fpm restart; service nginx restart - w Ubuntu
rc.d restart php-fpm; rc.d restart nginx - w Bridge Linux
Uwaga: powyższa konfiguracja jest bardzo podstawowa i służyć ma do lokalnych testów, nie uwzględnia więc zagadnień bezpieczeństwa, zwłaszcza związanych z możliwością wykonywania skryptów php.
Ponieważ sporo sieciowych tutoriali zawiera błędy i/lub uproszczenia, poprawnych (czyt. bezpiecznych) konfiguracji trzeba szukać u źródła, czyli na stronie
wiki projektu Nginx.