大家好, 情况是这样的:
我在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 于 2005-11-10 00:35 编辑 ]
linuxphpmysqlc 回复于:2005-11-08 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 于 2005-11-10 00:31 编辑 ]
HonestQiao 回复于:2005-11-08 10:26:24
http://forums.fedoraforum.org/showthread.php?t=59163
linuxphpmysqlc 回复于:2005-11-08 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
我做了许多尝试,但还是没有成功.请大家多帮帮忙.
HonestQiao 回复于:2005-11-08 17:10:27
chmod -R 777 /usr/local/apache2/htdocs
然后测试看看
linuxphpmysqlc 回复于:2005-11-09 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 于 2005-11-9 13:49 编辑 ]
love100 回复于:2005-11-09 13:52:40
你在编译PHP时:
cp libs/libphp5.so /usr/local/apache/libexec/libphp5.so
chmod 755 /usr/local/apache/libexec/libphp5.so
没有这一块吗?
HonestQiao 回复于:2005-11-09 14:27:28
引用:原帖由 linuxphpmysqlc 于 2005-11-9 01:43 发表
非常感谢您的帮助.现在问题已经解决了.
以后当我看到 Permission denied 错误信息时,会首先考虑权限问题.
可是我还有一个不小的疑问需要您的解答:
我在 /etc/rc.d/rc.local 文件中写入
/usr/local/apache ...
rc.local写入
source 启动指令
看看如何
linuxphpmysqlc 回复于:2005-11-09 17:45:51
引用:原帖由 love100 于 2005-11-9 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
无法做到开机自动启动. 您遇到过这种情况吗?
linuxphpmysqlc 回复于:2005-11-09 18:05:00
引用:原帖由 HonestQiao 于 2005-11-9 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 于 2005-11-10 00:15 编辑 ]
|