В данной статье описана самая базовая установка 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 с содержимым:
После создания файл 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)
Даже не знаю что выбрать, Apache или nginx