Ubuntu 服务器从 10.04 升级到 12.04 后 Apache 无法运行

Ubuntu 服务器从 10.04 升级到 12.04 后 Apache 无法运行

由于 10.04 的支持即将终止,我刚刚将服务器从 Ubuntu 10.04 LTS 升级到 Ubuntu 12.04 LTS。升级过程很顺利;我之前已经用虚拟机测试过了。但是 Web 服务器不再工作了。

当我跑步时

sudo /etc/init.d/apache2 restart

它给

* Restarting web server apache2                                        [ OK ]

因此没有错误消息,但是输出ps ax没有显示 apache 实际运行的证据,同样,输出也netstat -tupln没有显示端口 80 上的任何内容。我实际上/etc/apache2从另一个正在运行的 Ubuntu 12.04 LTS 服务器复制了整个文件夹,以防其中一个配置文件出现问题,但这并没有解决问题。

有人知道为什么它不会发出错误消息,但实际上并没有运行吗?

我检查了错误日志,没有添加任何内容。输出/var/log/syslog

 Apr 28 16:28:37 ubuntu-server kernel: [ 9061.735298] apache2[13102]: segfault at 0 ip 00007fe46d8d7476 sp 00007ffd6f130ba8 error 4 in libc-2.15.so[7fe46d7a6000+1b4000]

答案1

我建议/var/log/syslog在重启 Apache2 时检查系统日志。这意味着打开一个终端窗口,您可以通过它syslog查看tail像这样:

sudo tail -f -n 10 /var/log/syslog

然后在另一个窗口中尝试重新启动 Apache。但是你的语法sudo /etc/init.d/apache2 restart似乎很笨拙,因为你可以直接使用service像这样:

sudo service apache2 restart

我还建议通过连续执行这两个命令来手动停止并重新启动它:

sudo service apache2 stop

sudo service apache2 start

Apache 的任何深层系统问题都应显示在 中syslog。如何调试?取决于您看到/阅读的内容。但我已经完成了大量从早期版本到 Ubuntu 12.04 LTS 的 Ubuntu 升级,没有任何问题。

更新:由于原始发帖者已发布了 的输出syslog,不妨对其进行评论。它表明在尝试启动 Apache 时发生了某种分段错误:

Apr 28 16:28:37 ubuntu-server kernel: [ 9061.735298] apache2[13102]: segfault at 0 ip 00007fe46d8d7476 sp 00007ffd6f130ba8 error 4 in libc-2.15.so[7fe46d7a6000+1b4000]

这类分段错误很难追踪。但根据我的经验,有几个主要原因可能导致这种情况:

  • 错误/损坏的 PHP 或 HTML 代码:首先,我怀疑情况并非如此,但我还是要提一下:我假设您正在使用 Apache 运行 PHP,但这也适用于 HTML。检查这一点的最佳方法是设置一个简单的index.php页面,看看会发生什么。但就像我说的,如果 Apache 在重新启动时崩溃,我怀疑情况并非如此,但这是一个想法。
  • 不兼容或损坏的 Apache2 配置或设置:您声明您正在使用另一个 Ubuntu 12.04 LTS 服务器的有效 Apache2 配置,但可能仍存在您忽略的配置问题。例如,目录/etc/apache2及其子目录的权限是否正确?如果您将它们复制过来,则在设置时始终存在忽略所有权和权限的风险,因此请务必仔细检查。
  • 损坏的 Apache2 模块:可能是连接到 Apache 的模块本身已损坏。如果您安装了以下任何程序APC(替代 PHP 缓存)我建议禁用它,甚至重新安装它。要禁用它,请打开/etc/php5/conf.d/apc.ini并注释掉带有extension=apc.so以下;内容的行:;extension=apc.so
  • Apache2 中存在一些问题:如果其他所有方法都失败了,请执行 a sudo apt-get purge apache2,然后通过 a 重新安装sudo apt-get install apache2,看看默认安装会发生什么。

如果所有这些仍然无法使 Apache2 进程恢复运行,我将检查其他系统服务,看看它们是否可以运行;它们也可能会在syslog.

此外,您没有说明此系统设置的深度或配置。但如果它根本不复杂(仅运行一些您熟悉配置的服务),那么最好放弃此安装并从头开始重新安装 Ubuntu 12.04 LTS。

我个人的服务器管理理念是严格控制,并备份该服务器特有的所有配置和核心文件。这样,如果事情变得太麻烦,我就会把有问题的服务器拆除,从头开始。

相关内容