How to make a directory permanently writable?
I am using LAMP stack for development and I have a problem with making /var/www permanently writable. I use this command:
sudo chmod -R a+rwX /var/www
This works, but after putting a web app and accessing it through a browser, it show a "permission denied" error. When that happens, I have to the execute the command again.
How can I make the directory writable, permanently, without having to run the command again?
create a subfolder in `/var/www` and change permisson for that directory. That should fix the issue
Actually you should **never ever** make web root writable. See For security reasons why should /var/www not have chmod 777?
these are some good comments above... considering the security reasons, you should keep permission for `/var/www` to default rwxr-xr-x and you'd probably move the required files to a sub-directory in `/var/www` and make changes to your *html files accordingly for the changes you've made to the document root.
Numeric permissions can solve your problem.
sudo chmod 775 'your directory'
if you want to know why only 775 here's your answer
400 read by owner 040 read by group 004 read by anybody 200 write by owner 020 write by group 002 write by anybody 100 execute by owner 010 execute by group 001 execute by anybody 400 +040 +004 +200 +020 +100 +010 +001 =775
It will give all permission except write by anybody.
Usually the command you used should change the permissions permanently.
sudo chmod -R 775 /var/www/(which basically is the same). If that doesn't work you might need to change the owner [and maybe the group] of the directory via
sudo chown <user>[:<group>] /var/www/.
Also, you might consider the 'permission denied error' could be caused by insufficient access rights in your database or elsewhere.
But as @schkovich already mentioned you should not make the web root folder writeable.
@Marcel how do we know its the real you, what if @ Rinzwind tore marcel's face and wore it.