You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在lighttpd服务器中同时运行多版本PHP并按端口分配?

在lighttpd上同时运行多版本PHP(PHP 5.6 + PHP 7.0)

我之前也折腾过lighttpd多版本PHP共存的配置,确实直接启用两个官方的fastcgi-php5.6和fastcgi-php7.0模块会冲突,不过咱们可以通过手动配置FastCGI后端的方式绕开这个限制,既能让端口80默认跑PHP5.6,又能给特定项目指定PHP7.0。下面是一步步的实操方案:

1. 禁用自动的PHP FastCGI模块

首先得把系统自带的自动PHP模块引用注释掉,避免冲突:

  • 打开lighttpd主配置文件(通常是/etc/lighttpd/lighttpd.conf)
  • 找到类似include "conf.d/fastcgi-php5.6.conf"或include "conf.d/fastcgi-php7.0.conf"的行,在前面加#注释掉
  • 确保只保留mod_fastcgi模块的启用(如果还没启用,就加一行server.modules += ( "mod_fastcgi" ))

2. 配置PHP 5.6为端口80的默认后端

在主配置文件中添加手动的FastCGI配置,把PHP5.6设为全局默认:

# 全局默认使用PHP 5.6
fastcgi.server += ( ".php" =>
    ((
        # 如果你用的是PHP-FPM(推荐,性能更好),用socket路径
        "socket" => "/var/run/php/php5.6-fpm.sock",
        # 如果直接用php-cgi,就换成下面这行
        # "bin-path" => "/usr/bin/php5.6-cgi",
        # "max-procs" => 4, # 用cgi时可以设置进程数
        "broken-scriptfilename" => "enable"
    ))
)

注意:broken-scriptfilename必须开启,否则lighttpd传递给PHP的脚本路径会有问题,导致无法正常解析PHP文件。

3. 为特定项目配置PHP 7.0

如果某个站点或目录需要用PHP7.0,通过$HTTP["host"]或$HTTP["url"]做匹配,单独指定后端:

方式1:针对特定域名配置

# 当访问php70.local域名时,使用PHP7.0
$HTTP["host"] == "php70.local" {
    fastcgi.server += ( ".php" =>
        ((
            "socket" => "/var/run/php/php7.0-fpm.sock",
            # 用cgi的话替换成:"bin-path" => "/usr/bin/php7.0-cgi",
            "broken-scriptfilename" => "enable"
        ))
    )
}

方式2:针对特定目录配置

# 当访问/php70-project/路径下的PHP文件时,使用PHP7.0
$HTTP["url"] =~ "^/php70-project/" {
    fastcgi.server += ( ".php" =>
        ((
            "socket" => "/var/run/php/php7.0-fpm.sock",
            "broken-scriptfilename" => "enable"
        ))
    )
}

4. 验证配置并重启服务

  • 先检查配置文件是否有语法错误:
lighttpd -t -f /etc/lighttpd/lighttpd.conf
  • 如果输出Syntax OK,就重启lighttpd服务:
# 系统用systemd的话
systemctl restart lighttpd
# 老系统用service的话
service lighttpd restart

额外注意事项

  • 如果用PHP-FPM,要确保php5.6-fpm和php7.0-fpm服务已经启动并正常运行
  • 检查socket文件的权限,确保lighttpd的运行用户(通常是www-data)有权限访问,必要时可以调整socket的权限或所属组
  • 用php-cgi的话,lighttpd会自动管理CGI进程,但PHP-FPM的稳定性和性能更优,推荐优先使用FPM模式

内容的提问来源于stack exchange,提问作者Taci Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:23:13