37

I think for a development machine, its more convenient to run Apache as the current user to simplify permissions problem? How do I do that? I think its suexec but how do I configure it in Ubuntu+Apache?

24

I myself would add the user to the www-data group with...

sudo adduser {username} www-data

Simple and effective. No messing with config files or permissions.

  • 4
    I did it all the time, but this will not fix some of permission denied issues, as the group rights are not the same as user's rights for all files. – Kostanos Sep 11 '13 at 17:10
  • 1
    This will not fix if the CHMOD didn't allow group to write. – GusDeCooL Nov 13 '13 at 19:14
  • the issue for me is that I have local installation. When I create files with my IDE they have my 'user/group' and sometime apache is not able to read those files – Postadelmaga Feb 7 '14 at 9:45
  • this alone does not solve a lot of permissions problems because your primary group is normally not www-data and some php apps require group write permissions. (joomla, wordpress) – Eric Aug 23 '17 at 4:05
  • 2
    This doesn't solve the problem where you create files and www-data can't remove/edit them because your main group isn't www-data – billy Oct 19 '17 at 12:46
47

Edit the following file as root: /etc/apache2/envvars

using the command:

sudo nano /etc/apache2/envvars

change the user and group to yourself if there is only one user and you will never have permissions problems again.

I.E., if you are only logging in and running the server as user 'big_dog':

export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog

Heck, for that matter you could change that user to the current user I'm sure somehow. Then, install user_dir you all have webs only you can have full control of (unless you modify this).

Restart the server (if unsure, just reboot or goole) and you are good to go.

  • 3
    This works as a charm! thank you. the only I would add: sudo chown big_dog.big_dog /var/lock/apache2 – Kostanos Sep 11 '13 at 17:14
  • 3
    Also probably you will need sudo chown big_dog.big_dog -R /var/log/apache2 – Kostanos Dec 18 '13 at 13:14
  • On OpenSUSE-Tumbleweed (and probably on some other) the file is at /etc/apache2/uid.conf – Dilawar Nov 7 '16 at 11:34
0

Sidestepping the "should you do this" issue, you can find where the user for apache is set by running:

grep www- /etc/apache2/apache2.conf

It's then a case of editing those instances in /etc/apache2/apache2.conf and reloading Apache (sudo /etc/init.d/apache2 reload).

  • apache2.conf doesn't contain www- for me – Jiew Meng Jan 23 '12 at 14:15
  • I have a feeling you meant something like grep -HR "www-" /etc/apache2/. If you already know it's in apache2.conf then just edit that file. In my case, it wasn't there, but in /etc/apache2/envvars as Eric's answer points out. – Mike Nov 5 '14 at 18:21
  • That's because apache.conf looks for ${APACHE_RUN_USER} and ${APACHE_RUN_GROUP}. Not www-data directly. – Yahya Uddin Aug 9 '16 at 12:06
0

why would you do this,, I was strugnling with that perm issues in the past, but this is my dev process from today:

  • install new linux box (virtual, or local like laptop)
  • run standard sudo apt-get install lamp-server^ proc to get lamp up
  • make sym link to my home dir where projects are like this:

    ln -s /home/user/html /var/www/html

  • make sym link to hosts config file

    ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default

that's it :)

It works as aspected, no issues with user perms or something similar with apache server,, for mysql I have little longer process..

hth, cheers

  • That doesn't address any of the permission issues addressed in most of the other answers. – RichieHH Sep 3 '18 at 12:45
0

create a new usergroup webdev and add the www-data user to it.

sudo addgroup webdev
sudo adduser www-data webdev

Then go ahead and add your user to that group and make it the default group for yor user.

sudo adduser {your-user} webdev
sudo addgroup webdev

Last thing to do is to make sure, the group webdev has rwx rights on the files

sudo chmod 775 -R /path/to/project

Now the only thing that can occur is that for e.g. www-data creates a new log file and you can't rwx it.

  • 1
    What is the advantage of this, over just adding my own user to the www-data group, specially since we are talking about a development environment? – Dan Apr 24 '15 at 10:19
  • well if you do it this way, and set the 775 rights to e.g public_html or /var/www you won't have issues with the rights on your dev machine. the other aproaches, leave you with additional steps to do or aren't as effective as i wan't them. So in my opinion, this is the best way to deal with it on a dev machine. for productive servers i would recomend a different setup. also with this aproach, you can add users easily. – Thomas Venturini Apr 24 '15 at 10:41

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.