Подключаем репозитории Nginx и php-fpm
Переходим в режим суперпользователя (root):
Код: Выделить всё
su
Код: Выделить всё
nano /etc/apt/sources.list
Код: Выделить всё
deb http://packages.dotdeb.org squeeze all
deb http://ftp.debian.org.ua/debian-dou/ squeeze main
Код: Выделить всё
wget -q http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
wget -q http://ftp.debian.org.ua/debian-dou/archive.key -O- | apt-key add -
Ответ: В dotdeb.org лежит пакет PHP-FPM, там еще есть пакет Nginx, но его работа мне не понравилась(глючит).
ftp.debian.org.ua лежит нормально собранный Nginx.
Обновляем список пакетов и всю систему:
Код: Выделить всё
aptitude update && aptitude upgrade
Устанавливаем PHP-FPM
Код: Выделить всё
aptitude install php5-cli php5-common php5-mysql php5-suhosin php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt -y
Переходим по тестовому адресу httр://example.org/test.php
Получаем то что написано на экране, нас интересует строка Server API ( на скриншоте обведено красным) там указывается, кто у нас обрабатывает скрипты PHP.
В данный момент существует уязвимость, что любой пользователь может загрузить на сервер файл и выполнить его с правами под которыми работает PHP, чтобы это исправить, необходимо отредактировать php.ini
Код: Выделить всё
nano /etc/php5/fpm/php.ini
Код: Выделить всё
;cgi.fix_pathinfo = 1
Код: Выделить всё
cgi.fix_pathinfo = 0
Остальные настройки работы PHP-FPM находятся по пути /etc/php5/fpm/pool.d/www.comf которые необходимо изменить в соответствии с наличием системных ресурсов. Описать все варианты довольно сложно и зачастую, необходимо подбирать эксперементальным путем. (хотя рекомендаций в сети хватает, даже на сайтах хостеров)
Устанавливаем Nginx:
Код: Выделить всё
aptitude install nginx -y
Создадим первый виртуальны хост, назовем его example.org
Код: Выделить всё
nano /etc/nginx/sites-available/example.org
Код: Выделить всё
server {
listen 80;
root /home/example/www;
access_log /home/example/logs/nginx.access.log; #расположение логов данного хоста
server_name example.org www.example.org;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Создадим символическую ссылку:
Код: Выделить всё
ln -s /etc/nginx/sites-available/example.org /etc/nginx/sites-enabled/
Код: Выделить всё
useradd example -b /home/ -m -U
Код: Выделить всё
passwd example
Код: Выделить всё
mkdir -p -m 755 /home/example/www
mkdir -p -m 754 /home/example/logs
Код: Выделить всё
chown -R example: /home/example/www/
chown -R example: /home/example/logs/
Код: Выделить всё
usermod -a -G example www-data
Код: Выделить всё
nano /home/example/www/test.php
Код: Выделить всё
<?php
phpinfo();
?>
Код: Выделить всё
/etc/init.d/nginx restart
Установим необходимые пакеты:
Код: Выделить всё
aptitude install mysql-server mysql-client mysql-common libmysqlclient18
На этом основную часть можно завершить. Если дойти до этого места, то сервер уже будет работоспособен!
Но ему можно добавить, немного дополнительных функций.
Установка Xcache
Код: Выделить всё
aptitude install php5-xcache -y
Код: Выделить всё
/etc/init.d/php-fpm restart
Находим пункт: Установка Memcached
Код: Выделить всё
aptitude install memcached php5-memcached
Код: Выделить всё
/etc/init.d/php-fpm restart
находим пункт memcached, как на скриншоте ниже: Управление приложениями:
Код: Выделить всё
/etc/init.d/nginx stop | start| restart
/etc/init.d/php-fpm stop | start| restart
/etc/init.d/mysql stop | start| restart
/etc/init.d/memcached stop | start| restart