Apache故障排除技巧

尝试消除问题的工具

您安装了LAMP服务器多少次才发现Apache似乎不想正常运行?还是安装新模块只是为了让Apache尝试将页面下载为文件,而不是将其显示在屏幕上?

任何Web服务器安装都有十一万个错误。从全新安装到运行了很长时间的安装,您都不知道何时会导致Web服务器误入歧途。当确实发生这种情况时,很高兴知道通常适用Occam的Razor。

在本教程中,您将找到一些建议,这些建议将帮助您解决Apache Web服务器中可能出现的一些较常见的问题。

您的服务器确实在运行吗?

信不信由你,这已经发生了很多管理员。您将服务器关闭,进行了一些维护,当您检查服务器时,您会遇到错误。自然,您要做的第一件事就是检查一下 /etc/apache2/apache.conf 文件以确保您的语法正确。但这是完美的!这是怎么回事?您可能要检查的第一件事是确保服务器正在运行。但是,您不希望仅发出命令来启动服务器或重新加载服务器。而是发出命令:

sudo /etc/init.d/apache2状态

应该返回如下内容:

* apache正在运行(pid 9751)。

如果不是,请使用以下任一方式启动服务器:

sudo /etc/init.d/apache2开始

要么

sudo apache2ctl开始

注意:如果您使用的是Fedora,SuSE或Mandriva等发行版,则需要先 它的 给root用户,并使用以下命令发出上述命令 须藤

它没有运行,也不会启动

您只是更改了Apache配置文件吗?更改正确吗?如果不确定,可以使用 apache2ctl 命令以检查配置文件的语法。这是通过以下命令完成的:

须藤apache2ctl配置文本

上面的命令应报告:

语法确定

如果未通过,您将获得指向配置文件中错误的信息。

Apache希望下载.php文件!

这是另一个常见问题。在Web服务器(例如Drupal)上添加新工具时,如果正确设置了配置文件,则可能不会显示任何.php文件。相反,任何查看.php文件的尝试都会让您的浏览器尝试下载该文件。为什么是这样?必须告知Apache要显示某些扩展名,而不是下载它们。这是从Apache配置文件中完成的。打开该文件(在Ubuntu服务器中,该文件为/etc/apache2/apache2.conf),然后首先查找以下行:

DirectoryIndex index.html

如果该文件不包括 index.php 几乎所有使用php的网站都将变得无用。

寻找的第二行是:

AddHandler应用程序/ x-httpd-php .php

如果找到此行并将其注释掉,请确保通过删除'#'字符取消注释。如果不存在,请将其添加到配置文件的底部。

而且,一如既往,当您更改配置文件时,请重新启动Apache。

知道在哪里寻找问题

最后,至关重要的是,当上述情况不能帮助您时,您必须知道该首先转向何处。每当Apache出现问题(Occam的Razor不适用于Apache)时,我首先关注的是日志文件。

如果你看 / var / log / apache2 您至少会找到以下文件:

  • access.log:跟踪与服务器的任何连接。
  • error.log:跟踪Apache发生的任何错误。
  • other_vhosts_access.log:未指定虚拟主机自己的日志文件时,这是虚拟主机将记录的位置。

当然,随着网站的发展,可用的日志文件也会随之发展。无论您在其中找到什么 / where /日志/ apache2 ,这是您遇到问题时应始终首先转向的地方。甚至在您使用Google之前。

最后的想法

现在,您应该能够处理Apache服务器的一些更常见的问题。而且,如果您的问题并不常见,那么您也知道该从哪里找到线索,这些线索将引导您走上正确的纠正道路。