OpenLiteSpeed需配置专用lsphp处理器才能执行PHP:①安装匹配版本lsphp并设权限;②WebAdmin中添加LSAPI外部应用;③虚拟主机绑定php扩展至该应用;④创建phpinfo测试页验证;⑤排查日志、权限及SELinux限制。

如果您已安装 OpenLiteSpeed 但 PHP 脚本无法执行或返回 503 错误,则可能是由于 PHP 处理器未正确关联或未启用。以下是配置 OpenLiteSpeed 运行 PHP 的具体步骤:
一、确认 PHP 版本并安装对应 LiteSpeed SAPI
OpenLiteSpeed 不直接使用系统默认的 PHP CLI 或 FPM,而是依赖专为其编译的 lsphp 二进制文件,该文件由 LiteSpeed 官方提供或需从源码编译生成。必须确保所选 PHP 版本与 lsphp 兼容且已部署到 OpenLiteSpeed 可调用路径。
1、通过终端运行 lsphp -v 检查是否已存在可用的 lsphp 可执行文件。
2、若提示命令未找到,访问 https://www.litespeedtech.com/download 下载与当前 OpenLiteSpeed 架构(x86_64 或 aarch64)及所需 PHP 版本(如 PHP 8.1、8.2)匹配的 lsphp 包。
立即学习“PHP免费学习笔记(深入)”;
3、解压下载包,将 lsphp 二进制文件复制至 /usr/local/lsws/fcgi-bin/ 目录,并设置执行权限:chmod +x /usr/local/lsws/fcgi-bin/lsphp。
二、在 WebAdmin 控制台配置外部应用
OpenLiteSpeed 使用“外部应用”机制调用 PHP 解释器,需在 WebAdmin 界面中注册一个类型为 “LSAPI” 的应用,并指向 lsphp 可执行路径。此步骤建立服务器与 PHP 引擎之间的通信通道。
1、登录 OpenLiteSpeed WebAdmin 控制台(通常为 https://your-server-ip:7080)。
2、导航至 Configuration → External App → Add,选择类型为 LSAPI。
3、填写名称为 lsphp82(可自定义,但需与后续脚本处理器名称一致),地址设为 uds://tmp/lshttpd/lsphp82.sock,最大连接数设为 35。
4、在 “Command” 字段中输入完整路径:/usr/local/lsws/fcgi-bin/lsphp,保存后重启配置。
三、为虚拟主机绑定 PHP 处理器
每个虚拟主机需显式指定哪些扩展名交由哪个外部应用处理,否则请求将被忽略或返回静态文件内容。PHP 脚本必须通过正确的处理器路由才能触发解释执行。
1、进入 Configuration → Virtual Hosts → your_vhost → Script Handler。
2、点击 Add,设置 Extension 为 php,Handler Type 为 LiteSpeed SAPI,Handler Name 填写上一步创建的外部应用名称(如 lsphp82)。
3、如需支持多扩展(如 .php5、.phtml),重复添加对应条目,Extension 字段分别设为 php5 和 phtml,Handler Name 保持一致。
四、验证 PHP 配置并测试响应
配置完成后需验证 OpenLiteSpeed 是否能成功加载并执行 PHP,避免因权限、路径或 MIME 类型导致响应异常。测试文件应排除缓存干扰并强制触发解析流程。
1、在网站根目录(如 /usr/local/lsws/DEFAULT/html/)创建 info.php,内容为 。
2、确保该文件属主为 lsadm:lsadm,权限为 644:chown lsadm:lsadm info.php && chmod 644 info.php。
3、浏览器访问 http://your-domain/info.php,页面应显示 PHP 配置信息,且顶部 Server API 显示为 LiteSpeed。
五、排查常见 PHP 执行失败原因
即使配置完成,仍可能出现空白页、503 错误或下载 PHP 源码等现象,多数源于权限隔离、SELinux 限制或环境变量缺失。需逐项验证底层运行条件是否满足。
1、检查 /usr/local/lsws/logs/error.log 中是否有类似 failed to connect to LSAPI backend 的报错。
2、运行 sudo -u lsadm /usr/local/lsws/fcgi-bin/lsphp -i | head -n 5,确认 lsphp 可在 lsadm 用户上下文中正常启动。
3、若系统启用 SELinux,执行 setsebool -P httpd_can_network_connect 1 允许 Web 服务发起网络连接(用于 socket 通信)。











