这是我在这里的第一篇文章,希望我做的正确。
我出于学习目的在我的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。
所以为什么我不能同时使用两个路径访问同一文件?
让我们考虑第二个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á。
希望这会有所帮助。
我有同样的问题。 apache已经开始了。我停止apache并启动nginx:
sudo service apache2 stop
sudo service nginx start