欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

哪位大侠知道我的Apache2.4.3为什么启动报错Cannot load php5apache2_4.dll into server呢

程序员文章站 2022-05-24 10:00:29
...
我用的软件分别是:
httpd-2.4.3-win32.zip
php-5.4.9-Win32-VC9-x86.zip
php5apache2_4.dll-php-5.4-win32.zip中的PHP 5.4.9文件夹内的php5apache2_4.dll
配置参考http://deloz.net/1000000568.html这篇文章
还装了Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)补丁
问题是:启动Apache时,报Cannot load php5apache2_4.dll into server错
把httpd.conf文件中的LoadModule php5_module "d:/php/ext/php5apache2_4.dll"
加上#,Apache就能启动了,但php不能运行。

回复讨论(解决方案)

d:/php/ext/php5apache2_4.dll
真实存在吗?

这个 php5apache2_4.dll-php-5.4-win32.zip 是什么意思?

d:/php/ext/php5apache2_4.dll是真实存在的,php5apache2_4.dll-php-5.4-win32.zip是因为php现在不提供VC9版本的了,针对apache的一个dll,大概是这个意思。

刚才说错了php现在不提供VC6版本的了,版主帮我想想办法啊!

你应该到这里 http://windows.php.net/download/#php-5.4

在这个栏目下
VC9 x86 Thread Safe (2012-Nov-21 21:22:38)
Zip [22.32MB] 下载这个
sha1: 84aa190dc73605c22045e8e2f2281908478076e4

我就是在那个地方下载的啊,Zip [22.32MB]下载的文件名就是php-5.4.9-Win32-VC9-x86.zip。

前面 LoadFile php5ts.dll 了么?

没有,怎么Load的,我是按照上面的描述中的那个文章配置的,也不知道那个文章是不是正确的。

###################### PHP内容 开始 #############################
#设置PHPRC变量,以提供给PH5查找配置文件PHP.ini,就无需在跑到%SystemRoot%下去找php.ini了
SetEnv PHPRC "。。。/PHP5/"
PHPINIDir "。。。/PHP5/php.ini"

#加载php5ts.dll,这无论是apache还是IIS都必须以来的链接库
LoadFile "。。。/PHP5/php5ts.dll"

#加载php5的apache模块
LoadModule php5_module "。。。/PHP5/php5apache2_4.dll"

#为了兼容添加php3和php4的类型
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4


###################### PHP内容 结束 #############################

LoadFile "d:/php/php5ts.dll"(加了这句,重启了电脑还是起不来Apache)
LoadModule php5_module "d:/php/ext/php5apache2_4.dll"
PHPIniDir "d:/php/"

我还发现了一种写法起不来Apache
LoadFile "d:/php/php5ts.dll"
#LoadModule php5_module "d:/php/ext/php5apache2_4.dll"
#PHPIniDir "d:/php/"

我记忆中只用php自己的apache dll就行了,注意是ts版本就行
查一下你的php.ini有没有错误,先把不必要的dll先注释掉,逐个开启测试
(可以在DOS窗直接运行php,会提示你ini里面那些项目过时了)
另外有些模块dll是有关联的,mb好像要放在前面

都快忘光了,我基本就保存配置文件,重装也很方便,反正都是绿色的

好像是php5.3之前的版本都可以用php自己的apache dll,这之后官网就没有了VC6版本,用php自己的就不行了。现在测试的结构是Apache中的LoadFile命令无效,dll不管放在哪个盘的文件夹,都读取不到。

php-5.4.9-Win32-VC9-x86.zip 么有提供 php5apache2_4.dll
只提供了 php5apache2_2.dll 和 php5apache2_3.dll

搜索了一下 php5apache2_4.dll
感觉你是按这个来做的 http://www.cnblogs.com/cxybjfu/archive/2012/10/09/2716880.html
使用的是非官方的 apache 和 php5apache2_4.dll
自然是后果自负

文章中的表述有不少错误,说什么 使用VC9编译的PHP的同时,必须使用VC9编译的Apache

我就是用 VC6 的 apache 2.2 加 VC9 的php5.3、php5.4

终于apache2.4起来了,下载Microsoft Visual C++ 2008 Redistributable Package (x86)这个文件,地址http://www.microsoft.com/en-us/download/details.aspx?id=29。估计我是下错成Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)这个了。谢谢大家的帮助!

……
很无语,居然是这个问题,我装系统时就全装了各个版本的VC

官方下载的PHP怎么都是压缩包?没有安装的呀?我也遇到这位仁兄的问题,PHP里只有php5apache2_4.dll,没有php5apache2_2.dll。怎么也关联不起来。

先手动运行php目录下的php.exe文件,新版本由于需要vc的支持,如果没有安装会提示msvcr110.dll找不到,安装vc即可解决
安装vc11相关组件,请到 http://www.microsoft.com/zh-CN/download/details.aspx?id=30679 下载
没有报错后再去配置http.conf文件,加载php5apache2_4.dll(这个代表的是2.4版本的appache),如果是2.2的apache去加载2.4的支持文件,就会报错Cannot load php5apache2_4.dll into server
LoadModule php5_module "d:/php/php5apache2_4.dll"
PHPIniDir "d:/php/"
我是遇到这个问题,用了2.2的apache去加载2.4的文件,升级了apache到2.4后,问题解决
http://www.apachelounge.com/download/ apache2.4 版本下载地址