Ця сторінка містить замітки та підказки призначені для встановлення PHP на Unix системах з веб-сервером Lighttpd 1.4.
Щоб отримати інформацію про правильне встановлення Lighttpd, відвідайте їхній сайт » Lighttpd trac.
Рекомендовано вибирати fastcgi SAPI для з'єднання PHP з Lighttpd. Fastcgi
автоматично включено в php-cgi починаючи з PHP 5.3, але для старіших версій
встановіть PHP з параметром --enable-fastcgi. Щоб перевірити, що в PHP підключено
fastcgi, видача php -v повинна мати приблизно такий рядок
PHP 5.2.5 (cgi-fcgi). Перед PHP 5.2.3, fastcgi було
включено в бінарну версію php (це був не сам php-cgi).
Щоб сконфігурувати Lighttpd для підключення до PHP та розмножувача fastcgi-процесів, змініть файл lighttpd.conf. Краще вибирати сокети для fastcgi-процесів.
Приклад #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" містить шлях до виконуючого файла php, та дозволяє lighttpd динамічно розмножувати fastcgi-процеси. PHP буде породжувати дочірні процеси відповідно до змінної оточення PHP_FCGI_CHILDREN. Директива "bin-environment" встановлює оточення для розмноження процесів. PHP буде вбивати дочірні процеси, коли число запитів досягне значення, яке визначено через PHP_FCGI_MAX_REQUESTS. Директиви "min-procs" та "max-procs" зазвичай варто уникати. PHP управляє її власними дочірніми процесами, а такий opcode-кеш як APC буде поширюватись тільки серед дочірніх процесів, що управляються через PHP. Якщо для "min-procs" встановлено значення більше 1, загальне число процесів, що обробляють запити (число обробників), буде помноженим на PHP_FCGI_CHILDREN (Тобто: 2 min-procs * 16 дочірніх процесів = 32 обробників).
Lighttpd надає програму spawn-fcgi, щоб спростити процес породження fastcgi-процесів.
Є можливість породжувати процеси без spawn-fcgi, хоча це вимагає деяких допрацювань. Через параметр оточення PHP_FCGI_CHILDREN визначається, як за багато дочірніх процесів PHP буде породжено для обробки вхідних запитів. Через параметр PHP_FCGI_MAX_REQUESTS визначається, як за довго (в запитах) кожен дочірній процес буде жити. Нижче наведено простий bash-скрипт, що полегшує створення php-обробників.
Приклад #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 Підключення до віддалених php-fastcgi екземплярів
fastcgi.server = ( ".php" =>
(( "host" => "10.0.0.2", "port" => 1030 ),
( "host" => "10.0.0.3", "port" => 1030 ))
)