I have an Ubuntu server running Apache and git and I’m able to clone/push repos locally on the server, but get a 500 internal server error when trying to clone/push remotely.
I can also perform git actions if using ssh – e.g git clone ssh://jason@<domain>:/home/jason/domains/<domain>/public_html/testrepo.git
I’ve confirmed apache mods like alias
and cgi
are installed and enabled and tested cgi to confirm it works.
Confirmed open ports like 80 and 443 are open on the Ubuntu firewall.
No errors in apache error log – even raised the log level to debug as well, nada.
Server config –
- Ubuntu Server 20.04
- Git version 2.25.1
- Apache2 version 2.4.41
(Ubuntu)
My current apache config –
<code><IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /home/jason/domains/<domain>/public_html
ServerName <domain>
ServerAlias <domain>
ErrorLog ${APACHE_LOG_DIR}/<domain>_error.log
CustomLog ${APACHE_LOG_DIR}/<domain>_access.log combined
# Directory settings for public_html
<Directory /home/jason/domains/<domain>/public_html>
Options +ExecCGI +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# Git HTTP backend configuration
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
SetEnv GIT_PROJECT_ROOT /home/jason/domains/<domain>/public_html
SetEnv GIT_HTTP_EXPORT_ALL
<Directory /usr/lib/git-core>
Options +ExecCGI +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/<domain>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem
</VirtualHost>
</IfModule>
</code>
<code><IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /home/jason/domains/<domain>/public_html
ServerName <domain>
ServerAlias <domain>
ErrorLog ${APACHE_LOG_DIR}/<domain>_error.log
CustomLog ${APACHE_LOG_DIR}/<domain>_access.log combined
# Directory settings for public_html
<Directory /home/jason/domains/<domain>/public_html>
Options +ExecCGI +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# Git HTTP backend configuration
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
SetEnv GIT_PROJECT_ROOT /home/jason/domains/<domain>/public_html
SetEnv GIT_HTTP_EXPORT_ALL
<Directory /usr/lib/git-core>
Options +ExecCGI +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/<domain>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem
</VirtualHost>
</IfModule>
</code>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /home/jason/domains/<domain>/public_html
ServerName <domain>
ServerAlias <domain>
ErrorLog ${APACHE_LOG_DIR}/<domain>_error.log
CustomLog ${APACHE_LOG_DIR}/<domain>_access.log combined
# Directory settings for public_html
<Directory /home/jason/domains/<domain>/public_html>
Options +ExecCGI +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# Git HTTP backend configuration
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
SetEnv GIT_PROJECT_ROOT /home/jason/domains/<domain>/public_html
SetEnv GIT_HTTP_EXPORT_ALL
<Directory /usr/lib/git-core>
Options +ExecCGI +FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/<domain>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem
</VirtualHost>
</IfModule>
What am I missing here?