8

我正在运行一个 Centos6.4 盒子。

vagrant up在 Vagrant 文件中没有同步文件夹配置的情况下运行很好。我可以通过在我的主机上访问http://localhost:8080它并显示 Apache 页面。我可以在文件夹中创建 index.html,/var/www/html它也显示得很好。

但是,在 Vagrant 文件中添加以下行后,访问该页面会显示403 Forbidden You don't have permission to access / on this server.错误:

config.vm.synced_folder "./source", "/var/www/html", :extra=>"dmode=777,fmode=777"

进入虚拟机,我看到权限设置如下/var/www

drwxr-xr-x.  6 root    root    4.0K Jul 20 23:15 .
drwxr-xr-x. 18 root    root    4.0K Jul 20 23:15 ..
drwxr-xr-x.  2 root    root    4.0K May 14 06:12 cgi-bin
drwxr-xr-x.  3 root    root    4.0K Jul 20 23:15 error
drwxrwxrwx.  1 vagrant vagrant  102 Jul 21 23:14 html
drwxr-xr-x.  3 root    root    4.0K Jul 20 23:18 icons

所以我尝试将apache所有权设置为它,

   config.vm.synced_folder "./source", "/var/www/html", :owner=>"apache",:group=>"apache",:extra=>"dmode=777,fmode=777"

但这也行不通。

显然它具有完整的读/写权限,我不知道为什么 apache 会抱怨。

4

1 回答 1

16

找出运行 httpd 的用户/组,确保用户/var/www对其及其子文件夹具有执行权限。

此外,在你的 apache 站点配置文件中,确保你有正确的指令/var/www,如下所示

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

在来宾中禁用 SELinux,对开发环境没用

编辑/etc/selinux/config

将 SELINUX 更改为禁用

SELINUX=disabled

重启 vagrant box =>vagrant reload

看看#1 和#2 是否有帮助。

于 2013-07-21T22:13:46.770 回答