将Apache rootdir更改为符号链接,获得403错误

时间:2013-03-08 03:11:58

标签: php apache symlink

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

没有。

当我尝试在我的浏览器中使用'localhost / helloworld2.php'访问名为'helloworld2.php'的Documents/PHPStuff中的测试文件时,我收到403 Forbidden Error。

我一直在搞乱符号链接和PHPStuff目录中的权限,将它们更改为777和东西,但它没有用。我还通过将FollowSymlinks None更改为FollowSymlinks All来更改了我的httpd.conf文件。什么都没有奏效,所以这是我的最后一招。

3 个答案:

答案 0 :(得分: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,一切正常。

答案 1 :(得分:0)

尝试不要触摸你的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中的目录和文件。

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

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

您将看到列出的PHPStuff。您可以输入

http://localhost/~user/PHPStuff

直接查看PHPStuff内容。

祝你好运!

答案 2 :(得分:0)

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

  

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