Lighttpd安装PHP

2023-08-30 60

Lighttpd是一款轻量级、高性能的Web服务器软件,PHP是一种流行的脚本语言,用于开发动态网站和应用程序。在Lighttpd服务器上安装PHP可以为网站提供处理动态内容的能力。这里为大家介绍下Lighttpd安装PHP教程,推荐使用 FastCGI 作为 SAPI 模块来连接 PHP 和 Lighttpd,在 php-cgi 中自动启用 FastCGI。

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 所指定的请求数目之后杀死一个子进程。在 PHP 中通常应避免 min-procs 和 max-procs 指令。PHP 自己管理其子进程,并且例如 APC 之类的 opcode 缓存仅在 PHP 管理下的子进程之间共享。如果 min-procs 被设定成某个大于 1 的值,则 PHP 应答器的总数目为该值乘以 PHP_FCGI_CHILDREN(如 min-procs 为 2,PHP_FCGI_CHILDREN 为 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

# 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 ))
)
  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。