Просмотров: 2360 автор: 24 декабря 2009
Другие новости по теме:
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Ключевые теги: , , , , , , , , , , , ,
Q. Как я могу настроить PHP FastCGI качестве веб-сервера под FreeBSD Nginx?А. Вы можете легко настроить PHP как FastCGI приложение под Nginx для исполнения. Вам необходимы следующие компоненты:[A] Spawn-FCGI binary - для порождения FastCGI процесса. Этот бинарник может быть установлен с проекта Lighttpd веб-сервера. Nginx автоматически не порождает FCGI процессы. Вы должны начать их отдельно, используя spawn-fcgi. start.php.sh: сценарий оболочки для остановки / запуска / перезапуска процесса PHP FastCGI. Это PHP скрипт подкачки процесса на IP 127.0.0.1 и 9000 порту. После запуска бэкэнда Nginx можно настроить для подключения к PHP.[b]Установка PHP5 на FreeBSD.Если php5 не установлена, введите следующие команды (не забудьте выбрать опцию FastCGI):# cd /usr/ports/lang/php5# make config# make install clean Рис.01 Включите поддержку FastCGI, выбрав опцию FastCGIКроме того, установите необходимые PHP расширения, такие как PHP-msyql, PHP-GD и так далее:# cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini# cd /usr/ports/lang/php5-extensions/# make install cleanУстановка spawn-fcgiПолученный последний Spawn-FCGI из иной Lighttpd установки или установите его следующим образом:# pkg_add -r -v lighttpdПример вывода:scheme: [ftp]user: []password: []host: [ftp.freebsd.org]port: [0]document: [/pub/FreeBSD/ports/amd64/packages-7.0-release/Latest/lighttpd.tbz]---> ftp.freebsd.org:21looking up ftp.freebsd.orgconnecting to ftp.freebsd.org:21<<< 220 Welcome to freebsd.isc.org.>>> USER anonymous<<< 331 Please specify the password...........x lib/lighttpd/mod_access.sox lib/lighttpd/mod_accesslog.ax lib/lighttpd/mod_accesslog.lax lib/lighttpd/mod_accesslog.sox lib/lighttpd/mod_alias.ax lib/lighttpd/mod_alias.lax lib/lighttpd/mod_alias.sox lib/lighttpd/mod_auth.ax lib/lighttpd/mod_auth.la.......Теперь вы можете использовать /usr/local/bin/spawn-fcgi для замены процесса. Если хотите, то вы можете скопировать /usr/local/bin/spawn-fcgi в /root или другой каталог и просто удалить lighttpd пакет, введя следующие команды:# cp /usr/local/bin/spawn-fcgi /root/# pkg_delete -v lighttpd-1.4.18_1# cp /root/spawn-fcgi /usr/local/bin/spawn-fcgiТеперь вы можете запустить PHP Fastcgi из командной строки следующим образом:# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgiГде,-127.0.0.1: PHP FastCGI привязан IP адрес, по которому будут подключаться Nginx.P-9000: PHP FastCGI номер порта, к которому будет подключаться Nginx.-У WWW: PHP FastCGI имя пользователя.-G WWW: PHP FastCGI имя группы.-F / USR / местное / BIN / PHP-CGI: путь к бинарному PHP5 FastCGI.Убедитесь в том, что php, запущен как PHP FastCGI, введите:# sockstat -4 | grep 9000Пример вывода:www php-cgi 8998 0 tcp4 127.0.0.1:9000 *:*www php-cgi 8997 0 tcp4 127.0.0.1:9000 *:*www php-cgi 8996 0 tcp4 127.0.0.1:9000 *:*www php-cgi 8995 0 tcp4 127.0.0.1:9000 *:*www php-cgi 8994 0 tcp4 127.0.0.1:9000 *:*www php-cgi 8993 0 tcp4 127.0.0.1:9000 *:*Пример скрипта, для Запуска/Остановки PHP FastCGI процесса#!/bin/sh# NGINX FastCGI php5 startup shell script# Feedback <vivek@nixcraft.com># http://bash.cyberciti.biz/web-server/fastcgi-php-server-start-stop-script/# Set ME #PROVIDES=php-cgiLIGHTTPD_FCGI=/usr/local/bin/spawn-fcgiSERVER_IP=127.0.0.1SERVER_PORT=9000SERVER_USER=wwwSERVER_GROUP=wwwPHP_CGI=/usr/local/bin/php-cgiPGREP=/bin/pgrepKILLALL=/usr/bin/killall### No editing below ####cmd=$1 pcgi_start(){ echo "Starting $PROVIDES..." P$LIGHTTPD_FCGI -a $SERVER_IP -p $SERVER_PORT -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI} pcgi_stop(){ echo "Killing $PROVIDES..." $KILLALL $PROVIDES} pcgi_restart(){ pcgi_stop pcgi_start} pcgi_status(){ $PGREP $PROVIDES > /dev/null [ $? -eq 0 ] && echo "$PROVIDES running" || echo "$PROVIDES NOT running" } pcgi_help(){ echo "Usage: $0 {start|stop|restart|status}"} case ${cmd} in[Ss][Tt][Aa][Rr][Tt]) pcgi_start;;[Ss][Tt][Oo][Pp]) pcgi_stop;;[Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;;[Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status;;*) pcgi_help;;esacУстановка вышесказанного shell скрипта:# cd /tmp# fetch http://bash.cyberciti.biz/dl/251.sh.zip# unzip 251.sh.zip# mv 251.sh /usr/local/etc/rc.d/php.cgi.sh# chmod +x /usr/local/etc/rc.d/php.cgi.sh# rm 251.sh.zipЧтобы запустить php FastCGI, введите:# /usr/local/etc/rc.d/php.cgi.sh start# sockstat -4 | lessЧтобы остановить php FastCGI, введите:# /usr/local/etc/rc.d/php.cgi.sh stopПодключение Nginx-вебсервера к PHP FastCGI процессуОткройте ваш nginx.conf файл, и введите:# vi /usr/local/etc/nginx/nginx.confДобавте следующий конфиг директив, так чтобы Nginx мог пройти PHP скрипты через FastCGI сервер на 127.0.0.1:9000:location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /websites/example.com/http$fastcgi_script_name; include fastcgi_params;Если ваш сайт размещен в /home/www/theos.in/http, ваш конфигурационный файл должен выглядеть следующим образом:server { listen 80; server_name theos.in www.theos.in; access_log /var/log/nginx/theos.in/access.log main; location / { root /home/www/theos.in/http; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/theos.in/http$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; }}Перезагрузка Nginx веб сервера# nginx -c /usr/local/etc/nginx/nginx.conf -t# /usr/local/etc/rc.d/nginx restartПроверьте PHP со следующими примером скрипта:<?php phpinfo();?>
→ FreeBSD: Nginx PHP FastCGI Конфигурация
Загрузка. Пожалуйста, подождите...
FreeBSD: Nginx PHP FastCGI Конфигурация » Linux & FreeBSD
Комментариев нет:
Отправить комментарий