В данной статье описана самая базовая установка NGINX + php-fpm.
Установка производится на FreeBSD 9.0.
Приступаем к установке NGINX.
# cd /usr/ports/www/nginx
Выполняем конфигурирование:
# make config
# make showconfig | grep on
===> The following configuration options are available for nginx-1.2.3_1,1:
HTTP=on: Enable HTTP module
HTTP_ADDITION=on: Enable http_addition module
HTTP_CACHE=on: Enable http_cache module
HTTP_DAV=on: Enable http_webdav module
HTTP_FLV=on: Enable http_flv module
HTTP_PERL=on: Enable http_perl module
HTTP_REALIP=on: Enable http_realip module
HTTP_REWRITE=on: Enable http_rewrite module
HTTP_SSL=on: Enable http_ssl module
HTTP_STATUS=on: Enable http_stub_status module
HTTP_SUB=on: Enable http_sub module
WWW=on: Enable html sample files
HTTP_RESPONSE=off: 3rd party http_response module
ENCRYPTSESSION=off: 3rd party encrypted_session module
ICONV=off: 3rd party iconv module
RDS_JSON=off: 3rd party rds_json module
====> Options available for the single VIDEO: you have to select exactly one of them
===> Use ‘make config’ to modify these settings
И устанавливаем:
# make install clean
Редактируем файл конфигурации, приводим его к такому виду:
# cat /usr/local/etc/nginx/nginx.conf | grep -v ^#user www;
worker_processes 1;
pid /var/run/nginx.pid;
error_log /var/log/nginx-error.log warn;
events {
worker_connections 1024;
use kqueue;
}
http {
include mime.types;
default_type application/octet-stream;
# log options
log_format main ‘$remote_addr — $remote_user [$time_local] ‘
‘»$request» $status $bytes_sent ‘
‘»$http_referer» «$http_user_agent» ‘
‘»$gzip_ratio»‘;
# nginx options
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
server_tokens off;
# fastcgi
fastcgi_intercept_errors on;
# virtual server
server {
listen 80;
server_name www.example.com.ua example.com.ua;
access_log /var/log/nginx.example.com.ua.log main;
# server root directory
location / {
root /usr/local/www/example.com.ua;
index index.php index.html index.htm;
}
# php
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/example.com.ua$fastcgi_script_name;
include fastcgi_params;
}
}
}
Проверяем:
# nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Запускаем:
# service nginx onestart
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.
Если сам РНР уже установлен, его надо будет пересобрать. В версии PHP 5.3.3 и выше, модуль php-fpm можно установить во врем конфигурирования РНР.
Для более ранних версий — его надо скачать с оф. сайта проекта тут>>>.
Описание установки для старых версий, к примеру — 5.2.
Переходим в порты:
# cd /usr/ports/lang
Скачиваем архив:
# fetch http://rit-kpi.org/php-fpm/php-5.2.12-fpm-0.6.tar.gz
php-5.2.12-fpm-0.6.tar.gz 100% of 10 kB 3133 kBps
Разирхивируем его:
# tar -zxf php-5.2.12-fpm-0.6.tar.gz
И выполняем установку:
# cd php5-fpm
make install clean
Вернемся к нашей установке.
Выполняем конфигирование:
# cd /usr/ports/lang/php5
# make config
Выбираем такие опции:
Редактируем файл конфигурации php-fpm:
# cat /usr/local/etc/php-fpm.conf | grep -v ^; | less
[global]
pid = run/php-fpm.pid
error_log = /var/log/php-fpm-error.log
[www]
user = www
group = www
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm-slow.log
Создадим файлы лога:
# touch /var/log/php-fpm-error.log
# touch /var/log/php-fpm-slow.log
Проверяем:
# php-fpm -t
[23-Sep-2012 19:14:08] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful
Запускаем:
# /usr/local/etc/rc.d/php-fpm onestart
Starting php_fpm.
Проверяем:
# service php-fpm onestatus
php_fpm is running as pid 61317.
Создаем файл info.php с содержимым:
<?php
echo phpinfo();
?>
И сохраняем его в каталог, указанный в конфигурации NGINX:
root /usr/local/www/users
И проверяем, заходя на страницу http://YOUR_IP/info.php
Если все работает — добавляем в файл /etc/rc.conf две строки:
nginx_enable=»YES»
php_fpm_enable=»YES»
Далее — выполняем установку расширений PHP и сервера MySQL.
Т.к. никаких отличий нет, то об это можно прочитать тут>>>.
Ссылки по теме:
http://jhukov.blogspot.com
http://blog.magwai.ru
http://wiki.firstvds.ru
http://habrahabr.ru
http://nginx.org
http://php-fpm.org
http://habrahabr.ru