OSX 服务器:apache2 正在运行,但“加载页面有问题”
Posted
技术标签:
【中文标题】OSX 服务器:apache2 正在运行,但“加载页面有问题”【英文标题】:OSX Server: apache2 running but “Problem loading page” 【发布时间】:2010-12-20 11:44:48 【问题描述】:我已经安装了 OSX Server 10.6,安装了所有更新,启动了正在运行的 apache2:
sudo apachectl graceful
我在 /var/log/apache2/errorlog 中看到
[Fri Dec 17 10:11:49 2010] [notice] Apache/2.2.15 (Unix) configured -- resuming normal operations
还有
ps -ef | grep httpd
显示了几个过程:
0 49388 1 0 0:00.05 ?? 0:00.07 /usr/sbin/httpd -D FOREGROUND
70 49389 49388 0 0:00.00 ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND
70 49390 49388 0 0:00.00 ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND
70 49391 49388 0 0:00.00 ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND
70 49392 49388 0 0:00.00 ?? 0:00.00 /usr/sbin/httpd -D FOREGROUND
...
在 httpd.conf 中我编辑了 DocumentRoot:
ServerName bioinfo.mni.fh-giessen.de:80
DocumentRoot "/Volumes/ServerHD2/Web_Documents"
ErrorLog "/var/log/apache2/error_log"
<Directory "/Volumes/ServerHD2/Web_Documents">
Order Allow,Deny
Allow from All
</Directory>
语法没问题:
apachectl configtest
Syntax OK
然而,我在http://bioinfo.mni.fh-giessen.de 收到超时:
Problem loading page
有什么线索吗?
【问题讨论】:
您应该获得每个失败请求的错误日志条目。你确定没有吗?服务器在该 IP 下是否真的可以访问? /var/log/apache2/error_log 或 /var/log/apache2/access_log 中没有失败的请求条目。我可以通过 ssh 登录。 【参考方案1】:您确定您编辑了正确的文件吗? OS X Server 有一种不符合标准的方式。实际的配置条目不在 /etc/httpd/httpd.conf 中,而是在 /etc/apache2/sites 的子目录中。看看这个FAQ。
我建议使用 Server Admin 实用程序来设置服务器。这将比尝试手动正确配置要容易和快捷得多。一旦站点启动并运行,您可以随时添加或更改规则。
【讨论】:
另外,我也建议从那里启动 apache2,而不是通过运行 sudo apachectl。管理工具会记住您的设置,并会在每次重启后自动启动服务。【参考方案2】:几天内无法直接访问本地 GUI,也无法通过远程桌面进行访问。我现在唯一的方法是 ssh,但我很乐意在几天后试用 Server Admin 实用程序。现在我仅限于命令行。是的,我同时编辑了 /etc/apache2/httpd.conf 和 /etc/apache2/sites/0000_any_80_.conf,但无济于事。是
sudo serveradmin fullstatus web
无论如何都是有益的:
web:readWriteSettingsVersion = 1
web:totalKBytes = 0
web:emailRulesRunning = no
web:boundToKerberos = yes
web:teamsRunning = yes
web:postfixRunning = no
web:servicePortsRestrictionInfo = _empty_array
web:health = _empty_dictionary
web:currentThroughput = 0
web:passwordResetRunning = no
web:ApacheMode = 2
web:statusMessage = ""
web:apacheVersion = "Unknown"
web:state = "RUNNING"
web:setStateVersion = 1
web:apacheState = "RUNNING"
web:proxyState = "STOPPED"
web:htCacheCleanRunning = no
web:calendarRunning = yes
web:servicePortsAreRestricted = "YES"
web:currentRequestsBy10 = 0
web:logPaths:logPathsArray = _empty_array
web:totalRequests = 0
web:startedTime = ""
?
【讨论】:
似乎无法通过防火墙,因为 web:totalRequests = 0。您确定端口 80 已打开并正确映射吗? 好点。我在 /etc/ipfilter/ipfw.conf 中添加了“12324 允许从任意到任意 80 英寸的 tcp”,但“sudo ipfw show”没有显示 /etc/ipfilter/ipfw.conf 中的任何规则。我如何考虑这些规则?感谢您的帮助。 好的,这似乎是一个已知的错误:除了 /etc/ipfilter/ipfw.conf 中描述的以外,此文件中的规则在重新启动后不会被考虑。但是,可以通过命令行中的“sudo ipfw add...”来实施其他规则。现在我至少可以访问了,尽管必须调整文件权限。再次感谢,非常感谢。 不客气,没问题 :) 一定要在运行时发布,这样其他人也可以受益!以上是关于OSX 服务器:apache2 正在运行,但“加载页面有问题”的主要内容,如果未能解决你的问题,请参考以下文章
OSX + Apache2 + httpd.conf + hosts + .htaccess = 不工作
Xampp localhost 加载但 XAMPP 的 Apache 无法启动,而另一个网络服务器正在使用 OSX 10.8.4 上的端口 80