Главная > Сервера и сети > Установка сервера ubuntu Nginx и PHP-FPM

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

Установка nginx server

Что это

NGINX - считается одним из самых распространенных веб-серверов, к томуже имеет открытый исходный код. Nginx появился в 2002 году, тогда Игорь Сысоев начал разрабатывать Nginx, чтобы решить проблему 10 тысячами одновременных соединений. Свою популярность заработал своей производительностью и минимальными требованями. Nginx прекрасно работает на самых слабых системах, например для установки вебсервера на одноплатник. У nginx есть много полезных свойств, но про это потом. Я просто хотел сохранить последовательность установки вебсервера.

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

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

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

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


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


Наши заметки



Сайтостроение

Программирование и интеграция сайта с CMS, верстка HTML, CSS, PHP, JAVAscript

Всегда на связи

logotip

Комплексные IT решения для бизнеса и дома