Lighttpd 1.4 на Unix системах

Ця сторінка містить замітки та підказки призначені для встановлення 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-процеси

Щоб сконфігурувати 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 обробників).

Породження процесів через spawn-fcgi

Lighttpd надає програму spawn-fcgi, щоб спростити процес породження fastcgi-процесів.

Породження процесів через php-cgi

Є можливість породжувати процеси без 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"

Підключення до віддалених FCGI екземплярів

Fastcgi екземпляри можуть бути породженими на декількох віддалених машинах, для можливості масштабувати застосунки.

Приклад #3 Підключення до віддалених php-fastcgi екземплярів

fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top