1

我是 .php 和服务器以及所有这些疯狂(和 StackOverflow)的新手,但我已经下载了 Apache,并且我正在尝试将 PHP 代码文件夹符号链接到 Apache 根目录。我的 Apache 根目录是var/www/html,我的 PHP 代码文件夹是Documents/PHPStuff. 我重命名var/www/html为并在名为“html”var/www/html2的链接中创建了一个符号链接,认为如果我将符号链接重命名为 Apache 正在寻找的名称,那么它将起作用。var/www/Documents/PHPStuff

它没有。

当我尝试Documents/PHPStuff使用“localhost/helloworld2.php”在浏览器中访问名为“helloworld2.php”的测试文件时,出现 403 Forbidden 错误。

我一直在弄乱符号链接和 PHPStuff 目录中的权限,将它们更改为 777 之类的东西,但它没有用。我还通过将 httpd.conf 文件更改FollowSymlinks NoneFollowSymlinks All. 还没有任何工作,所以这是我最后的手段。

4

3 回答 3

1

尽量不要碰你的 http.conf。相反,从 conf.d 路径编辑文件。

要授予对您的主路径的访问权限,请编辑您的 /etc/http/conf.d/userdir.conf 以激活用户目录选项,例如:

<IfModule mod_userdir.c>
  #UserDir disabled
  UserDir public_html
</IfModule>

<Directory "/home/*/public_html">
  AllowOverride All
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  Require method GET POST OPTIONS
</Directory>

然后,重新启动你的 apache。

现在,您必须创建一个目录 /home/$USER/public_html 并在其中创建指向 ~/PHPStuff 的符号链接,例如

ln -s ~/PHPStuff ~/public_html/PHPStuff

您可以将 PHPStuff 移动到 ~/public_html/ ,而不是创建符号链接。

确保您的 homedir 有 711 权限,public_html 有 755 并且 PHPStuff 中的 dirs 和文件是每个人都可以读取的。

最后,在您的网络浏览器中输入

http://localhost/~user ('user' is your system username)

你会看到你的 PHPStuff 被列出来。你可以输入

http://localhost/~user/PHPStuff

直接查看 PHPStuff 内容。

祝你好运!

于 2014-03-26T23:54:10.127 回答
0

你不应该做所有这些。

这就是我设置符号链接的方式。

当我安装 apache 时,它​​的 web 目录位于 /var/www/html ,实际上不需要更改。

然后,我创建了一个叫public_html的文件夹,你可以叫它PHPStuff,没关系。重要的是该文件夹在您的主目录中,所以 /home/your_username/PHPStuff

然后将该目录链接到 /var/www/html

sudo ln -s ~/PHPStuff /var/www/html/$USER

然后,您可以通过浏览器访问 ~/PHPStuff,然后键入:

http://localhost/your_username

这将使您可以访问 ~/PHPStuff

完成后,设置适当的权限:

sudo chmod -R 777 ~

然后通过转到 /etc/httpd/conf/httpd.conf 并编辑这部分目录“/var/www/html”来确保 apache 允许符号链接

并确保你有这些:

Options Indexes FollowSymLinks
AllowOverride All

重新启动apache,一切都会正常。

于 2013-03-08T03:33:33.470 回答
0

您需要确保 apache 可以访问符号链接指向的文件夹,尝试运行:

chmod a+x /home/your-username /home/your-username/Documents/PHPStuff

于 2014-12-17T11:07:36.980 回答