Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 23.06.2011, 04:47   #1
 Разведчик
Аватар для Gors
 
Gors никому не известный тип
Регистрация: 23.06.2011
Сообщений: 10
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию Установка nginx+fastcgi-php

В последнее время стал очень сильно популярен вебсервер nginx. Выгода заключается в том, что он более легкий, и позволяет легко выносить различные атаки на нагрузку. nginx установлен на таких проектах как vkontakte.ru и rambler.ru (для второго он собственно и разрабатывался) Минус заключается в том, что он не сильно документирован, а мануалы найденные в интернетах неполные, и приходится некоторые моменты додумывать самому. Существует несколько способов прицепить php к nginx: apache2 в качестве прокси сервера, fastcgi-php. Мы рассмотрим второй способ, т.к. он является более кошерный с моей точки зрения. Установка рассматривается для debian подобных систем (debian, ubuntu).


1. Установка требуемых пакетов.
Для начала поставим из репозитария nginx, php5, php5-cgi, lighttpd:
Код:
apt-get install nginx, php5, php5-cgi, lighttpd
lighttpd нам понадобится только для того, чтобы запускать fastcgi. Есть отдельные скрипты для его запуска, но ни один у меня не заработал, а запущенный php5-cgi руками постоянно падал
Итак, нужные пакеты поставились, и теперь уберем lighttpd из автозагрузки и потушим его:
Код:
/etc/init.d/lighttpd stop
update-rc.d -f lighttpd remove
2. Запуск fastcgi-php
К чему мы собственно и подбирались. spawn-fcgi будет слушать localhost на порту 9000. Для его запуска используем следующее колдунство:
Код:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
Это можно запихнуть в файл, или автозагрузку, или вбивать каждый раз в консоль руками после перезагруки машины, это уже додумаете сами на сколько фантазии хватит

3. Настройка php.
Проста до безобразия. Ищем файл /etc/php5/cgi/php.ini, открываем его через любой доступный текстовый редактор, находим в нем подобие строки
Код:
 ; cgi.fix_pathinfo = 0
и превращаем её в
Код:
cgi.fix_pathinfo = 1
4. Настройка nginx
Если у вас доступ к серверу идет по ип адресу, или всего 1 домен, то для прицепки php достаточно отредактировать файл /etc/nginx/sites-available/default
Открываем его через текстовый редактор, и ищем закоментированную секцию location ~ \.php$ { и разкоментируем её.

Выглядит она примерно так:

Код:
 location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
            include        fastcgi_params;
    }
Если у вас файлы сайта лежат в дирректории /var/www/nginx-default/ то тут можно ничего не менять, и оставить все как есть.

Создаем через любой текстовый редактор файл /etc/nginx/fastcgi_params и вставляем в него следующий текст:

Код:
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
Делаем /etc/init.d/nginx restart, создаем в папке с файлами сайта файл index.php, в него помещаем следующий текст:

Код:
<?php phpinfo(); ?>
Открываем [Ссылки могут видеть только зарегистрированные пользователи. ]. Если вы увидели информацию о системе php, то значит все зергуд, и можно смело лить сайт/радостно прыгать по комнате/пить пиво/etc. Если увидели что-то духе ошибки 502, значит fastcgi-php не запустился, и ещё раз перечитываем мануал, и смотрим что забыли.
________________
/root
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Установка КФ Фантом_23 Общение и обсуждение CrossFire 2 20.05.2011 17:22
Установка MS-SQL DushaDusha Общение и обсуждение Perfect World 0 25.03.2011 20:06
[Информация] Установка игр. Chipito Игры 0 10.05.2010 17:42

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 14:19.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net