重新指向全局DocumentRoot,仍然运行PHP

时间:2013-12-29 18:13:17

标签: php apache

我有一台服务器正在为项目提供网页。

项目存储在服务器上的用户目录中。 (/home/user/theproject/webstuff)。

最初,我使用userdir模块通过http://theserver/user/home/user/public_html/home/user/theproject/webstuff的符号链接访问该模块,以指示文件的位置。< / p>

但是,最终,最好从http://theserver提供文件,而不必指明用户(因为实际上只有一个用户)。

然后我有一个非常棒的主意。

相反,我会将我的/etc/apache2/sites-enabled/000-default.conf文件重写为:

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /home/user/theproject/webstuff

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

现在一切都很可爱......除了PHP不再运行。

而是引发以下错误:

AH01630: client denied by server configuration: /home/user/theproject/webstuff/script.php

对于客户端,这显示为403 Forbidden错误。

所以这是一个双重问题:

  1. 有没有更好的方法来实现我的目标?
  2. 如何在这种情况下启用PHP?

2 个答案:

答案 0 :(得分:0)

您可以在此处找到有关此错误的详细说明以及几种可能的解决方案: http://wiki.apache.org/httpd/ClientDeniedByServerConfiguration

答案 1 :(得分:0)

事实证明,我必须编辑/etc/apache2/apache2.conf

在第164行,我需要修改一个块,如下所示:

#<Directory /var/www>
<Directory /home/user/theproject/webstuff>
  Options Indexes FollowSymLinks
  AllowOverride None
  Require all granted
</Directory>