加载php模块后后,linux apache php模块不能启动。代码 LoadModule php5_module C:\php5\php5linux apache php模块2_2.dll

apache2.4+php5.5 无法启动解决方法
最近升级了apache和php 使用apache2.4,php5.5.7版本,导致apache无法启动 报the requested& operation has failed!错误
通过查找总结一些经验。
在配置中还遇到一个奇怪的问题就是我的系统是win7 64位的使用php5.5 64位版的竟然apache2.4一直都没有启动
发现apache v11版本的使用的是32位 而php5.5使用的是64位导致apache一直启动不了。
Apache/PHP 无法启动分两种情况:
1.、Apache无法启动,没加载php也无法启动
2、Apache可以启动,但加载php后无法启动
第一种情况多数是Apache配置问题,或者80端口被占用
使用Apache的配置检查:
C:\&D:\Apache2.2\bin\httpd.exe -t
根据错误提示,纠正错误。
如果是80端口占用,这个在Windows机器比较常见,经常被IIS抢占。
注销IIS服务:
iisreset /stop
iisreset /disable
sc stop w3svc
sc delete w3svc
如果不是IIS,可以使用命令杀掉强占80端口的进程:
# 查找占用80端口的进程id
netstat -ano|find &:80&
# 假设该进程id为2013,查看进程名称:
tasklist /fi &pid eq 2013&
# 杀掉该进程命令
taskkill /f /pid 2013
第二种多数是PHP编译器的问题:
查看Apache错误日志,有类似下面这些内容:
httpd.exe: Syntax error on line 63 of D:/Apache2.2/conf/httpd.conf: Cannot load D:/php/php5apache2_4.dll into server: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
php5.5使用的编译器是vc11,php5.4和php5.3的是vc9,php5.2是vc6。同时还要注意是x86版本,还是x64版本。目前只有php5.5提供x64版本,其他都只有x86版本。
apache.org下载的Apache都是vc6版本,否则就根据不同文件说明安装不同的运行库。
vc11运行库x86/x64版本:/en-us/download/details.aspx?id=30679
vc10运行库x86版本:/en-us/download/details.aspx?id=5555
vc10运行库x64版本:/en-us/download/details.aspx?id=14632
vc9运行库x86版本:/en-us/download/details.aspx?id=5582
vc9运行库x64版本:/en-us/download/details.aspx?id=15336
如果不清楚你的情况,可以安装全部运行库,再也不用为这个问题担忧了。
如果Apache/PHP还无法启动,那最可能是php5_module模块的问题:
1、Apache2.0对应的PHP模块为 php5apache2.dll
2、Apache2.2对应的PHP模块为 php5apache2_2.dll
3、Apache2.4对应的PHP模块为 php5apache2_4.dll
换句话说,根据php5_module模块,可以知道当前版本php支持哪种Apache
所以,Apache/PHP的搭配有以下几种情况:
1、php5.2支持Apache2.0和Apache2.2;
2、php5.3、php5.4同时支持Apache2.2和Apache2.4;
3、php5.5只支持Apache2.4
下面给出对应版本的apache2.4 和php5.5.7的下载地址
apache v11版本的32位下载地址
php v11版本的32位 下载地址
相关文章:文章作者: 转载请注明原文链接。
Windows下php5.16和apache2.2的安装问题今天在本本上安装WAMP环境(Windows+Apache2+MYSQL+PHP5),php本机上有个5.16的版本,那就用它吧。apache则是去官方下载了最新版apache_2.2.8-win32-x86-no_ssl.msi。所有软件都安装在c:\www目录下。安装完后,apache测试页面正常。然后在httpd.conf中加入php的配置参数,# For PHP 5 do something like this:LoadModule php5_module &c:/www/php5/php5apache2.dll&AddType application/x-httpd-php .php# configure the path to php.iniPHPIniDir &C:/www/php5&重启Apache,居然提示:引用httpd.exe: Syntax error on line 486 of C:/www/apache2/conf/httpd.conf: Cannot load C:/www/php5/php5apache2.dll into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6开始以为自己安装有错,但试了多种方法均无效,只能借助于搜索引擎。查到一篇:原来是PHP5.1.x系列的压缩包里的php5apache2.dll只适用于apache2.0.*。我根据这位朋友提供的解决方案解决了这个问题,在这里转贴一下:)引用先下载 ,并解压,共有两个文件.里面有一个Windows Installer 3.1的升级补丁: WindowsInstaller-KB.exe还有一个压缩包,再解压则有下面三个文件:vcredist_x86.exephp5apache2.dllhttpd.exe.manifest步骤:1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)如果第三步出现错误,则安装Windows Installer 3.1的升级补丁,那么就可以完成第三步了。完成后去重启你的apache2.2试试吧.@@UPDATE:看了下面这位朋友的回复,挺意看了我机子上的版本,没有php5apache2_2.dll这个文件。然后去下载了最新的php-5.2.6-Win32.zip,里面才有php5apache2_2.dll这个文件。没去试,应该就是用LoadModule php5_module C:/php5/php5apache2_2.dll了,这下方便多了:)
相关日志
引用功能被关闭了。
关键是那个版本没有php5apache2_2.dll这个文件。[保留] **求助**Apache 2.0.55 无法加载 libphp5.so 模块 - ChinaUnix.net
[保留] **求助**Apache 2.0.55 无法加载 libphp5.so 模块
http://www.chinaunix.net 作者:&&发表于: 10:23:56
大家好,&情况是这样的:
我在FC4上装&httpd&2.0.55&时已经加了--enable-so&参数,并将它安装在&/usr/local/apache2目录下
安装完毕后,修改了httpd.conf里的&User&nobody&Group&nobody&&(FC4上自带这个用户和组)
测试&http://localhost&&&一切正常,可以解析静态页面.
装php5.05时,加了--with-apxs2=/usr/local/apache2/bin/apxs
安装完毕后,查看&/usr/local/apache2/modules/libphp5.so&&&&模块已经存在了
修改&httpd.conf&&
LoadModule&&php5_module&&modules/libphp5.so&
AddType&application/x-httpd-php&&.php
我想,我该做的都做了.
但启动&apachectl&时总出错,说httpd.conf的232行有语法错误.libphp5.so模块无法载入.
错误信息如下:
Syntax&error&on&line&232&of&/usr/local/apache2/conf/httpd.conf:
Can&not&load&/usr/local/apache2/modules/libphp5.so&&into&server:
/usr/local/apache2/modules/libphp5.so:
Can't&&restore&&segment&prot&after&reloc&:&&Permission&&denied
就是这样,大家遇到过这种情况吗?&我对apache不是很熟.还请大家多帮帮忙.
谢谢.
*************************************************************************
此贴已结,解决方法见楼下.[&本帖最后由&linuxphpmysqlc&于&&00:35&编辑&]
& 回复于: 02:52:06
不好意思,我先占个位子.
等问题彻底解决之后,我会在这里记录出错的原因与最终解决的办法.
*********************************************************************
结帖!!!
问题:&apache不能加载外挂php模块.&&&apache加载外挂php模块后不能开机自启.
解决:这是由SELinux的安全策略配置不当引起的.在Fedora&Core&的官方网站上有相关的Apache/SELinux的策略调整文档.如果嫌麻烦,可以直接修改/etc/selinux/config&将SELinux禁用.
问题:&php模块成功加载后,apache解析php页面出错.
解决:&这是因为&htdocs&目录及其下文件的文件属性设置不当引起的.
&&&&&&&&#chmod&-R&755&/usr/local/apache2/htdocs
*********************************************************************
再次感谢两位斑竹的热心帮助.:em02::em02::em02:[&本帖最后由&linuxphpmysqlc&于&&00:31&编辑&]
& 回复于: 10:26:24
http://forums.fedoraforum.org/showthread.php?t=59163
& 回复于: 16:09:50
谢谢您,我已经研究了那个帖子,并且使用下面的命令解决了apache2不能加载php模块的问题.
#chcon&&/usr/local/apache2/modules/libphp5.so&&-t&shlib_t
现在,apache2可以成功的启动,&可惜还是不能解析php页面.
我在安装php时的&configure&参数为:&&&&
#./configure&&--prefix=/usr/local/php&&
&--with-apxs2=/usr/local/apache2/bin/apxs&&
&--with-mysql=/usr/local/mysql&&
&--with-config-file-path=/usr/local/php
我在apache2的httpd.conf&里面添加了:&&AddType&application/x-httpd-php&&.php
我已经将&php.ini-dist&复制到&/usr/local/php&目录下面&并改名为&php.ini&
我在/usr/local/apache2/htdocs&目录下写了个&test.php&内容为&:&&
&?php
phpinfo();
?&
本认为一切都会顺利的结束,但是访问&http://localhost/test.php&&会出错.
出错信息如下:
Warning:&Unknown:&failed&to&open&stream&:&Permission&denied&in&Unknow&on&line&0
Warning:&Unknown:&Failed&opening&'/usr/local/apache2/htdocs/test.php'&for&inclusion&(&include_path='.:/usr/local/php/lib/php'&)&in&Unknown&on&line&0
我做了许多尝试,但还是没有成功.请大家多帮帮忙.
& 回复于: 17:10:27
chmod&-R&777&&/usr/local/apache2/htdocs
然后测试看看
& 回复于: 01:43:27
非常感谢您的帮助.现在问题已经解决了.
以后当我看到&Permission&denied&&错误信息时,会首先考虑权限问题.
可是我还有一个不小的疑问需要您的解答:
我在&/etc/rc.d/rc.local&&文件中写入
/usr/local/apache2/bin/apachectl&&start&
并不能做到开机自动运行&apache
改成&/usr/local/apache2/bin/httpd&-k&start&&也不行&
在/etc/profile中改好环境变量后,&在/etc/rc.d/rc.local&中写&apachectl&start&&也不行
但我登陆后,输入命令:
#source&&/etc/rc.d/rc.local
apache马上就启动了,这说明我在rc.local中的内容没写错.
而且,我的MySQL&与&Tomcat&就是通过修改&/etc/rc.d/rc.local&实现开机自动启动的.
这说明&rc.local&脚本在开机时确实运行了,可它就是无法在开机时解释&/usr/local/apache2/bin/apachectl&&start&&&&与&/usr/local/apache2/bin/httpd&-k&start&&等命令.&但登陆后source&却可以.
我查看/usr/local/apache2/bin&目录及其下的文件&权限均为&755&&,&everyone都可以读取和运行.我想apache不能自动运行,应该跟权限没关系.
请问,您遇到过这种情况吗?[&本帖最后由&linuxphpmysqlc&于&&13:49&编辑&]
& 回复于: 13:52:40
你在编译PHP时:
cp&libs/libphp5.so&/usr/local/apache/libexec/libphp5.so
chmod&755&/usr/local/apache/libexec/libphp5.so
没有这一块吗?
& 回复于: 14:27:28
引用:原帖由&linuxphpmysqlc&于&&01:43&发表
非常感谢您的帮助.现在问题已经解决了.
以后当我看到&Permission&denied&&错误信息时,会首先考虑权限问题.
可是我还有一个不小的疑问需要您的解答:
我在&/etc/rc.d/rc.local&&文件中写入
/usr/local/apache&...&
rc.local写入
source&&启动指令
& 回复于: 17:45:51
引用:原帖由&love100&于&&13:52&发表
你在编译PHP时:
cp&libs/libphp5.so&/usr/local/apache/libexec/libphp5.so
chmod&755&/usr/local/apache/libexec/libphp5.so
没有这一块吗?&
谢谢您的关注.我在编译php时用了--with-apxs2=/usr/local/apache2/bin/apxs&&参数.
libphp5.so&自动添加到&/usr/local/apache2/modules目录中去了,&libphp5.so&的文件属性是&755.
&
我使用&#chcon&&/usr/local/apache2/modules/libphp5.so&&-t&shlib_t
后模块不能加载的问题解决了,这个问题应该只在FC4上有.
现在的问题是在/etc/rc.d/rc.local&中写&/usr/local/apache2/bin/apachectl&&start&
无法做到开机自动启动.&您遇到过这种情况吗?
& 回复于: 18:05:00
引用:原帖由&HonestQiao&于&&14:27&发表
rc.local写入
source&&启动指令
我分析了一下启动日志,原来是SELinux在作怪.
通过修改&/etc/selinux/config&,将SELinux禁用后,一切问题都解决了.
包括apache不能加载libphp5.so也是由SELinux引起的.
说白了,还是权限的问题.我准备认真研究一下SELinux的安全策略.
谢谢两位斑竹的热心帮助.&&这个帖子可以结了.
:em02::em02::em02::em02::em02::em02::em02::em02::em02:[&本帖最后由&linuxphpmysqlc&于&&00:15&编辑&]
& 回复于: 17:29:33
& 回复于: 10:23:56
[color=Red]SLINUX原因,一直想不关闭SELINUX来解决[/color]
&failed&to&map&segment&from&shared&object
[root@mediawiki&log]#&service&httpd&restart
Stopping&httpd:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[FAILED]
Starting&httpd:&Syntax&error&on&line&191&of&/etc/httpd/conf/httpd.conf:
Cannot&load&/usr/lib/httpd/modules/libphp5.so&into&server:&libgd.so.2:&failed&to&map&segment&from&shared&object:&Permission&denied
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[FAILED]
引用:
#tail&messages&
Oct&&9&08:58:22&mediawiki&httpd:&httpd&shutdown&failed
Oct&&9&08:58:22&mediawiki&kernel:&audit(.879:3):&avc:&&denied&&{&execute&}&for&&pid=31077&comm="httpd"&name="libgd.so.2.0.0"&dev=dm-0&ino=180696&scontext=root:system_r:httpd_t&tcontext=root:object_r:usr_t&tclass=file
Oct&&9&08:58:22&mediawiki&httpd:&Syntax&error&on&line&191&of&/etc/httpd/conf/httpd.conf:
Oct&&9&08:58:22&mediawiki&httpd:&Cannot&load&/usr/lib/httpd/modules/libphp5.so&into&server:&libgd.so.2:&failed&to&map&segment&from&shared&object:&Permission&denied
引用:
PHP5
&&&&&&&&&#&tar&-jxvf&php-5.2.3.tar.bz2&
&&&&&&&&&#&cd&php-5.2.3
&&&&&&&&&#./configure&--prefix=/usr/local/php&--with-apxs2=/usr/sbin/apxs&--with-libxml-dir=/usr/local/libxml2&&--with-gd=/usr/local/gd2&--enable-mbstring&--with-mysql=/usr/bin/mysql&&--with-mcrypt=/usr/local/libmcrypt&
&&&&&&&&&#make&
&&&&&&&&&#make&install&
apache&
&&&&yum&install&httpd&httpd-devel
引用:
#chcon&&/usr/lib/httpd/modules/libphp5.so&-t&shlib_t
#&ls&-alZ&/usr/lib/httpd/modules/libphp5.so
-rwxr-xr-x&&root&&&&&root&&&&&root:object_r:shlib_t&&&&&&&&&&&&/usr/lib/httpd/modules/libphp5.so
引用:
#&service&httpd&restart
Stopping&httpd:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[FAILED]
Starting&httpd:&Syntax&error&on&line&191&of&/etc/httpd/conf/httpd.conf:
Cannot&load&/usr/lib/httpd/modules/libphp5.so&into&server:&libgd.so.2:&failed&to&map&segment&from&shared&object:&Permission&denied
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[FAILED]&&&&&&&&&&
#&chcon&-R&-t&httpd_sys_content_t&/usr/lib/httpd/modules/*
#&ls&-alZ&/usr/lib/httpd/modules/&|grep&php
-rwxr-xr-x&&root&&&&&root&&&&&root:object_r:httpd_sys_content_t&libphp5.so[&本帖最后由&linuxpf&于&&10:32&编辑&]
原文链接:
转载请注明作者名及原文出处下次自动登录
现在的位置:
& 综合 & 正文
启动Apache时提示错误“Cannot load php5apache2_2.dll into server”
启动Apache时提示错误“Cannot load php5apache2_2.dll into server”
故障现象:
  在命令符方式下启动Apache时提示错误信息“Syntax error on line 122 of D:/Apache/conf/httpd.conf: Cannot load D:/PHP/php5apache2_2.dll into server”,导致Apache无法启动。
  Apache的配置文件D:/Apache/conf/httpd.conf第122行内容为:
  LoadModule php5_module D:/php/php5apache2_2.dll
  PHPIniDir "D:/php"
  注意:其中D:/PHP/php5apache2_2.dll是我安装php的相应路径。Apache为2.2.17版本,php为5.3.6版本。
出现错误的原因:
  在网上查到一位朋友遇到类似情况,并提示根据PHP的安装文件名称“php-5.3.6-Win32-VC9-x86.zip”得知该版本的PHP安装文件是由VC编译完成的,因此如需要运行或调用该PHP压缩包中的相关文件,则需要首先安装VC的运行时环境。如果你的机器没有安装有VC运行时环境,则Apache调用该PHP压缩包中的相关文件时会提示如上错误信息。
解决方法:
  在网上搜索“VC2008可再发行组件”或者是“VC2008运行库”,下载安装后即可解决此故障。
出现此错误的其他原因及解决方法:
  原因:由于apache版本的不同,对应的“php5apache2.dll”也不同,如果你加载了错误的“php5apache2.dll”,则会提示该错误信息。
  示例:假如你使用的是Apache2.2版的,则使用语句“LoadModule php5_module modules/php5apache2.dll”来加载PHP,就会出现该错误。这段代码的配置应该修改为“LoadModule php5_module modules/php5apache2_2.dll”或者“LoadModule php5_module "D:/php/php5apache2_2.dll"”。
  总结:
  Apache2.2 对应 php5apache2_2.dll
  Apache2.1 对应 php5apache2.dll
  Apache1 对应 php5apache.dll
  由于上述原因,假设是安装了Apache2.2又安装了PHP5.0那就要出错了,在安装Apache和PHP时应该选择版本相对应的来进行配置安装。
1. Apache 2.2
一路下一步安装即可。
2. PHP 5.3.6
官方目前只提供VC9编译的Thread Safe或Non Thread Safe版本。
作为开发使用,版本选择Thread Safe (window下一般开发环境用此版本即可,如果是以FastCGI来执行PHP时考虑到效率,需要采用None Thread Safe版本).
我习惯下载zip版本,即:php-5.3.6-Win32-VC9-x86.注意如果是在win2003/xp下运行php5.3 以上用vc9 编译的版本的话,有可能会遇到无法运行的情况,即双击php.exe 会弹出“由于应用程序配置不正确,应用程序未能启动”的问题,这是由于该版本的php采用vc9编译,而该win2003系统缺少运行库导致的,可以安装 ) 来保证运行。
问题:常见问题在配置apache里的httpd.conf 时 LoadModule php5_module 缺少 “php5apache2_2.dll” 的情况是因为下错了php版本,在Thread Safe版本下是具有php5apache2_2.dll的,而None Thread Safe版本 没有这个文件一般只用于fastcgi 所以不需要这个文件。
连结apache和php,修改apache的http.conf,新增下面的行:
&&&&推荐文章:
【上篇】【下篇】

我要回帖

更多关于 apache添加php模块 的文章

 

随机推荐