Записки Админа

Записки, Freebsd, cisco,Eltex

установка и настройка 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.

Т.к. никаких отличий нет, то об это можно прочитать тут>>>.

 

Комментирование закрыто.