Apache2.4无法启动和PHP没有加载扩展到的解决方法
作者:互联网
Apache2.4无法启动和PHP没有加载扩展到的解决方法
● Apache2.4无法启动
●● 症状:
双击 httpd.exe 正常,但是以服务方式无法启动,报错如下
> net start apache2.4 Apache2.4 服务正在启动 . Apache2.4 服务无法启动。 发生服务特定错误: 1. 请键入 NET HELPMSG 3547 以获得更多的帮助。
●● 解决过程
查看 apache2.4\logs\error.log 只提示 Apache2.4 收到一个 Received shutdown signal ,再无任何可用信息。
由于以服务方式启动,windows一定有日志记录,于是打开 ”事件管理器“ ,确实看到“错误”记录
Apache2.4 服务由于下列服务特定错误而终止:
函数不正确。
The Apache service named reported the following error:
>>> httpd.exe: Syntax error on line 78 of D:/WEBSERV/Apache24/conf/httpd.conf:
Cannot load modules/mod_perl.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3 .
于是 在 httpd.conf 中注销了 mod_perl
# LoadModule perl_module modules/mod_perl.so
net stop Apache2.4 sc delete Apache2.4 D:\WEBSERV\Apache24\bin\httpd -k install net start Apache2.4
Apache2.4 启动成功。
●● 总结
1. 以上报错是由于APACHE找不到相关模块的DLL
比如没有安装对应的VC库,或者是模块专用的DLL文件没有加载,这个DLL文件一般放置于Apache24/bin 目录,
需要把 perl 加载到系统 path 环境变量中,这样 MOD_perl 就能找到相应的 dll 了
2. Apache2.4 无法启动听说还有可能是由于 80 端口被占用,启用了 LMHOSTS 等原因
端口是否占用 netstat -ano|findstr "80"
在 INTERNET 设置中,将启用LMHOSTS前面的对号给去掉
●当解决了无法启动 Apache2.4 的问题之后,PHP又出了问题,真是按下葫芦浮起瓢。
●● 症状:
在运行一个脚本时报错
Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
●● 解决过程
这明显是openssl的问题,查看 phpinfo() 之后,发现没有加载 OPENSSL扩展
首先 php.ini是开启了OPENSSL的 , 用 php -m 指令查看确实有加载OPENSSL
那问题来了, 在Apache2.4和php的关联设置中,导致找不到PHp的扩展模块或者模块报错没有被加载
1. 相关的DLL文件没有加载
在php目录拷贝相关的 DLL 文件到 Apache24\bin\ 目录,
然后在 httpd.conf 或者相关的Apache的的配置文件中加入 LoadFile "D:\WEBSERV\Apache24\libssh2.dll
上面的这个DLL位于 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
2. php.ini的 ext 指向错误,导致一些扩展没有加载。
如果php单独可以使用,但是关联到APACHE中就找不到扩展模块,一般是由于 php.ini的 ext和 Apache中配置的ext参数不统一导致的。
本次在 php.ini中重新配置了ext后,重启一切正常。
● 附带Windows事件查看器的应用
打开 控制面板\所有控制面板项\管理工具\事件查看器
或者 按下 win+r 的运行对话框中输入 eventvwr.msc 按回车键打开事件查看器
在 事件查看器\Windows 日志\应用程序 中的最上面找到“错误”信息,如果正在调试Apache ,这个错误就是它的
为了醒目,按下最右侧的“清除日志”,把所有的日志都清除了,然后再次打开 事件查看器,当前应用程序的”错误“ 更醒目。
标签:httpd,php,Apache2.4,DLL,perl,PHP,加载 来源: https://www.cnblogs.com/yisuo/p/15860037.html