需手动配置 FastCGI 模块:一、安装 PHP-FPM 和 lighttpd-mod-fastcgi;二、启用 mod_fastcgi 并配置 fastcgi.server;三、设置 PHP-FPM 监听 Unix 套接字;四、在 lighttpd.conf 中定义 PHP 处理规则;五、创建 info.php 验证解析与权限。

如果您希望在 lighttpd 服务器上运行 PHP 脚本,需要手动配置 FastCGI 模块以将 PHP 请求转发给 PHP-CGI 或 PHP-FPM 进程。以下是完成该配置的具体步骤:
一、安装 PHP 及 FastCGI 支持组件
lighttpd 本身不内置 PHP 解析能力,必须依赖外部 PHP 解释器并通过 FastCGI 协议通信。需确保系统中已安装 PHP CLI 和 PHP-FPM(或 php-cgi),并启用 lighttpd 的 mod_fastcgi 模块。
1、执行 apt install php-fpm lighttpd-mod-fastcgi(Debian/Ubuntu)或 yum install php-fpm lighttpd-fastcgi(CentOS/RHEL)。
2、确认 php-fpm 服务已安装且可执行,运行 php-fpm -v 验证版本。
立即学习“PHP免费学习笔记(深入)”;
3、检查 lighttpd 模块目录是否存在 mod_fastcgi.so,路径通常为 /usr/lib/lighttpd/ 或 /usr/lib64/lighttpd/。
二、启用并配置 mod_fastcgi 模块
lighttpd 默认不加载 FastCGI 模块,需在主配置文件中显式启用,并声明 PHP 处理规则。该步骤建立 lighttpd 与 PHP 进程之间的通信通道。
1、编辑 /etc/lighttpd/lighttpd.conf,在 server.modules 列表中添加 "mod_fastcgi"。
2、在配置文件末尾追加 fastcgi 相关段落,包含 fastcgi.server 指令,指定 ".php" 后缀交由 PHP-FPM 套接字处理。
3、确保 include "/etc/lighttpd/conf-available/10-fastcgi.conf" 行未被注释,或直接在主配置中写入 fastcgi 块。
三、配置 PHP-FPM 监听方式
PHP-FPM 必须以与 lighttpd 兼容的方式监听请求,推荐使用 Unix 域套接字以提升性能与安全性,避免端口冲突。
1、编辑 /etc/php/*/fpm/pool.d/www.conf(* 为 PHP 版本号,如 8.2),将 listen 行改为 listen = /run/php/php*-fpm.sock。
2、修改 listen.owner 和 listen.group 为 www-data(Debian/Ubuntu)或 lighttpd(openSUSE)或 nginx(部分 CentOS 配置),确保 lighttpd 进程可访问该套接字文件。
3、重启 PHP-FPM 服务:执行 systemctl restart php*-fpm。
四、设置 lighttpd 的 PHP 处理规则
需明确定义哪些 URL 路径或文件后缀应交由 PHP-FPM 执行,lighttpd 通过 fastcgi.server 指令匹配并转发请求。
1、在 lighttpd.conf 中添加如下块(注意缩进与括号匹配):
fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/run/php/php8.2-fpm.sock", "broken-scriptfilename" => "enable" ) ) )
2、若使用 TCP 端口方式(不推荐),则 socket 改为 "host" => "127.0.0.1", "port" => "9000",并确保 PHP-FPM 的 listen 配置对应为 127.0.0.1:9000。
3、启用 broken-scriptfilename 是为兼容 PATH_INFO,防止 $_SERVER['SCRIPT_FILENAME'] 解析错误。
五、验证 PHP 文件解析与权限设置
配置完成后,需验证 lighttpd 是否能正确调用 PHP 并输出结果,同时确保 Web 根目录下 PHP 文件具备可读与可执行权限。
1、在 /var/www/html/ 下创建 info.php,内容为 。
2、确认该文件属主为 www-data:www-data(或对应 lighttpd 运行用户组),权限设为 644。
3、重启 lighttpd 服务:systemctl restart lighttpd,然后在浏览器访问 http://localhost/info.php。











