2013-05-16 53 views
6

我使用vagrant来运行我的虚拟机使用Ubuntu,Apache等 这是在我的OSX主机上运行。流浪者vm + apache权限被拒绝mkdir()

一切工作正常,直到我的PHP应用程序试图创建一个文件夹,文件夹内的文件等。 我得到权限被拒绝。 我在流浪文件的提供/配置上缺少什么?

+0

您可以发布您Vagrantfile给我们看。我使用Vagrant for PHP开发,可能会帮助 – fullybaked

回答

1

你需要设置PHP是试图写入该文件夹的所有者,以通常是www数据apache用户... SSH进入游民箱和尝试:

sudo chown www-data:www-data <dirname> 

那应该工作......如果是这样,那么只需将其添加到您正在使用的配置文件中即可。

+1

是的,另一种(但相似)的方法是运行Apache作为流浪用户。我已经成功完成了。 – Jonathan

+3

乔纳森这将是方便有这个答案 –

20

在这种情况下,如果您使用的是Vagrant + Apache2。

解决办法是:

  1. 编辑/etc/apache2/apache2.conf中;
  2. 搜索用户集团指令
  3. 更改这些行:

    User vagrant 
    Group vagrant 
    
  4. 运行sudo apache2 restart;

它不可能将/ vagrant目录所有者更改为www-data(apache用户);

无论如何,它适用于我。

+1

这就是我所做的。我还需要更改会话数据文件夹中的组,以便PHP可以正确读/写会话数据(在CentOS上):'chown root:vagrant/var/lib/php/session'。我删除了该会话文件夹中的现有会话,并且在此之后一切正常。 – chris

+0

这适用于我,在OSX 10.9.4与debian 7 VM –

+0

哪个apache?主机上的虚拟机还是虚拟机? – AgmLauncher

3

编辑Vagrantfile

config.vm.synced_folder "./", "/var/www", owner: "www-data", group: "www-data"