This tutorial assumes that you have a basic understanding of SELinux and Apache, as well as a thorough understanding of UNIX DAC.

First of all, you have to enable user web directories in Apache; you have to make sure that mod_userdir is loaded and enabled, and you have to make sure that the UserDir directive is set to whatever directory you would like to use as the user home directory. Second of all, you have to ensure that those directories have the appropriate UNIX DAC permissions.

Fedora pre-configures "web","www",and "public_html" to have the appropriate context by default. So if a user creates a directory in their home with one of these names, then the new directory will be created with the appropriate context attribute (namely httpd_user_content_t) to be served in an SELinux enabled environment. In this case, the only change required is that SELinux be configured to allow user web directories:

setsebool -P httpd_enable_homedirs 1

If you would like to have a user web directory with a different name (I like to use "Website"), then you will have to change the context manually:

chcon -R -t http_sys_content_t ~user/Website

If you are not the only user on your system and would like all users to be able to create their own web directories by simply creating a directory with the name you've chosen (that is, you want the user to not have to learn about SELinux to serve webpages), then you will have to use semanage to manage the security context of file objects. (See /etc/selinux/targeted/contexts/files/file_contexts.homedirs and then man "semanage").