cd /usr/ports/lang/php5 make install clean rehash
При установке вылезет окно, в нем выбираем FPM (да, этот модуль к счатью включен в базовую поставку и уже не надо качать патч как раньше).
Когда php установится ставим рассширения для него (врядли вам нужен голый php)
cd /usr/ports/lang/php5-extensions make install clean rehash
Выбираем нужные вам (если что потом можно легко доставить).
Отлично, у нас уставновлен php и рассширения к нему.
Пропишем php-fpm в автозагрузку
echo 'php_fpm_enable="YES"' >> /etc/rc.conf
Теперь самое время поставить веб-сервер nginx
cd /usr/ports/www/nginx make install clean rehash
Можно выбрать что-то из дополнительных модулей, но обычно это не надо, хотя в любом случаи можно потом будет пересобрать с ними за пять минут.
Когда nginx установился необходимо тоже прописать его в автозагрузку
echo 'nginx_enable="YES"' >> /etc/rc.conf
Теперь когда у нас есть установленные php и веб сервер можно заняться конфигурацией всего этого добра.
В файле /usr/local/etc/php-fpm.conf заставляем php-fpm работать через unix сокет, а не по tcp, это даст небольшой прирост производительности
;listen = 127.0.0.1:9000 listen = /tmp/php-fpm.sock
Больше в этом файле можно ничего не править
Далее идем в конфигурацию nginx (/usr/local/etc/nginx/nginx.conf)
#user nobody; #это число выставляется по количеству ядер вашего процессора worker_processes 1; #тут можно настроить логи #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; #для FreeBsd включайте это use kqueue; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; #обозначим, что php-fpm у нас работает через юникс сокет #лучше задавать именно так, потому что в будущем можно легко будет сменить этот параметр сразу для всех сайтов upstream fpm { server unix:/tmp/php-fpm.sock; } server { listen 80; server_name _; charset utf-8; root /home/www/site; location / { index index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } location ~ \.php$ { #здесь задается путь к обработчику php, который мы задали выше в upstream fastcgi_pass fpm; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #ну и на всякий случай, отдавая дань апаче, скроем его .htaccess location ~ /\.ht { deny all; } } }
Параметр server_name _ задан так, чтобы nginx обрабатывал любой домен.
Если у вас несколько доменов делайте несколько секций server{} и в server_name указывайте домены и алиасы через пробел.
Параметр root /home/www/site; это аналог DOCUMENT_ROOT, именно в этой директории будет находиться ваш сайт.
Теперь запускаем nginx и php-fpm
service nginx start service php-fpm start
В /home/www/site создаем index.php со стандартным и пробуем зайти через браузер.
Вопросы засылайте в коментах.