Руководство → Nginx + php
Сегодняшний интернет без php представить невозможно. Nginx предоставляет возможность выполнять php скрипты, используя FastCGI.
То есть для того, что бы включить поддержку CGI в php.
Для этого, в FreeBSD делаем:
После того как собран php, нам необходимо собрать расширения php,
идем в
Тут следует заметить, что более правильным вариантом, является php c патчем php-fpm, взять его можно по адресу php-fpm, вариант этот как я смог заметить более стабильно работает и в одной и следующих статей я обязательно на нем остановлюсь.
После того как все необходимое собрано, php-cgi нужно запустить. Запустить его можно двумя вариантами:
Используя spawn-cgi из комплекта lighthttpd
С помощью скрипта. Скрипт запуска php:
Скрипт надо разместить в /usr/local/etc/rc.d/ под именем, допустим phpFcgid.sh
Делаем chmod +x /usr/local/etc/rc.d/phpFcgid.sh
потом
echo «phpFcgid_enable=YES» >> /etc/rc.conf
Теперь php можно запустить
Проверяем ps afx|grep php-cgi
И если мы все сделали правильно, то должны увидеть примерно такое:
Теперь можно приступать к этапу конфигурирования nginx.
По сравнению с конфигурацией, приведенной в предыдущем посте,
необходимо добавить еще один локайшен, такого типа:
www.hilik.org.ua/nginx-php/
То есть для того, что бы включить поддержку CGI в php.
Для этого, в FreeBSD делаем:
cd /usr/ports/lang/php5, и выбираем Build CGI version
После того как собран php, нам необходимо собрать расширения php,
идем в
cd /usr/ports/lang/php5-extensions
Тут следует заметить, что более правильным вариантом, является php c патчем php-fpm, взять его можно по адресу php-fpm, вариант этот как я смог заметить более стабильно работает и в одной и следующих статей я обязательно на нем остановлюсь.
После того как все необходимое собрано, php-cgi нужно запустить. Запустить его можно двумя вариантами:
Используя spawn-cgi из комплекта lighthttpd
С помощью скрипта. Скрипт запуска php:
#!/bin/sh # PROVIDE: phpFcgid # REQUIRE: LOGIN # KEYWORD: shutdown . /etc/rc.subr name="phpFcgid" rcvar=`set_rcvar` load_rc_config $name : ${phpFcgid_enable="NO"} : ${phpFcgid_users="www"} : ${phpFcgid_children="5"} start_cmd=phpFcgid_start stop_cmd=phpFcgid_stop phpFcgid_start() { echo "Starting $name." export PHP_FCGI_CHILDREN=${phpFcgid_chidlren} for user in ${phpFcgid_users}; do su -m ${user} -c "/usr/local/bin/php-cgi -b 127.0.0.1:9000 -q &" echo "Test ${user}" done } phpFcgid_stop() { echo "Stopping $name." pids=`pgrep php-cgi` pkill php-cgi wait_for_pids $pids } run_rc_command "$1"
Скрипт надо разместить в /usr/local/etc/rc.d/ под именем, допустим phpFcgid.sh
Делаем chmod +x /usr/local/etc/rc.d/phpFcgid.sh
потом
echo «phpFcgid_enable=YES» >> /etc/rc.conf
Теперь php можно запустить
/usr/local/etc/rc.d/phpFcgid.sh start
Проверяем ps afx|grep php-cgi
И если мы все сделали правильно, то должны увидеть примерно такое:
68147 qc I 0:00,03 /usr/local/bin/php-cgi -b 127.0.0.1:9000 -q
Теперь можно приступать к этапу конфигурирования nginx.
По сравнению с конфигурацией, приведенной в предыдущем посте,
необходимо добавить еще один локайшен, такого типа:
location ~ \.php$ { # Описываем, что локейшн будет обрабатывать #все файлы с расширением php fastcgi_pass 127.0.0.1:9000; #Указываем адрес на котором #отвечает php FastCGI сервер fastcgi_index index.php; #Индекс для модуля FastCGI fastcgi_param SCRIPT_FILENAME /home/www/htdocs/hilik.org.ua/$fastcgi_script_name; #Путь к файлам к файлам которые будет #обрабатывать FastCGI сервер include fastcgi_params; #Подключение файла со стандартными #параметрами для модуля FastCGI }
www.hilik.org.ua/nginx-php/
- +2
- Diesel
- 24 апреля 2010, 19:47
Комментарии (0)
rss свернуть / развернутьТолько авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.