Web-сервер на Linux (Nginx + PHP-FPM)
Домены

Система авторегистрации в каталогах, статьи про раскрутку сайтов, web дизайн, flash, photoshop, хостинг, рассылки; форум, баннерная сеть, каталог сайтов, услуги продвижения и рекламы сайтов




Счетчик PR-CY.Rank

Установка и настройка Web-сервера на Linux (Nginx + PHP-FPM)

Большинство людей, использующих Linux, занимаются разработкой. Ну и тут конечно же не обойтись без web-сервера. В этой статье я расскажу, как быстро установить веб-сервер, чтобы он заработал. А если у вас есть желание и время, то дальше мы попробуем его немного "донастроить".

Установка

Для начала давайте установим пакеты, которые нам потребуются, а именно:

  • nginx - сам веб-сервер
  • php-fpm - патч для PHP, для использования PHP как FastCGI процесса в высоконагруженных системах
  • php5-mysql - работа с mysql из php
  • mysql-server - БД Mysql
  • phpmyadmin - web-интерфейс для работы с mysql
sudo apt-get install nginx nginx-extras
sudo apt-get install php5-cli php5-common php5-gd
sudo apt-get install php5-fpm php5-cgi php-pear php5-mcrypt
sudo apt-get install php5-mysql mysql-server phpmyadmin

Далее нам необходимо настроить Nginx и PHP-FPM. Начнем с последнего.

Настройка PHP-FPM

Прежде всего нам необходимо устранить проблему с безопасностью. Откройте файл "/etc/php5/fpm/php.ini":

sudo nano /etc/php5/fpm/php.ini
Далее найдите строку ";cgi.fix_pathinfo = 1" и приведите её к виду:
cgi.fix_pathinfo = 0

Сохраняем файл: нажимаем F2 или Ctrl+X и отвечаем на вопрос "Сохранить изменения или нет?" буквой "Y".

Далее открываем для редактирования файл "/etc/php5/fpm/pool.d/www.conf", и в нем указываем, какие файлы будут выполняться интерпретатором PHP. Ищем параметр "security.limit_extensions" и приводим его к виду:

security.limit_extensions = .php .php3 .php4 .php5
В этом же файле правим параметр "listen": указываем, через какой файл будут связаны "Nginx" и "PHP-FPM" (сокет). Также запрещаем кому-попало писать в сокет:
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Сохраняем изменения (дальше я не буду напоминать, что файлы, которые вы правите, надо сохранять) и перезапускаем "PHP-FPM":

sudo service php5-fpm restart

Обязательно давайте убедимся, что права доступа к сокету выставлены корректно, а именно они такие:

srw-rw---- 1 www-data www-data 0 May  2 16:36 /var/run/php5-fpm.sock

Проверить права можно командой:

ls -la /var/run/php5-fpm.sock

Настройка Nginx

Давайте попробуем настроить конфигурацию сайта example.com. Создадим конфигурационный файл для него:

sudo touch /etc/nginx/conf.d/example.com.conf

Открываем конфигурационный файл сайта example.com.conf для редактирования:

sudo nano /etc/nginx/conf.d/example.com.conf

Содержимое файла будет следующим:

server {
    listen   80;            # какой порт слушает
    root /var/www/example.com/www; # корневая директория
 
    access_log  /var/log/nginx/example.com.access.log;  #расположение логов данного хоста
    error_log  /var/log/nginx/example.com.error.log;
 
    server_name example.com example.com;
 
    location / {
        index index.php index.html index.htm;
    }
 
    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Перенаправление обработки php-скриптов внутреннему серверу «PHP-FPM»

Теперь нам надо создать файл с настройками пернаправления. Создадим и откроем его:

sudo touch /etc/nginx/common/php-fpm
sudo nano /etc/nginx/common/php-fpm

Содержимое будет таким:

include fastcgi_params;
fastcgi_split_path_info			^(.+?\.php)(/.*)?$;
# Вместо переменной "$document_root" можно указать адрес к корневому каталогу
# сервера и это желательно (см. http://wiki.nginx.org/Pitfalls)
fastcgi_param	SCRIPT_FILENAME		$document_root$fastcgi_script_name;
fastcgi_param	PATH_TRANSLATED		$document_root$fastcgi_script_name;
# См. http://trac.nginx.org/nginx/ticket/321
set		$path_info		$fastcgi_path_info;
fastcgi_param	PATH_INFO		$path_info;
# Указание дополнительных переменных окружения PHP
fastcgi_param	SERVER_ADMIN		admin@example.com;
fastcgi_param	SERVER_SIGNATURE	nginx/$nginx_version;
fastcgi_index	index.php;

Далее нам надо прописать наш сайт в файле hosts. откроем этот файл:

sudo nano /etc/hosts

И добавим в него строчку:

127.0.0.1       exapmle.com

Теперь осталось перезапустить сервисы:

sudo service nginx restart
sudo service php5-fpm restart

Ну вот. Все настроено и по идее работает. Теперь давайте создадим индексный файл нашего сайта и убедимся, что он доступен из браузера.

Создание директорий сайта

Как вы помните, выше мы определяли, что сайт наш должен находиться по адресу "/var/www/example.com/www". Давайте там его и расположим. Создадим файл index.php:

sudo mkdir -p /var/www/example.com/www
nano /var/www/example.com/www/index.php

Содержание файла будет примерно следующим:

<html>
   <head>
   	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
       	<title>Это сайт example.com!</title>
   </head>
   <body>
       

Hello‚ друг! Ты попал на example.com!</h1> <?php echo "А это уже php!"; ?> </body> </html>

Ну вот! Теперь, если вы все сделали по инструкции, то по адресу http://exapmle.com у вас должна открыться эта страница.

Остались вопросы? Задвайте!


Крутов Герман При использовании цитат и материалов данной статьи ссылка вида "Web-сервер на Linux (Nginx + PHP-FPM)" обязательна.

Код ссылки: <a href="http://intop24.ru/web-server_for_linux" target="_blank">Web-сервер на Linux (Nginx + PHP-FPM)</a>
Крутов Герман © 2009-2017 8-953-760-10-55 8-913-926-43-55 krutovgerman2007@ya.ru Я ВКонтате R197475897281 Z175174465974 41001198936523