Fedora 12 + Httpd + Userdir + SElinux Works
First install LAMP stack see the guide on HowtoForge
replace $USER for your username
mkdir $USER/public_html
firefox http://localhost/~$USER/
If you see only Forbidden (403), don’t worry, do this:
I made a patch file (if you made custom changes on httpd.conf don’t use this file, do manual changes)
Install patch on your system and patch httpd.conf
yum install patch
my patch file:
--- httpd-patch.conf 2010-01-30 14:59:51.811850034 -0800
+++ httpd.conf 2010-01-30 14:25:04.527864263 -0800
@@ -349,14 +349,15 @@
# of a username on the system (depending on home directory
# permissions).
#
- UserDir disabled
+ #UserDir disabled
+ UserDir enabled $USER
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
- #UserDir public_html
+ UserDir public_html
</IfModule>
@@ -364,18 +365,18 @@
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
-#<Directory /home/*/public_html>
-# AllowOverride FileInfo AuthConfig Limit
-# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
-# <Limit GET POST OPTIONS>
-# Order allow,deny
-# Allow from all
-# </Limit>
-# <LimitExcept GET POST OPTIONS>
-# Order deny,allow
-# Deny from all
-# </LimitExcept>
-#</Directory>
+<Directory /home/*/public_html>
+ AllowOverride FileInfo AuthConfig Limit
+ Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+ <Limit GET POST OPTIONS>
+ Order allow,deny
+ Allow from all
+ </Limit>
+ <LimitExcept GET POST OPTIONS>
+ Order deny,allow
+ Deny from all
+ </LimitExcept>
+</Directory>
#
# DirectoryIndex: sets the file that Apache will serve if a directory
next do:
patch /etc/httpd/httpd.conf < patch1.txt
chmod 711 /home/$USER
chmod 755 /home/$USER/public_html
chcon -R -t httpd_sys_content_t /home/$USER/public_html
setsebool -P httpd_enable_homedirs 1
now:
firefox http://localhost/~$USER/