如何将DocumentRoot更改为自定义文件夹

时间:2012-12-20 20:02:24

标签: linux apache centos

我使用CentOS 5.8获得了新的VPS服务器,但我无法转移我的域名,但我希望通过http://my-server-ip访问我的网站,因为我使用的是laravel框架,我需要更改默认的DocumentRoot {{1} } httpdocs我试图将这些行放到httpd.conf文件中:

httpdocs/public

然而,在重新启动apache后,它会警告我: 警告:DocumentRoot [/ public]不存在

我该怎么办?

3 个答案:

答案 0 :(得分:2)

您需要在目录上启用读取(并可能执行)权限。根本尝试:

# Recursively set the owner of this folder to 'www'
chown -R www /var/www/vhosts/my.domain.org/httpdocs/public

# Recursively give the owner read and execute privileges
chmod -R u+rx /var/www/vhosts/my.domain.org/httpdocs/public

作为某些设置的替代方案,用户可能被称为nobody。因此,如果www无效,请尝试:

chown -R nobody /var/www/vhosts/my.domain.org/httpdocs/public

编辑: 正如用户tink在评论中指出的那样 " ...在Centos中,运行apache的用户被恰当地称为apache。在debian及其衍生品中,它是www-data。"

答案 1 :(得分:0)

可能是apache用户无法进入新目录。试试

chmod a+r /var/www/vhosts/my.domain.org/httpdocs/public

答案 2 :(得分:0)

我有相同的" 403页"问题。就在我将/etc/apache2/conf-available/sitename.conf中的Document Root从/ var / www / html更改为/ data / www之后。 为了解决这个问题,我做了以下工作:

1)Mike提供的chown和chmod示例(上面有2个帖子)。非常感谢他;

2)在/etc/apparmor.d/abstractions/web-data的末尾添加了2行,如下所示:

/data/www/ r,
/data/www/** r,

然后运行:

sudo service apparmor reload

3)我还需要在apache.conf中添加以下代码:

<Directory /data/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

可能有些动作是多余的,但它对我来说非常好(Apache v2.4.7,Ubuntu 14.04.1)