Lighttpd 1.4 在 Unix 系统上

本节包含有关在 Unix 系统上安装 PHP 的 Lighttpd 1.4 的具体说明和提示。

在继续之前,请使用 » Lighttpd trac 了解如何正确安装 Lighttpd。

FastCGI 是连接 PHP 和 Lighttpd 的首选 SAPI。FastCGI 在 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 指令允许 lighttpd 动态生成 FastCGI 进程。PHP 将根据 PHP_FCGI_CHILDREN 环境变量生成子进程。 bin-environment 指令设置生成进程的环境。PHP 将在达到 PHP_FCGI_MAX_REQUESTS 指定的请求数后杀死子进程。指令 min-procsmax-procs 通常应避免使用 PHP。PHP 管理自己的子进程和 opcode 缓存,如 APC 将仅在由 PHP 管理的子进程之间共享。如果 min-procs 设置为大于 1 的值,则 php 响应程序的总数将乘以 PHP_FCGI_CHILDREN(2 min-procs * 16 children 将得到 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

# 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 实例生成在多个远程计算机上,以便扩展应用程序。

示例 #3 连接到远程 php-fastcgi 实例

fastcgi.server = ( ".php" =>
   (( "host" => "10.0.0.2", "port" => 1030 ),
    ( "host" => "10.0.0.3", "port" => 1030 ))
)
添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top