When trying to start Apache by using:
/etc/init.d/httpd start  I get the following error in /var/log/httpd/error_log:
Unable to change directory to /root  Anyone have any idea what this means?
Its SELinux.
because you have it enabled, you need to start service using
service httpd start  edit your SELinux config and either disable it or set it to permissive:
nano /etc/sysconfig/selinux
# SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=disabled  Once changed then you will be able to start httpd using:
/etc/init.d/httpd start  If you need to keep SELinux enabled, then just use the service script to start/stop/restart the service.
# service httpd start/stop/restart  The ServerRoot has apparently not been set (properly.)
If unset, this default to $HOME.
Edit httpd.conf and set a proper ServerRoot (usually /etc/httpd or /etc/apache2.)
apachectl start instead. [Wed Mar 21 11:53:42 2012] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0 [Wed Mar 21 11:53:42 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Wed Mar 21 11:53:42 2012] [error] Unable to change directory to /root If you want to run it without disabling SELinux, then don't try to run http start/stop command inside /root directory.
This is temporary fix but always work, just switch to /tmp (cd /tmp) and run the command to start apache (/etc/init.d/httpd start)
/etc/init.d/httpd start, I get the error in/var/log/httpd/error_logChrootDirdirective in yourhttp.conffile (or one of the million other files CentOS uses to configure Apache)?