Nginx+php+fpm+perl на Debian — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 39: | Строка 39: | ||
Создаем каталог для сайтов и логов, также устанавливаем права | Создаем каталог для сайтов и логов, также устанавливаем права | ||
− | mkdir /var/www | + | mkdir /var/www |
− | mkdir /var/log/nginx/ | + | mkdir /var/log/nginx/ |
− | chown -R www-data:www-data /var/www | + | chown -R www-data:www-data /var/www |
− | chmod -R 750 /var/www | + | chmod -R 750 /var/www |
− | #Дирректория для кеша | + | #Дирректория для кеша |
− | mkdir /tmp/fcgi-cache/ | + | mkdir /tmp/fcgi-cache/ |
− | chown www-data:www-data -R /tmp/fcgi-cache/ | + | chown www-data:www-data -R /tmp/fcgi-cache/ |
− | |||
− | + | '''Настройка Nginx''' | |
− | |||
− | |||
− | |||
− | |||
− | + | Конфигурация Nginx состоит из нескольких файлов, сам nginx начинает читать единственный файл: <code bash>/etc/nginx/nginx.conf</code>, все остальные подключаются директивой include. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | #Пользователь с правами которого работает nginx | ||
+ | user www-data; | ||
+ | #Рекомендуется устанавливать по числу ядер | ||
+ | worker_processes 1; | ||
+ | |||
+ | pid /var/run/nginx.pid; | ||
+ | |||
+ | #Максимальное число подключений к серверу на один worker-процесс | ||
+ | events { | ||
+ | worker_connections 1024; | ||
+ | } | ||
+ | |||
+ | http { | ||
+ | include /etc/nginx/mime.types; | ||
+ | default_type application/octet-stream; | ||
+ | |||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | ||
'$status $body_bytes_sent "$http_referer" ' | '$status $body_bytes_sent "$http_referer" ' | ||
'"$http_user_agent" "$http_x_forwarded_for"'; | '"$http_user_agent" "$http_x_forwarded_for"'; | ||
− | #Логи | + | #Логи |
access_log /var/log/nginx/access.log main; | access_log /var/log/nginx/access.log main; | ||
error_log /var/log/nginx/error.log warn; | error_log /var/log/nginx/error.log warn; | ||
Строка 83: | Строка 84: | ||
include /etc/nginx/conf.d/*.conf; | include /etc/nginx/conf.d/*.conf; | ||
− | } | + | } |
− | + | ||
− | server { | + | Переходим к /etc/nginx/conf.d/default.conf; |
+ | server { | ||
listen 80; | listen 80; | ||
server_name localhost; | server_name localhost; | ||
Строка 122: | Строка 124: | ||
#} | #} | ||
− | } | + | } |
+ | |||
+ | |||
+ | Стандартным способом проверяем работоспособность php | ||
+ | <?php | ||
+ | phpinfo(); | ||
+ | ?> | ||
+ | |||
− | + | Отключаем уязвимость: http://forum.antichat.ru/thread222063-php-fpm.html<br/> | |
− | + | прописываем в /etc/php5/fpm/php.ini | |
− | + | cgi.fix_pathinfo=0 | |
− | |||
− | |||
− | |||
− | |||
− | + | Если все работает, то на этом этапе мы имеем рабочий web-сервер с поддержкой php. | |
− | + | Далее плюшки |
Версия 16:52, 4 декабря 2013
Установка
Добавляем необходимые в дальнейшем репозитории в /etc/apt/sources.list:
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free deb http://www.deb-multimedia.org stable main non-free deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all deb http://nginx.org/packages/debian/ squeeze nginx deb-src http://nginx.org/packages/debian/ squeeze nginx
Устанавливаем ключи
apt-get update apt-get install deb-multimedia-keyring wget http://www.dotdeb.org/dotdeb.gpg -O- |apt-key add - gpg --keyserver hkp://keys.gnupg.net --recv-keys ABF5BD827BD9BF62 gpg -a --export 7BD9BF62 | apt-key add -
Обновляемся
apt-get update
Перезагружаемся
reboot
Ставим необходимые пакеты
apt-get install nginx php5-cli php5-common sqlite php5-sqlite php5-suhosin php5-cgi php5-fpm mysql-server php5-mysql php5-gd php5-apc memcached php5-memcached
- nginx — web-сервер
- php5-cli php5-common php5-sqlite php5-suhosin php5-cgi php5-fpm php5-gd — модули php
- mysql-server php5-mysql — база данных mysql и модуль связи ее с php
- fcgiwrap — обработка perl скриптов
- php5-apc memcached php5-memcached — ускорители работы веб сервера
- siege — утилита для тестирования скорости работы сайта, понадобится при подборе количества обработчиков
Создаем каталог для сайтов и логов, также устанавливаем права
mkdir /var/www mkdir /var/log/nginx/ chown -R www-data:www-data /var/www chmod -R 750 /var/www #Дирректория для кеша mkdir /tmp/fcgi-cache/ chown www-data:www-data -R /tmp/fcgi-cache/
Настройка Nginx
Конфигурация Nginx состоит из нескольких файлов, сам nginx начинает читать единственный файл: /etc/nginx/nginx.conf
, все остальные подключаются директивой include.
#Пользователь с правами которого работает nginx user www-data; #Рекомендуется устанавливать по числу ядер worker_processes 1; pid /var/run/nginx.pid; #Максимальное число подключений к серверу на один worker-процесс events { worker_connections 1024; } http { include /etc/nginx/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 /var/log/nginx/access.log main; error_log /var/log/nginx/error.log warn;
sendfile on; keepalive_timeout 65;
gzip on;
include /etc/nginx/conf.d/*.conf;
}
Переходим к /etc/nginx/conf.d/default.conf;
server { listen 80; server_name localhost;
#charset koi8-r; #access_log /var/log/nginx/log/host.access.log main;
location / { root /srv/www; index index.php index.html index.htm; }
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/www; }
location ~ \.php$ { root /srv/www; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
# deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #}
}
Стандартным способом проверяем работоспособность php
<?php phpinfo(); ?>
Отключаем уязвимость: http://forum.antichat.ru/thread222063-php-fpm.html
прописываем в /etc/php5/fpm/php.ini
cgi.fix_pathinfo=0
Если все работает, то на этом этапе мы имеем рабочий web-сервер с поддержкой php.
Далее плюшки