做自(zì)由與創造的先行者

Unix 平台的 Lighttpd 1.4

PHP中文(wén)手冊

本節包括在 Unix 平台的 Lighttpd 1.4 下(xià)安裝 PHP 的說明(míng)和(hé)提示。

推薦閱讀 » Lighttpd trac 了(le)解一下(xià)正确安裝 Lighttpd 然後繼續。

推薦使用(yòng) FastCGI 作(zuò)爲 SAPI 模塊來(lái)連接 PHP 和(hé) Lighttpd。 在 php-cgi 中自(zì)動啓用(yòng) FastCGI。

使 Lighttpd 産生 php 進程 ¶

要配置 Lighttpd 連接到(dào) PHP 并産生 FastCGI 進程, 編輯 lighttpd.conf。 推薦使用(yòng)套接字在本機連接 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 指令允許 lighttpd 動态産生 FastCGI 進程。PHP 會(huì)根據 PHP_FCGI_CHILDREN 環境變量産生子進程。bin-environment 指令設定了(le)所産生的進行的環境。PHP 會(huì)在達到(dào) PHP_FCGI_MAX_REQUESTS 所指定的請(qǐng)求數目之後殺死一個子進程。在 PHP 中通常應避免 min-procs 和(hé) max-procs 指令。PHP 自(zì)己管理(lǐ)其子進程,并且例如 APC 之類的 opcode 緩存僅在 PHP 管理(lǐ)下(xià)的子進程之間共享。如果 min-procs 被設定成某個大(dà)于 1 的值,則 PHP 應答(dá)器的總數目爲該值乘以 PHP_FCGI_CHILDREN(如 min-procs 爲 2,PHP_FCGI_CHILDREN 爲 16 則會(huì)産生 32 個應答(dá)器)。

通過 spawn-fcgi 産生進程 ¶

Lighttpd 提供一個名爲 spawn-fcgi 的程序來(lái)簡化産生 FastCGI 進程的手續。

産生 php-cgi ¶

有可能(néng)不通過 spawn-fcgi 來(lái)産生進程,但(dàn)需要做些(xiē)工(gōng)作(zuò)。設定 PHP_FCGI_CHILDREN 環境變量控制了(le) PHP 産生多少個子進程來(lái)處理(lǐ)請(qǐng)求。設定 PHP_FCGI_MAX_REQUESTS 将決定每個子進程存活多久(以請(qǐng)求數目決定)。 以下(xià)爲一個簡單的 bash 腳本來(lái)幫助産生 php 應答(dá)器。

示例 #2 産生 FastCGI 應答(dá)器

#!/bin/sh

# Location of the php-cgi binary

PHP=/usr/local/bin/php-cgi

# PID File location

PHP_PID=/tmp/php.pid

# Binding to an address

#FCGI_BIND_ADDRESS=10.0.1.1:10000

# Binding to a domain socket

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 實例可被産生于多個遠程機器以分散應用(yòng)程序。

示例 #3 連接遠程 php-fastcgi 實例

fastcgi.server = ( ".php" =>

(( "host" => "10.0.0.2", "port" => 1030 ),

( "host" => "10.0.0.3", "port" => 1030 ))

)

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:Unix 系統下(xià)的 LiteSpeed、OpenLiteSpeed Web 服務器
上(shàng)一篇:Unix 系統下(xià)的 Nginx 1.4.x