mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
172 lines
6.7 KiB
XML
172 lines
6.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 4c8603d1c114c20d9ee6142f508da396affc83a8 Maintainer: rjhdby Status: ready -->
|
||
<!-- $Revision$ -->
|
||
<!-- Reviewed: yes Maintainer: rjhdby -->
|
||
<sect1 xml:id="install.unix.lighttpd-14" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
<title>Установка PHP на Lighttpd 1.4 на Unix-системах</title>
|
||
|
||
<para>
|
||
Этот раздел содержит информацию по установке PHP на Unix-системы
|
||
с сервером Lighttpd 1.4.
|
||
</para>
|
||
|
||
<para>
|
||
Прочитайте, пожалуйста, инструкции по установке Lighttpd в
|
||
<link xlink:href="&url.lighttpd.doc;">документации по Lighttpd</link>
|
||
перед установкой PHP.
|
||
</para>
|
||
|
||
<para>
|
||
Fastcgi - предпочитаемый интерфейс для связи PHP и Lighttpd. Fastcgi доступен
|
||
по умолчанию в PHP начиная с версии 5.3. Для предыдущих версий необходимо
|
||
конфигурировать PHP с флагом --enable-fastcgi. Чтобы убедиться, что PHP
|
||
скомпилирован с поддержкой fastcgi, необходимо проверить наличие
|
||
<literal>(cgi-fcgi)</literal> в выводе команды <literal>php -v</literal>. Для версии
|
||
5.2.5 это будет выглядеть так: <literal>PHP 5.2.5 (cgi-fcgi)</literal>.
|
||
До версии 5.2.3 не существовало отдельного файла php-cgi, fastcgi встраивался
|
||
в основной бинарный файл php.
|
||
</para>
|
||
|
||
<sect2 xml:id="install.unix.lighttpd-14.lighttpd-spawn">
|
||
<title>Управление процессами php через Lighttpd</title>
|
||
|
||
<para>
|
||
Для настройки Lighttpd на соединение с PHP и порождения процессов fastcgi
|
||
необходимо отредактировать конфигурационный файл lighttpd.conf. Предпочтительнее
|
||
подключаться к процессам fastcgi используя unix-сокеты.
|
||
</para>
|
||
|
||
<example>
|
||
<title>Пример части файла lighttpd.conf</title>
|
||
<screen>
|
||
<![CDATA[
|
||
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
|
||
))
|
||
)
|
||
]]>
|
||
|
||
</screen>
|
||
</example>
|
||
|
||
<para>
|
||
Директива <literal>bin-path</literal> задаёт путь к исполняемому
|
||
файлу php. Lighttpd будет динамически создавать дочерние процессы php,
|
||
согласно переменной окружения PHP_FCGI_CHILDREN.
|
||
Директива <literal>bin-environment</literal> задаёт настройки для
|
||
дочерних процессов. PHP_FCGI_MAX_REQUESTS определяет порог, при достижении
|
||
которого PHP завершит дочерний процесс. Директив "min-procs" и "max-procs"
|
||
обычно стоит избегать. PHP управляет только своими дочерними процессами, и
|
||
инструменты кеширования в байт-код (например, APC) будут использоваться
|
||
только в этих дочерних процессах.
|
||
Если значение "min-procs" установлено больше 1, общее количество процессов,
|
||
обрабатывающих запросы, будет равно PHP_FCGI_CHILDREN * min-procs.
|
||
</para>
|
||
</sect2>
|
||
|
||
<sect2 xml:id="install.unix.lighttpd-14.spawn-fcgi">
|
||
<title>Управление процессами с помощью spawn-fcgi</title>
|
||
|
||
<para>
|
||
Lighttpd предоставляет программу spawn-fcgi для облегчения управления
|
||
дочерними процессами.
|
||
</para>
|
||
</sect2>
|
||
|
||
<sect2 xml:id="install.unix.lighttpd-14.spawn-php">
|
||
<title>Управление процессами с помощью php-cgi</title>
|
||
|
||
<para>
|
||
Управлять процессами можно и без spawn-fcgi, но это потребует некоторых
|
||
доработок. Переменная окружения PHP_FCGI_CHILDREN указывает количество
|
||
дочерних процессов, запускаемых PHP для обработки входящих запросов.
|
||
Переменная PHP_FCGI_MAX_REQUESTS отвечает за количество запросов,
|
||
которые обработает один процесс. Ниже приведён простой bash-скрипт,
|
||
облегчающий создание дочерних процессов.
|
||
</para>
|
||
|
||
<example>
|
||
<title>Создание FastCGI-обработчиков</title>
|
||
<screen>
|
||
<![CDATA[
|
||
#!/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"
|
||
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
</sect2>
|
||
|
||
<sect2 xml:id="install.unix.lighttpd-14.remote-fcgi">
|
||
<title>Подключение к удалённым процессам FCGI</title>
|
||
|
||
<para>
|
||
Обработчики fastcgi могут находиться на нескольких отдельных машинах
|
||
для масштабирования нагрузки.
|
||
</para>
|
||
|
||
<example>
|
||
<title>Подключение к удалённым процессам fastcgi</title>
|
||
<screen>
|
||
<![CDATA[
|
||
fastcgi.server = ( ".php" =>
|
||
(( "host" => "10.0.0.2", "port" => 1030 ),
|
||
( "host" => "10.0.0.3", "port" => 1030 ))
|
||
)
|
||
]]>
|
||
</screen>
|
||
</example>
|
||
</sect2>
|
||
</sect1>
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|