2013-05-16 18 views
6

Używam vagrant do uruchamiania mojego vm przy użyciu ubuntu, apache, itp. To działa na moim hoście OSX.Odrzucona odmowa uprawnień vm + apache dla mkdir()

Wszystko działa poprawnie, dopóki moja aplikacja PHP nie utworzy folderu, plików w tym folderze itp. Otrzymuję odmowę uprawnień. Czego mi brakuje w dostarczaniu/konfiguracji pliku włóczęgi?

+0

Możesz opublikować Vagrantfile dla nas zobaczyć. Używam Vagrant do PHP i mogę pomóc – fullybaked

Odpowiedz

1

Musisz ustawić właścicielami na folderze, że PHP stara się zapisywać, aby użytkownik apache, który jest normalnie www-data ... ssh w polu Vagrant i spróbuj:

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

Że powinien zadziałać ... jeśli to wystarczy, dodaj to do tego, jakiego używasz.

+1

Tak, a alternatywnym (ale podobnym) podejściem jest uruchamianie Apache'a jako użytkownika vagrant. Zrobiłem to z powodzeniem. – Jonathan

+3

Jonathan byłoby przydatne mieć to jako odpowiedź –

20

w tym przypadku, jeśli używasz Vagrant + Apache2.

roztwór:

  1. edycja /etc/apache2/apache2.conf;
  2. Szukaj Użytkownika i Grupa dyrektyw
  3. zmienić te wiersze do:

    User vagrant 
    Group vagrant 
    
  4. metę sudo apache2 restart;

nie można zmienić właściciela katalogu na vagrant na www-data (użytkownik apache);

W każdym razie to działa dla mnie.

+1

Oto, co zrobiłem. Potrzebowałem również zmienić grupę w folderze danych sesji, aby PHP mogło poprawnie odczytać/zapisać dane sesji (na CentOS): 'chown root: vagrant/var/lib/php/session'. Usunąłem istniejącą sesję w tym folderze sesji i wszystko działało dobrze po tym. – chris

+0

Działa to dla mnie, na OS X 10.9.4 z debian 7 VM –

+0

Który apache? Ten na maszynie hosta lub maszynie wirtualnej gościa? – AgmLauncher

3

Edit Vagrantfile

config.vm.synced_folder "./", "/var/www", owner: "www-data", group: "www-data" 
Powiązane problemy