Home » Php » php – Vagrant vm + apache permission denied for mkdir()

php – Vagrant vm + apache permission denied for mkdir()

Posted by: admin July 12, 2020 Leave a comment

Questions:

I am using vagrant to run my vm using ubuntu, apache, etc.
This is running on my OSX host.

Everything works fine until my php application tries to create a folder, files within that folder, etc.
I get Permission denied.
What am I missing on the provision / configuration of the vagrant file?

How to&Answers:

in this case, if you’re using Vagrant + Apache2.

the solution is:

  1. edit /etc/apache2/apache2.conf;
  2. Search for User and Group directives
  3. Change these lines to:

    User vagrant
    Group vagrant
    
  4. run sudo service apache2 restart

its not possible to change /vagrant directory owner to www-data (apache user);

Anyway, it works for me.

Answer:

Edit Vagrantfile

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

Answer:

You need to set the owner on the folder that php is trying to write to, to the apache user which is normally www-data… ssh into the vagrant box and try:

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

That should work… if it does then just add that to what ever provisioner you are using.