If your system has SELinux enabled, you must enable the `httpd_enable_cgi` boolean: # setsebool -P httpd_enable_cgi 1 Additionally, the git repositories need to be accessible to cgit. This is handled automatically for repositories in the default path, `/var/lib/git`. If you have created `/var/lib/git` manually or have existing content in that directory, you may need to run `restorecon` to reset the SELinux context: # restorecon -RF /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 -e /var/lib/git /srv/git This sets the context of `/srv/git` equal to the default context of `/var/lib/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: # semanage fcontext -a -t public_content_t "/srv/git(/.*)?" Then use `restorecon` to update the contexts: # restorecon -RF /srv/git