这是我在这里发表的第一篇文章,我希望我的方式正确。
我在我的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。
那么为什么我不能用两个路径访问同一个文件呢?
答案 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