Установка сервера ubuntu Nginx и PHP-FPM

21.12.2013
Собрал небольшую последовательность установки nginx на ubuntu, может кому тоже пригодится

Установка сервера

Обновление суппозиториев

sudo apt-get update && sudo apt-get upgrade
Сперва ставлю сервер nginx

sudo apt-get install nginx
После ставлю все пакеты PHP FPM

sudo apt-get install php5-cli php5-common php5-mysql php5-suhosin php5-gd php5-fpm php5-cgi php5-fpm php-pear php5-mcrypt

О безопасности сервера

Основные требования безопасности сервера:
  1. Надо запретить выполнение PHP-кода из открытых для записи директорий. Например, директории для загрузки картинок, файлов и фтп папки с возможностью записи.
  2. Периодически читайте логи сервера, там часто можно встретить попытки взлома, это позволит своевременно исправить ошибки или написать скрипты для запрета доступа для этих ботов.
  3. Своевременно обновляйте ПО сервера, CMS сайтов, только не сразу после выхода новых версий, а после выхода стабильных и проверенных версий.
  4. Обязательно делайте бекапы базы данных и архивы файлов, особенно архивы конфигов

Настройка сервера

Сперва останавливаем процессы Nginx и PHP-FPM:

sudo service nginx stop
sudo service php5-fpm stop

Настройка php-fpm

Редактируем файл /etc/php5/fpm/php.ini

sudo gedit /etc/php5/fpm/php.ini


Находим строчку ;cgi.fix_pathinfo = 1 и меняем ее на cgi.fix_pathinfo = 0

Дальше редактируем файл /etc/php5/fpm/pool.d/www.conf
Ищем строчку содержащую security.limit_extensions и меняем

security.limit_extensions = .php .php3 .php4 .php5


Эта ограничит выполнение файлов по расширению имени.
Далее находим строчку с параметром listen и меняемbr/>

listen = /var/run/php5-fpm.sock


Перегружаем

sudo service php5-fpm restart


Настройки Nginx находятся в файле /etc/nginx/nginx.conf.
Настройки основного сайта находятся в файле /etc/nginx/sites-available/default.
Далее открываем sudo gedit /etc/nginx/sites-available/default

server {
        listen   80; 
        root /home/www;
        index index.html index.htm index.php;
        server_name localhost;


        location / {
                try_files $uri $uri/ /index.html;
        }


        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                deny all;
        }

#запрет для всех файлов с расширением *.ht* например для .htaccess
location ~* "/\.ht"
                {
                deny all;       # запретить все для всех
                return 404;     # вернуть код ошибки 404
                }

#Запрет выполнения PHP в определенных папках таких как images, куда пользователи могут загружать файлы.
location ~* "/(upload(s?)|image(s?)|attachment(s?))/"
                        {
                        return 404;
                        }

#Запрет обработки запросов вида «/image.gif/foo.php» часто бывает при взломе сервера 
location ~ "\..*/.*\.php$"
                        {
                        return 404;
                        }

      # Для того, чтобы скрипты обрабатывались через FastCGI надо включить этот параметр
location ~ \.php$ {
# По умолчанию fastcgi_pass 127.0.0.1:9000; но нам нужно через сокет
    fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_split_path_info ^(.+\.php)(.*)$;
                fastcgi_index index.php;
                include fastcgi_params;
        }






Для ограничения выполнения файлов по расширению имени.
security.limit_extensions = .php


Перенаправление порта или сокета PHP-FPM производятся в файле /etc/php5/fpm/pool.d/www.conf
FastCGI ожидает на UNIX сокете:

listen = /var/run/php5-fpm.sock




перезагружаем сервер

sudo service nginx restart
sudo service php5-fpm restart


Оставить комментарий...

Добавить комментарий


Защитный код
Обновить