与apache的Vagrant synced文件夹权限问题

res*_*ing 8 apache permissions centos vagrant

我正在运行Centos6.4盒子.

vagrant up在Vagrant文​​件中没有同步文件夹配置运行就可以了.我可以通过主机访问http://localhost:8080,它显示Apache页面.我可以在/var/www/html文件夹中创建index.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"
Run Code Online (Sandbox Code Playgroud)

进入虚拟机我看到如下权限设置/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
Run Code Online (Sandbox Code Playgroud)

所以我尝试设置apache所有权,

   config.vm.synced_folder "./source", "/var/www/html", :owner=>"apache",:group=>"apache",:extra=>"dmode=777,fmode=777"
Run Code Online (Sandbox Code Playgroud)

但这也行不通.

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

Ter*_*ang 14

找出运行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>
Run Code Online (Sandbox Code Playgroud)

在guest虚拟机中禁用SELinux,它对开发环境没用

编辑 /etc/selinux/config

将SELINUX更改为已禁用

SELINUX=disabled

重启vagrant box => vagrant reload

看看#2#2是否有帮助.

  • 我设置`SELINUX = disabled`并重新打包.它现在工作正常.谢谢! (3认同)
  • SELINUX=disabled 和重新加载 vagrant 对我来说适用于 Vagrant/Centos7。谢谢! (2认同)