Установка и настройка NGINX + php-fpm в Freebsd

В данной статье описана самая базовая установка NGINX + php-fpm.

Устанавливать и настраивать NGINX будем в ОС FreeBSD 10.3

Приступаем к установке NGINX.

root@linux-in:/usr/ports/www/nginx # whereis nginx
nginx: /usr/ports/www/nginx
root@linux-in:~ # cd /usr/ports/www/ngin

Выполняем конфигурирование nginx в Freebsd 10.3:

root@linux-in:~ # make config

или

root@linux-in:~ # 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

Затем производим установку устанавливаем:

root@linux-in:~ # make install clean

Подготавливаем конфигурационный nginx.conf файл WEB-сервера nginx
Приводим его к такому виду:

root@linux-in:~ # 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.conf:

root@linux-in:~# 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

Запускаем  наш web-сервер:

root@linux-in:~# 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 можно установить во время конфигурирования РНР.

Пример установки  для старых версий PHP, возьмем  – 5.2.

Переходим в порты:

root@linux-in:~# cd /usr/ports/lang

Скачиваем архив php и разархивируем его:

root@linux-in:~# 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% |
 tar -zxf php-5.2.12-fpm-0.6.tar.gz

Теперь выполняем установку PHP 5.2:

root@linux-in:~# cd php5-fpm
make install clean

Продолжаем нашу настройку php 5.3.3.

Производим конфигирование:

root@linux-in:~# cd /usr/ports/lang/php5
root@linux-in:~# make config

Нам нужны следующие опции:
Изменяем файл конфигурации php-fpm:

root@linux-in:~# 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

Создадим файлы лога NGINX и проверим:

root@linux-in:~# touch /var/log/php-fpm-error.log
root@linux-in:~# touch /var/log/php-fpm-slow.log
root@linux-in:~# php-fpm -t
[23-Sep-2012 19:14:08] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful

Запускаем php-fpm на нашем сервере:

root@linux-in:~# /usr/local/etc/rc.d/php-fpm onestart
Starting php_fpm.
root@linux-in:~# service php-fpm onestatus
php_fpm is running as pid 52318.

Создаем файл info.php с содержимым:
php-fpm-nginx
После создания файл info.php, мы добавим его в каталог, как сказано в конфигурации NGINX
и проведем проверку нашего NGINX с php-fpm на FreeBSD 10.3:

root /usr/local/www/users

Заходим на страницу http://ваш_IP/info.php

Вносим параметры старта nginx, php-fpm в файл /etc/rc.conf:

nginx_enable=”YES”
php_fpm_enable=”YES”

Позже – выполним установку необходимых расширений PHP и  по желанию сервера SQL(MySQL или PostgreSQL)

Comments

comments

Comments

  1. Сергей плотницкий

    Даже не знаю что выбрать, Apache или nginx

Ваш e-mail не будет опубликован. Обязательные поля помечены *