Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apache Webserver - How to write to dir/files with permissions set at 755 instead of 777

I just learned to install Apache 2 on my ubuntu linux localhost for the first time. I'm making it work with PHP5.

I noticed that anytime I want to write to a file or directory, I have to chmod 777 the destination.

But from my experience working on 3rd party hosting solutions, I am generally allowed to write to files and dirs that have 755 permissions.

What can I do on my localhost so that I can write to files and dirs with 755 permissions? If the answer to this is very long, can someone send me a link to a step by step guide to do this?

like image 682
John Avatar asked Dec 01 '22 12:12

John


1 Answers

Here are some simple rules for web site content management (under apache) that most people should follow:

  1. All content should be chown'd & chgrp'd to the same user that apache is running as. On new ubuntu installs , the user and group are both "www-data".
  2. If you want to administer the serving files under your own user group, then you should add youself to the www-data group, and make sure that users in this group have read/write access to all the serving files and directories. The caveat here is that you want to make sure not to create new files as your personal account. These should still be owned by www-data. The easiest way to accomplish this is to create the file as yourself, and then chown it to www-data:www-data.

If you do these 2 things, then you should be able to write to files that are being served by apache. I'm not sure where your document root is, but something like this would likely work for most simple installs:

$ sudo usermod $USER -a -G www-data 
$ cd /var/www
$ sudo chown -R www-data:www-data .
like image 129
slacy Avatar answered Dec 04 '22 03:12

slacy