apache2 在没有 PHP 的情况下可以正常工作,但使用 php 时则不行

apache2 在没有 PHP 的情况下可以正常工作,但使用 php 时则不行

我已经删除了所有内容,并重新安装了 apache 2,并且它可以正常工作。

但是如果我安装 libapache2-mod-php5 那么 apache 将停止工作。

如果我再次删除 libapache2 ... 那么 apache 再次开始工作

我应该怎么办

Ubuntu 9.10

这是 apache 错误日志文件中的错误

PHP Warning:  [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.6-3ubuntu4.4. Rebuild it for your PHP version (5.2.10-2ubuntu6.4) or download precompiled binaries.\n in Unknown on line 0
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0

答案1

apache2 启动失败了吗?你安装了 eaccelerator 吗?你最近升级了 php5 吗?如果是的话,我可能知道你的问题的答案。

这一切都始于我通过 Webmin 升级 Ubuntu 服务器上的一些软件包。我认为其中一个软件包是 php5。

无论如何,看到我升级了与 Apache2 相关的软件包,我重新启动了 apache2 服务。然后我遇到了以下错误消息:

 1.
      Failed to start apache :
   2.

   3.
       * Starting web server apache2
   4.
      (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
   5.
      no listening sockets available, shutting down
   6.
      Unable to open logs
   7.
         ...fail!

因此看起来 apache2 无法启动,因为该地址已被使用。

我相信错误可能是从 Webmin 启动 apache2 导致的,因此我打开了一个控制台窗口,并尝试使用以下命令从命令行启动 apache2

 1.
      sudo /etc/init.d/apache2 restart

但是,apache2 仍然没有启动,并且显示了以下错误消息:

   1.
      * Restarting web server apache2
   2.
      httpd (no pid file) not running

然而,有点奇怪的是,当我运行 top 命令时,它显示 apache2 进程正在运行并且使用了 100% 的 CPU。

下一个要查看的地方是 Apache 的错误日志,位于

  1.
      /var/log/apache2/error.log

错误日志显示以下消息,表明eaccelerator可能与apache2无法启动的问题有关:

   1.
      PHP Warning:  [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.4-2ubuntu5.3. Rebuild it for your PHP version (5.2.4-2ubuntu5.4) or download precompiled binaries.\n in Unknown on line 0
   2.
      PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0

经过谷歌搜索,我发现 eAccelerator 无法工作,因为它没有针对我新升级的 php5 版本进行编译。

为了解决这个问题,或者至少确认问题是否出在 eaccelerator 上,我重命名了存储在

   1. /etc/php5/apache2/conf.d   to something else and then started apache2.

Apache 启动起来就像从来没有出现过任何问题一样。是 eaccelerator 阻止了 Apache 启动。

只要 eaccelerator 没有激活,Apache2 就可以工作。现在,如果我想继续使用 eaccelerator,我所需要做的就是重新编译 eaccelerator,以便它与我升级后的 php5 版本兼容。

答案2

尝试使用 php 启动 apache 时是否获得了一些日志输出?

可能的位置是 /var/log/messages、/var/log/syslog 和 /var/log/apache2/error.log

如果是,请将其添加到您的问题中。

相关内容