PHP模块需通过libphp.so或php8apache2_4.dll加载,检查存在性后配置LoadModule、SetHandler并验证phpinfo()中“Server API”字段。

确认 PHP 模块是否已安装并可用
Apache 本身不自带 PHP,必须通过 libphp.so(Unix/Linux)或 php8apache2_4.dll(Windows)这类模块加载。先检查模块是否存在:
- Linux:运行
ls /usr/lib/apache2/modules/ | grep php或find /usr -name "libphp*.so" 2>/dev/null - Windows:查看 Apache 的
modules/目录下是否有类似php8apache2_4.dll的文件(版本号需匹配你安装的 PHP) - 若找不到,说明 PHP 未以 Apache SAPI 方式安装——用
php -v看到cli不代表支持 Apache,得重装带--with-apxs2(Linux)或选中 “Apache 2.4 Handler”(Windows 安装向导)
在 httpd.conf 中加载 PHP 模块并设置处理器
仅靠 LoadModule 不够,还必须绑定文件扩展名与处理器。典型配置如下(路径和版本请按实际调整):
LoadModule php_module modules/libphp.so AddHandler php-script .php AddType application/x-httpd-php .phpSetHandler application/x-httpd-php
注意几个关键点:
-
LoadModule路径必须绝对正确,比如 macOS Homebrew 安装的 PHP 可能是/opt/homebrew/opt/php/lib/httpd/modules/libphp.so -
AddType和二者选其一即可,但后者更可靠(尤其在有多个扩展如.phtml时) - Apache 2.4+ 推荐用
SetHandler而非旧式AddHandler,避免被.htaccess覆盖 - 如果 PHP 是 FPM 模式(推荐生产环境),这里不该加载
libphp.so,而应配ProxyPassMatch到127.0.0.1:9000,这是完全不同的路径
验证 PHP 是否真正生效而非仅“不报错”
重启 Apache 后访问 info.php 文件,内容仅为 ,但重点看输出页顶部的 “Server API” 字段:
酷纬企业网站管理系统Kuwebs是酷纬信息开发的为企业网站提供解决方案而开发的营销型网站系统。在线留言模块、常见问题模块、友情链接模块。前台采用DIV+CSS,遵循SEO标准。 1.支持中文、英文两种版本,后台可以在不同的环境下编辑中英文。 3.程序和界面分离,提供通用的PHP标准语法字段供前台调用,可以为不同的页面设置不同的风格。 5.支持google地图生成、自定义标题、自定义关键词、自定义描
立即学习“PHP免费学习笔记(深入)”;
- 显示
Apache 2.0 Handler或Apache 2.4 Handler→ 模块模式成功 - 显示
FPM/FastCGI→ 实际走的是 PHP-FPM,libphp.so根本没起作用 - 页面空白但无错误?检查 Apache 错误日志:
tail -f /var/log/apache2/error.log(Linux)或logs/error.log(Windows),常见报错如Cannot load modules/libphp.so: undefined symbol: crypto_pkey_get_public表明 PHP 与 OpenSSL 版本冲突
Windows 下 apachectl restart 失败的典型原因
Windows 用户常卡在这步,不是配置写错,而是权限或依赖问题:
- Apache 服务账户(默认 Local System)无法读取 PHP 安装目录——把 PHP 目录加到系统
PATH,或改用绝对路径加载 DLL -
php8apache2_4.dll依赖的php8.dll找不到:把 PHP 根目录(含php8.dll)加入 Windows 系统环境变量PATH,然后重启命令行再试httpd -t - Apache 版本与 PHP DLL 不兼容:Apache 2.4.x 必须配
php8apache2_4.dll,配php8apache2_2.dll会静默失败
httpd -t 都可能通过,但请求进来就 500 或直接忽略 .php 后缀。










