Nginx+php+fpm+perl на Debian

Материал из megapuper
Перейти к: навигация, поиск

Установка


Добавляем необходимые в дальнейшем репозитории в /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

  1. Дирректория для кеша

mkdir /tmp/fcgi-cache/ chown www-data:www-data -R /tmp/fcgi-cache/

2. Настройка Nginx

Конфигурация Nginx состоит из нескольких файлов, сам nginx начинает читать единственный файл: /etc/nginx/nginx.conf, все остальные подключаются директивой include. 
  1. Пользователь с правами которого работает nginx

user www-data;

  1. Рекомендуется устанавливать по числу ядер

worker_processes 1;

pid /var/run/nginx.pid;

  1. Максимальное число подключений к серверу на один 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"';
  1. Логи
   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. 
Дальее плюшки