Estou tentando implantar o gitweb dentro de um subdiretório de DocumentRoot
no Centos 7 Apache, mas não é possível fazê-lo.
Inicialmente, para testar as coisas, comecei com essa configuração httpd de nível superior para verificar se tudo está no lugar (era).
<VirtualHost *:80>
ServerName gitweb
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
Agora, preciso que o gitweb esteja disponível em /var/www/mySite/public_html/gitweb
para que isso coexiste com o restante do meu conteúdo público da web. Então modifiquei a configuração acima conforme abaixo:
<VirtualHost *:80>
ServerName mySite.com
ServerAlias mySite.com
DocumentRoot /var/www/mySite/public_html
ErrorLog /var/www/mySite/error.log
CustomLog /var/www/mySite/requests.log combined
<Directory /var/www/mySite/public_html/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
SetHandler perl-script
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
RewriteEngine on
RewriteRule ^[a-zA-Z0-9_\-]+\.git/?(\?.*)?$ /gitweb.cgi%{REQUEST_URI} [L,PT]
</Directory>
</VirtualHost>
com essa alteração quando eu visito, mysite.com/gitweb/, o Apache renderiza o script raw perl em vez de executá-lo. Pelo que eu li, Options +ExecCGI
deve ser o suficiente para tornar os scripts executáveis, mas claramente estou perdendo alguma coisa.
Tags git centos apache-httpd