Nginx + PHP как FastCGI

Apr 05, 2011 14:52


При установке php из портов сконфигурировать его как fastCGI,
При сборке проверить опцию --enable-cli
тогда его можно запустить как сервер через скрипт в /usr/local/etc/rc.d при переменной php_fpm_enable="YES" в /etc/rc.conf 
Конфиг этого сервиса живет в /usr/local/etc/php-fpm.confwhereis php
Для проверки
php -i (вызов phpinfo(); -m информация о модулях; -l проверка синтаксиса в файле-аргументе)
Простейший запуск функций пхп в коммандной строке
php -r print_r(get_defined_constants());
Выполнение интерпретатором php файла: php php_file_name.php
Файл echo.php запускаемый на исполнение:
#!/usr/local/bin/php

исполнить:  ./echo.php

Чтобы в нжинксе работал php пишем в /usr/local/etc/nginx/nginx.conf
http{ ...
server { ...
location / {
fastcgi_pass localhost:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
#Параметр SCRIPT_FILENAME используется в PHP для определения имени скрипта, 
#а в параметре QUERY_STRING передаются параметры запроса. Настройки ниже не обязательны.

fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#Три строчки выше позволяют использовать метод POST
}}}
При такой настройке будем исполнять index.php если URI заканчивается на / , в других случаях имя после / соответствует имени исполняемого скрипта.  
Если PHP был собран с параметром конфигурации --enable-force-cgi-redirect, то нужно передавать параметр REDIRECT_STATUS со значением "200":

fastcgi, по горячим следам, nginx, php

Previous post Next post
Up