2013-05-16 76 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"