If you use SELinux, you need to ensure that the httpd_enable_cgi boolean is set properly. This can be done via the command line, e.g.: # setsebool -P httpd_enable_cgi 1 Or you can use the graphical tool system-config-selinux, via System -> Administration -> SELinux Management on the Gnome menu. Additionally, the git repositories need to be readable by the cgi. This is handled automatically for repositories in the default path, /var/lib/git. If your repositories are in a different path, /srv/git, for example, you can set the proper context using semanage: # semanage fcontext -a -t git_sys_content_t "/srv/git(/.*)?" If you have other confined daemons that need to access the git repositories, you may want to use public_content_t, or public_content_rw_t instead. Then use restorecon to update the contexts: # restorecon -RF /srv/git