2009-05-24 100 views
0

我正在使用Apache的默认安装操作OS X.出于某种原因,当我运行不带“sudo”的“apachectl”命令时,我得到“没有可用的套接字/无法打开日志。”我猜这是一个许可的事情,有人可以帮我解决吗?我使用的是Apache 2.2。为什么运行“apachectl -k start”不起作用,但“sudo apachectl -k start”呢?

此外,侧面的问题,其中的Apache脚本文件,基本上是“执行”的Linux执行?我试图将我的服务器与Aptana Studio进行整合,并且它需要Apache安装的路径。我知道在Windows中,这将是“C:\路径\到\ httpd.exe”,但我不知道这是如何工作在Linux中。

回答

6

服务器是否在端口80上侦听? (通常)只允许root打开1024以下的端口。因此需要sudo

当你can see,很多人想知道如何解决这个问题。一种可能的解决方案是在您的路由器上执行端口转发。 (我假设你在路由器后面......)。然后,端口80上的输入连接可以被转发到例如端口8080.因此,只有本地需要连接到端口8080.(可能有更优雅的解决方案...别人会张贴它们。)

+0

有意思,所以最好的解决方法是什么?我喜欢不必输入localhost:8080,但是与尝试授权我的帐户以打开端口80相比,这是更好的选择吗?似乎这将是一个普遍问题,只是想知道人们是如何解决它的。 – Bialecki 2009-05-24 20:54:32

0

我认为一般(在OS X和Linux上 - 我是不知道您指的是哪一个)httpd二进制文件位于:/ usr/sbin/httpd

如果您需要能够重新启动Apache,并且您不能以root身份执行操作(无论出于何种原因..),那么你可能需要解决一个非“知名”港口。

0

尝试这种

(用PHP) $ A =了shell_exec( '须藤-u根-S /etc/init.d/apache2重启< /家庭/ $用户/密码文件');

密码应该存储在密码文件中

+0

我不确定这一点 – Rinu 2010-02-17 04:19:11

相关问题