1

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

<VirtualHost my-server-ip:80>
DocumentRoot /var/www/vhosts/my.domain.org/httpdocs/public
ServerName  my.domain.org
</VirtualHost>

但是,在重新启动 apache 后,它会像这样警告我:警告:DocumentRoot [/public] 不存在

我该怎么办?

4

3 回答 3

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.”

于 2012-12-20T20:17:38.623 回答
0

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

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

于 2012-12-20T20:09:43.620 回答
0

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

1)利用 chown 和 chmod 示例,由 Mike 提供(以上 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)

于 2014-11-12T23:11:45.037 回答