Apache启动报错"Error : Apache Shutdown Unexpectedly"及PHP CLI运行mysqli函数未定义问题排查求助
Apache启动异常与PHP mysqli扩展问题的排查方案
一、Apache启动报错 Error : Apache Shutdown Unexpectedly 的排查思路
你遇到的这个问题确实棘手——日志完全为空,连排查方向都难找,不过结合你已经做的操作,咱们可以从这几个关键点再深挖:
- 优先校验配置文件语法
日志为空不代表配置没问题,Apache启动时如果配置语法出错,有时不会写入日志,但通过命令行启动能直接看到错误。找到你的Apache安装目录下的bin文件夹,打开命令行运行:
httpd.exe -t
这个命令会直接校验httpd.conf和引入的子配置文件(比如httpd-ssl.conf)的语法,输出具体的错误行和原因,比如指令拼写错误、文件路径无效,这是Apache静默崩溃最常见的诱因。
- 检查权限与依赖库
- 如果你用的是XAMPP这类集成环境,试试右键以管理员身份启动控制面板再启动Apache,有时候权限不足会导致服务无法初始化,甚至连日志都无法写入。
- 确认Apache依赖的VC++运行库是否完整,尤其是手动安装的Apache,不同版本对应不同的VC运行库,缺失或版本不匹配会直接导致启动崩溃。
- 排查SSL配置细节
你修改过SSL端口,要确认httpd-ssl.conf里的证书路径、SSL协议配置是否正确——比如证书文件不存在、SSLProtocol指令使用了已废弃的协议版本,都可能导致Apache启动时静默崩溃。
二、PHP内置服务器报错 Call to undefined function mysqli_init() 的解决办法
这个问题原因很明确,就是PHP未启用mysqli扩展,按以下步骤修复即可:
- 找到你的PHP安装目录下的
php.ini配置文件(如果是集成环境,比如XAMPP,路径在xampp/php目录下)。 - 打开
php.ini,搜索extension=mysqli(Windows环境可能是extension=mysqli.dll),把行首的分号;去掉,取消注释。 - 保存文件后,关闭当前运行的PHP内置服务器,重新执行你的启动命令:
php -S localhost:9210 -t cf-restaurant-online-master
- 验证扩展是否启用:在项目根目录创建
phpinfo.php文件,内容写<?php phpinfo(); ?>,访问http://localhost:9210/phpinfo.php,搜索“mysqli”,如果能看到相关配置说明扩展已启用成功。
内容的提问来源于stack exchange,提问作者user18800522
相关产品推荐
相关产品推荐

