Search code examples
linuxpublic-html

How can I make a public HTML folder in Ubuntu?


Simple question, but for some reason I couldn't find the exact answer on Google:

I have a fresh Ubuntu install on Slicehost, and would like to make a public directory in my home dir for a simple website containing a bunch of static HTML files. How do I do this? Is it just a matter of typing mkdir public_html and setting the permissions, or is there a cleaner way? (I remember in the past I've had issues where every time I copied a file into my public_html directory, I would have to manually set its permissions, which was quite frustrating.)


Solution

  • Assuming you've already installed apache, do the following:

    sudo a2enmod userdir
    sudo service apache2 reload
    

    The first command enables the userdir apache mod, which does exactly what you want. The second reloads apache configurations so that it starts using the new configuration.

    To install apache2:

    sudo apt-get install apache2
    

    Of course, you'll also need to make sure that the permissions on your public_html folder allow the www-data user to see the files in there -- 755 usually works well. To do this:

    mkdir ~/public_html
    chmod -R 755 ~/public_html
    

    This will recursively (-R) go through your public_html and set the permissions to 755 (owner rwx, and both group and other r-x, r-x).