希望有人能帮我解决一个服务器问题。最近,我们将组织内的 2 个机器升级到最新的 Apache。一个是主机器,另一个用于故障转移。主机器上的升级很顺利,但在故障转移机器上,Apache 启动失败,没有错误,没有输出或记录。两个机器的配置完全相同,所以发现这有点奇怪。
我重新安装了 Apache,并检查了配置,没有发现任何明显的错误。最后,我对每个包含的配置文件进行了语法检查,发现其中一个文件显然有语法错误。
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration
Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration
Invalid command 'GeoIPEnable', perhaps misspelled or defined by a module not included in the server configuration
我检查了三次,确认所有模块都已启用,但仍然失败。我在 Google 上搜索了这些错误的主题,但一直找不到解决方案。
我想知道是否有人曾经遇到过这样的问题并能指出解决方案。
提前感谢您的帮助。
附言:
服务器上的 Apache 相关版本。
ii apache2 2.2.3-4+etch10 Next generation, scalable, extendable web se
ii apache2-mpm-prefork 2.2.3-4+etch10 Traditional model for Apache HTTPD 2.1
ii apache2-utils 2.2.3-4+etch10 utility programs for webservers
ii apache2.2-common 2.2.3-4+etch10 Next generation, scalable, extendable web se
ii libapache2-mod-geoip 1.1.8-2 GeoIP support for apache2
ii libapache2-mod-php5 5.2.0+dfsg-8+etch15 server-side, HTML-embedded scripting languag
答案1
如果没有配置文件,就不可能发现错误,但配置中的某个地方存在一些简单的错误。简单来说,我的意思是配置文件中缺少 <Directory> 或 <VirtualHost> 标签之类的东西。这就是它抱怨的原因。例如,它看到:“Order denied,allow”脱离了上下文,并报告了有关“Order”的错误。“apache2ctl configtest”将输出行号和文件名,您可以使用它们来查明语法错误。