How-to: Setup apache for a multi user shared hosting environment

Basic setup of a multi user hosting environment on Ubuntu or Debian.

This is a very simple, minimal and safe setup which allows users to have their own web sites hosted in a central web server. The main advantage of this method is that it is very secure.

The main features of this setup are the following:
  • Each user has his own home directory
  • Each user can have one or more websites hosted
  • Web server does not need extra configuration regarding users, groups etc.
  • Users are owners of their website(s) and can connect and modify their sites at will.
  • Users can only view the web directories that they own.
  • Simple and fast setup

Steps

  1. Login as root
  2. sudo su -
  3. Create user with his own home dir
  4. useradd -s /bin/bash -m -d /home/<username> <username>
  5. Assign a password to the user
  6. passwd <username>
  7. Create virtual host's directory and set permission to user and group. 
  8. mkdir -m o-rwx /var/vhosts/<site>
    
  9. Change ownership of vhost directory
  10. chown -R <username>:<username> /var/vhosts/<site>
    
  11. Add apache user www-data to user's group
  12. usermod -a -G <username> www-data
    
    The statement above gives apache web server the required permissions in order to run effectively all of the user's websites.
  13. Check the groups that the user www-data belongs to:
  14. root# groups www-data
    www-data : www-data <username> ...
    
  15. Create virtual host or virtual directory apache configration
    • Virtual directory setup
    •         Alias /<subsite> /var/vhosts/<site>
              <Directory /var/vhosts/<site>
                      Options None
                      AllowOverride All
                      Order allow,deny
                      Allow from all
              </Directory>
      
    • Virtual host setup. Let's assume <site> is example.com. A sample config virtual host config could be similar to the configuration below:
    •         <VirtualHost *:80>
      
              ServerAdmin webmaster@localhost
              DocumentRoot /var/vhosts/example.com
              ServerName www.example.com
      
              <Directory />
                      Options FollowSymLinks
                      AllowOverride None
              </Directory>
              <Directory /var/vhosts/example.com>
                      Options Indexes FollowSymLinks MultiViews
                      AllowOverride All
                      Order allow,deny
                      allow from all
              </Directory>
      
              CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
              ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
      
              # Possible values include: debug, info, notice, warn, error, crit,
              # alert, emerg.
              LogLevel warn
      
      </VirtualHost>
  16. Reload/Restart apache
  17. service apache2 reload
    In case reload doesn't work (although it should) try restart:
    service apache2 restart
  18. Ready!

24 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Thanks for the guide!
    I prefer to use Web Hosting Services but this was pretty useful

    ReplyDelete
  5. Hi,

    Thanks for sharing a very interesting article about How-to: Setup apache for a multi user shared hosting environment. This is very useful information for online blog review readers. Keep it up such a nice posting like this.

    Regards,
    WondersMind,
    Best Web Design Company in Bangalore

    ReplyDelete
  6. Most Reliable offshore Web Hosting I have ever used Visit website here.

    ReplyDelete
  7. I was very impressed by this post, this site has always been pleasant news Thank you very much for such an interesting post, and I meet them more often then I visited this site. Shared Hosting

    ReplyDelete
  8. All the contents you mentioned in post is too good and can be very useful. I will keep it in mind, thanks for sharing the information keep updating, looking forward for more posts.Thanks
    ddos protected hosting

    ReplyDelete
  9. Great info! I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have.
    our speed

    ReplyDelete
  10. Great post, and great website. Thanks for the information! start a business make money online

    ReplyDelete
  11. replica rolex watches uk, combining elegant style and cutting-edge technology, a variety of styles of replica rolex sea dweller watches, the pointer walks between your exclusive taste style.

    ReplyDelete
  12. Thanks for taking the time to discuss this, I feel strongly that love and read more on this topic. If possible, such as gain knowledge, would you mind updating your blog with additional information? It is very useful for me. Pressure Cleaning Services

    ReplyDelete
  13. You know your projects stand out of the herd. There is something special about them. It seems to me all of them are really brilliant! power washing services

    ReplyDelete
  14. Most of the time I don’t make comments on websites, but I'd like to say that this article really forced me to do so. Really nice post! industrial pressure washing

    ReplyDelete
  15. This was really an interesting topic and I kinda agree with what you have mentioned here! wichita jewelry

    ReplyDelete
  16. Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!THANKS!!!!!! How-To Do a Successful Product Launch on Your Website

    ReplyDelete
  17. I learn some new stuff from it too, thanks for sharing your information. Agen Slot Online

    ReplyDelete
  18. are you looking for best web hosting then click best web hosting

    ReplyDelete
  19. As claimed by Stanford Medical, It's indeed the SINGLE reason women in this country live 10 years more and weigh an average of 19 kilos less than we do.

    (And realistically, it is not about genetics or some secret-exercise and absolutely EVERYTHING to do with "how" they eat.)

    P.S, I said "HOW", and not "WHAT"...

    Click this link to determine if this easy test can help you find out your true weight loss potential

    ReplyDelete
  20. Thanks for a wonderful share. Your article has proved your hard work and experience you have got in this field. Brilliant .i love it reading. Kinilly.com

    ReplyDelete
  21. Starting a new business can be a challenge with many obstacles to overcome. Having a set of goals can help you focus so you can be successful in launching your new company. GemmasTreasure.com

    ReplyDelete
  22. This comment has been removed by the author.

    ReplyDelete