Apache 2访问本地主机的问题

问题描述 投票:0回答:2

这是我在这里的第一篇文章,希望我做的正确。

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

[当我尝试访问localhost /〜{user} /test/index.php之类的站点时,一切正常,但是当我尝试使用localhost / home / {user} / public_html / test / index来访问同一站点时。 PHP的我得到以下错误:

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

位于本地主机端口80的Apache / 2.4.7(Ubuntu)服务器

我尝试使用:

$echo dirname(__FILE__);

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

所以为什么我不能同时使用两个路径访问同一文件?

php apache ubuntu apache2 localhost
2个回答
1
投票

让我们考虑第二个URL:

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中查找文件。 Voilá。

希望这会有所帮助。


0
投票

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

sudo service apache2 stop

sudo service nginx start
© www.soinside.com 2019 - 2024. All rights reserved.