array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'install.unix.lighttpd-14.php', 1 => 'Установка PHP на Lighttpd 1.4 на Unix-системах', ), 'up' => array ( 0 => 'install.unix.php', 1 => 'Установка на Unix-системы', ), 'prev' => array ( 0 => 'install.unix.nginx.php', 1 => 'Установка Nginx 1.4.x на систему Unix', ), 'next' => array ( 0 => 'install.unix.litespeed.php', 1 => 'Веб-сервер LiteSpeed/OpenLiteSpeed на системах Unix', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'install/unix/lighttpd-14.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Этот раздел содержит информацию по установке PHP на Unix-системы с сервером Lighttpd 1.4.
Прочитайте, пожалуйста, инструкции по установке Lighttpd в » документации по Lighttpd перед установкой PHP.
FastCGI - предпочитаемый интерфейс для связи PHP и Lighttpd. FastCGI доступен по умолчанию в php-cgi.
Для настройки Lighttpd на соединение с PHP и порождения процессов FastCGI необходимо отредактировать конфигурационный файл lighttpd.conf. Предпочтительнее подключаться к процессам FastCGI используя Unix-сокеты.
Пример #1 Пример части файла lighttpd.conf
server.modules += ( "mod_fastcgi" ) fastcgi.server = ( ".php" => (( "socket" => "/tmp/php.socket", "bin-path" => "/usr/local/bin/php-cgi", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "16", "PHP_FCGI_MAX_REQUESTS" => "10000" ), "min-procs" => 1, "max-procs" => 1, "idle-timeout" => 20 )) )
Директива bin-path позволяет lighttpd динамически запускать процессы FastCGI.
Lighttpd будет динамически создавать дочерние процессы php,
согласно переменной окружения PHP_FCGI_CHILDREN.
Директива bin-environment
задаёт настройки для
дочерних процессов. PHP_FCGI_MAX_REQUESTS определяет порог, при достижении
которого PHP завершит дочерний процесс. Директив min-procs
и max-procs
обычно стоит избегать. PHP управляет только своими дочерними процессами, и
инструменты кеширования в байт-код (например, APC) будут использоваться
только в этих дочерних процессах.
Если значение min-procs
установлено больше 1
, общее количество процессов,
обрабатывающих запросы, будет равно PHP_FCGI_CHILDREN * min-procs.
Lighttpd предоставляет программу spawn-fcgi для облегчения управления дочерними процессами FastCGI.
Управлять процессами можно и без spawn-fcgi, но это потребует некоторых доработок. Переменная окружения PHP_FCGI_CHILDREN указывает количество дочерних процессов, запускаемых PHP для обработки входящих запросов. Переменная PHP_FCGI_MAX_REQUESTS отвечает за количество запросов, которые обработает один процесс. Ниже приведён простой bash-скрипт, облегчающий создание дочерних процессов.
Пример #2 Создание FastCGI-обработчиков
#!/bin/sh # Местоположение бинарного файла php-cgi PHP=/usr/local/bin/php-cgi # Местоположение PID-файла PHP_PID=/tmp/php.pid # Привязка к адресу #FCGI_BIND_ADDRESS=10.0.1.1:10000 # Привязка к сокету FCGI_BIND_ADDRESS=/tmp/php.sock PHP_FCGI_CHILDREN=16 PHP_FCGI_MAX_REQUESTS=10000 env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \ PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \ $PHP -b $FCGI_BIND_ADDRESS & echo $! > "$PHP_PID"
Обработчики FastCGI могут находиться на нескольких отдельных машинах для масштабирования нагрузки.
Пример #3 Подключение к удалённым процессам fastcgi
fastcgi.server = ( ".php" => (( "host" => "10.0.0.2", "port" => 1030 ), ( "host" => "10.0.0.3", "port" => 1030 )) )