Chris Aung
Chris Aung

Reputation: 9492

How to set root access for all files put inside my Apache2 root directory?

I am learning PHP at the moment on Linux. I have an Apache2 server running locally. Whenever I tried to save a PHP file into the root directory of Apache2 server ( /var/www/html/), I was told that permission denined.

So, I searched around and found that by default, the admininstartor do not have the root access unless explicitly request for it (like sudo su). I have also seen some posts which ask me to use gksu nautilus. However, my linux 14.04 LTS Ubuntu doesn't comes with it. (I know I can use apt-get gksu but at the moment, downloading it from internet is not an option).

Is there anyway that I can change the permission to my Apache2 server root directoy so that I can use any text editor to save/edit to that directory directly. Only the ways that do not need downloading stuffs from internet are feasiable for me at the moment.

Upvotes: 0

Views: 1482

Answers (2)

karvin.developer
karvin.developer

Reputation: 556

For linux open the terminal with root login then go to the root folder and run the following command chmod 777 following is the example :-

To change all the directories to 777 (-rwxr-rwxr-rwxr):

find /opt/lampp/htdocs -type d -exec chmod 777 {} \;

To change all the files to 644 (-rwxr-rwxr--rwxr--):

find /opt/lampp/htdocs -type f -exec chmod 777 {} \;

If this will not work then try the following :-

Create a new group

groupadd webadmin

Add your users to the group

usermod -a -G webadmin user1 usermod -a -G webadmin user2

Change ownership of the sites directory

chown root:webadmin /var/www/html/

Change permissions of the sites directory

chmod 2775 /var/www/html/ -R

Now anybody can read the files (including the apache user) but only root and webadmin can modify their contents.

Hope this will help you in solving your problem.

Upvotes: 1

Dykotomee
Dykotomee

Reputation: 770

You can set the DocumentRoot in your /etc/apache2/httpd.conf file to a place where Apache has write access. For example, you could set it to /tmp/www if you made a directory there. (If you still don't have access, you can always give everyone read access by running chmod a+r /tmp/www, but you should probably be fine.)

Obviously leaving your Apache Document Root as /tmp/www is a bad idea, so you can change it to something like /home/chris once you've got it working.

One important note: after you make a change like this, you must restart the Apache server. This can be done by running apachectl restart; ironically, you might have to have administrator rights in order to execute this (or even edit the config file in the first place), so make sure you prefix your edit & restart with sudo just in case.

Upvotes: 1

Related Questions