Zend服务器CE干扰Apache



我从在VirtualBox虚拟机上干净安装Fedora 15开始,并尝试安装Zend Server CE。为了安装,我将Zend repo添加到yum中,并运行:

sudo yum install zend-server-ce-php-5.3

装置本身似乎进行得很顺利。我在打开了浏览器http://localhost:10081/ZendServer按照指示。在点击许可证页面并输入管理员密码后,我得到了错误:

 Failed to access Web server. Please make sure that the Web server is running and listening to the correct port

"应用程序"、"规则管理"one_answers"管理"选项卡正常工作,但"监视器"one_answers"服务器设置"选项卡均显示上述错误。事实上,web服务器没有运行,但当我试图纠正时,我得到了另一个错误:

$ sudo service httpd start
[sudo] Password for XXXXX:
Starting httpd (via systemctl):  Job failed. See system logs and 'systemctl status' for details.
                                                           [FAILED]

关于它的价值(我猜不多),以下是消息所指的细节:

$ sudo tail /var/log/messages
....
Jan 17 17:24:18 M5 systemd[1]: httpd.service: control process exited, code=exited status=1
Jan 17 17:24:18 M5 systemd[1]: Unit httpd.service entered failed state.
$ systemctl status httpd.service
httpd.service - LSB: start and stop Apache HTTP Server
      Loaded: loaded (/etc/rc.d/init.d/httpd)
      Active: failed since Tue, 17 Jan 2012 17:24:18 -0500; 3min 44s ago
     Process: 19500 ExecStart=/etc/rc.d/init.d/httpd start (code=exited, status=1/FAILURE)
      CGroup: name=systemd:/system/httpd.service

诊断似乎没有多大帮助。我尝试过各种方法,比如在安装Zend Server CE之前安装并启动httpd,重新安装httpd(没有好处:卸载它也会导致Zend卸载)。httpd-config并没有导致问题,如下输出所示:

$ /usr/sbin/apachectl configtest
Syntax OK

这是一个已知的问题吗?我的下一步行动是什么?我是否开始在控制脚本中放入调试语句来查看失败的部分?我可以做到,但我希望有人已经解决了这个问题,能给我一个快速的解决方案。

我能够通过直接调用apachectl脚本而不是使用service:来获得有关问题原因的更好信息

$ sudo /usr/sbin/apachectl start
httpd: Syntax error on line 220 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/conf.d/zendserver_php.conf: Cannot load /usr/local/zend/lib/apache2/libphp5.so into server: /usr/local/zend/lib/apache2/libphp5.so: cannot enable executable stack as shared object requires: Permission denied

httpd.conf的语法检查没有发现这一点,因为它实际上不是语法错误,也不在httpd.conf中,而是在包含的zendserver_php.conf中。快速搜索显示,此错误是libphp5.so违反SELinux强制执行的约束之一的结果。默认情况下,在Fedora 15中启用SELinux。

我不想降低安全性,但这是我看到这个问题得到解决的唯一方法。所以我用命令暂时禁用了SELinux

$ sudo setenforce 0

我还编辑了/etc/selinux/config,并将SELINUX=enforced更改为SELINUX=disabled,这样SELinux在重新启动时将保持禁用状态。现在我的网络服务器启动时没有遇到任何问题:

[mike@M5 ~]$ sudo service httpd start
Starting httpd (via systemctl):                            [  OK  ]

我想Zend开发社区中有人正在研究这个共享库问题。在很多情况下,降低安全性是不可接受的。如果有人有更好的解决方案,我仍然想知道。

最新更新