访问localhost的Apache 2问题

时间:2014-05-10 17:13:25

标签: php apache ubuntu apache2 localhost

这是我在这里发表的第一篇文章,我希望我的方式正确。

我在我的ubuntu 14.04本地机器上安装了apache2用于学习目的,我的所有文件都在我的home public_html文件夹中。

当我尝试访问像localhost /〜{user} /test/index.php这样的网站时,一切正常,但是当我尝试使用localhost / home / {user} / public_html / test / index访问同一个站点时.php我收到以下错误:

  

在此服务器上找不到请求的网址/home/{user}/public_html/test/index.php。

     

localhost端口80上的Apache / 2.4.7(Ubuntu)服务器

我试图使用:

$echo dirname(__FILE__);

但它返回/ home / {user} / public_html / test。

那么为什么我不能用两个路径访问同一个文件呢?

2 个答案:

答案 0 :(得分:1)

让我们考虑第二个网址:

http://localhost**/home/user/test/index.php**

如果查看Apache的配置,您会注意到有一个名为“DocumentRoot”的指令。该指令指定apache将URL中的初始“/”映射到。

的位置

所以,假设DocumentRoot设置为/ var / www / htdocs。当你请求路径/home/user/test/index.php时,它会寻找.... /var/www/htdocs/home/user/test/index.php,我假设没有存在。见DocumentRoot

好的,为什么第一个有效呢?因为Apache的UserDir模块。这个小模块检查链接的“/〜user/test/index.php”部分。代字号(〜)就是它:)。然后它将/ ~user /映射到/ home / user /,因此Apache将在/home/user/test/index.php中查找该文件。瞧。

希望这有帮助。

答案 1 :(得分:1)

我有同样的问题。 apache已经开始了。我停止apache并启动nginx:

sudo service apache2 stop

sudo service nginx start