SELinux的原因是该问题.....
TException:错误:TSocket:无法连接到localhost:9160(Permission denied [13]) 要解决这个问题,你需要改变一个SELinux布尔值(它会在重新启动时自动存在)。您可能还想重新启动httpd以重置代理工作器,但这不是严格要求。
setsebool -P httpd_can_network_connect 1
或
(13)拒绝权限
错误13表示一个文件系统权限问题。也就是说,由于权限不正确,Apache被拒绝访问文件或目录。通常,这并不意味着Apache配置文件存在问题。
为了提供文件,Apache必须具有操作系统授予的适当权限来访问这些文件。特别是,httpd.conf中指定的用户或组必须能够读取将要提供的所有文件,并搜索包含这些文件的目录以及直至文件系统根目录的所有父目录。
对于不属于在httpd.conf中指定的用户或组的资源,类Unix系统的典型权限为普通文件为644 -rw-r-r--目录或CGI为755 drwxr-xrx脚本。您可能还需要在支持它们的操作系统上检查扩展权限(例如SELinux权限)。
一个例子
比方说,你访问一个类Unix系统上的文件/usr/local/apache2/htdocs/foo/bar.html时收到Permission denied错误。
首先检查该文件上的现有权限:
CD的/ usr /本地/ Apache2的/ htdocs中/富 ls -l命令bar.htm
如果有必要解决这些问题:
搭配chmod 644 bar.html
然后对目录和每个父目录(/ usr/local/apache2/htdocs/foo,/ usr/local/apache2/htdocs,/ usr/local/apache2,/ usr/local ,/ usr):
ls -la chmod + x。 cd ..
重复直到根
在某些系统上,该实用程序那枚可以用来帮助通过列出的权限,沿路径的每个组件找到权限问题:
对虾-m在/ usr /本地/apache2/htdocs/foo/bar.html
如果所有标准权限都正确,并且仍然收到权限被拒绝错误,则应检查扩展权限。例如,您可以使用setenforce 0命令关闭SELinux并检查问题是否消失。如果是这样,ls -alZ可以用来查看SELinux权限和chcon来修复它们。
在极少数情况下,这可能是由其他问题引起的,例如apache2.conf文件中其他位置的文件权限问题。例如,WSGIScriptAlias指令不映射到实际文件。错误消息可能不准确,哪些文件不可读。
即使“只是测试服务器”,也不要将文件或目录设置为模式777,即使是“仅测试”。测试服务器的目的是在安全的环境中正确地做事,而不是为了避免做错事。它会告诉你的是如果问题出在实际存在的文件上。
应该去serverfault。 – 2009-08-04 03:21:58
直到你提到它才知道= =)我想我会试试看。为什么他们保留两个(也许更多?)网站呢?集中这些类别不是更好吗? – Dave 2009-08-04 03:50:02
@Dave:stackoverflow.com用于编程问题; serverfault.com用于sysadmin/server问题; superuser.com是针对一般“高级用户”和其他与计算机有关的其他问题。我想,帮助人们专注于他们的专业领域。 – Josh 2009-08-04 13:47:52