gitweb

gitweb - git web interface



Configurando GitWeb-404-No se encontraron proyectos (6)

Edite el archivo de configuración de gitweb que se encuentra aquí: /etc/gitweb.conf

Y cambie la décima línea que comienza "nuestro $ projectroot" para que sea:

nuestro $ projectroot = "/ path / to / your / git / root"

luego reinicie su servidor web, esto le indicará si la configuración de configuración de su servidor web GIT_PROJECT_ROOT está realmente funcionando.

Estoy configurando gitweb en mi sistema a través de Apache en OpenSUSE (host no virtual). Sin embargo, me sale el siguiente error: 404 - No projects found .

/etc/gitweb.conf

# path to git projects (<project>.git) $projectroot = "/home/zhijian/gitweb"; # directory to use for temp files $git_temp = "/tmp"; # target of the home link on top of all pages #$home_link = $my_uri || "/"; # html text to include at home page $home_text = "/gitweb/static/indextext.html"; # file with project list; by default, simply scan the projectroot dir. $projects_list = $projectroot; # stylesheet to use $stylesheet = "/gitweb/static/gitweb.css"; # logo to use $logo = "/gitweb/static/git-logo.png"; # the ''favicon'' $favicon = "/gitweb/static/git-favicon.png";

/etc/apache2/conf.d/gitweb.conf

Alias /gitweb "/home/zhijian/gitweb" <Directory "/home/zhijian/gitweb"> Options +Indexes +ExecCGI +FollowSymLinks AllowOverride All Order allow,deny Allow from all AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi </Directory>

Agregué un enlace flexible en la carpeta gitweb para vincular gitweb.cgi y la carpeta estática. El registro de errores de Apache muestra gitweb.cgi: Can''t opendir(/home/zhijian/gitweb): Permission denied , pero los permisos en la carpeta gitweb se han configurado en 755. ¿Alguien tiene una idea de lo que podría estar causando este problema?


El gitweb cgi debe tener el mismo propietario que el repositorio que está escaneando. Es decir, si su $ projectroot es www-data: www-data, entonces gitweb.cgi tiene que ser www-data: www-data también.

Además, los directorios bajo $ projectroot también deben tener los mismos permisos. Debería poder hacer un chown -R www-data:www-data . lo que debería ayudar. Querrá ver los permisos y la propiedad, pero eso es más complicado y querrá asegurarse de que lo haya hecho bien y de que no haya abierto ningún agujero de seguridad.


SELinux mantiene los archivos del repositorio no disponibles para el servidor http también. Si tiene que usar SELinux debe cambiar la política. La forma más fácil es deshabilitar SELinux ;-)


También he tenido el mismo problema en OpenSuse 11.4. En mi caso (y sospecho que este fue el caso del póster inicial, que también es un usuario de uso abierto), el problema resultó ser este asunto de AppArmor, del cual sé muy poco.

Aquí hay algunos puntos que noté que llevaron a la eventual solución:

  • En OpenSuse, el paquete git-web rpm se instala de manera que $ projectroot se configura por defecto en la carpeta " / srv / git "
  • Si agrega sus repositorios git dentro de esta subcarpeta " / srv / git / ... ", entonces todo funciona bien
  • Si decide sobre otra ubicación, por ejemplo, " / home / myname / srv / git / ", entonces falla, a pesar de configurar el propietario en wwwrun: www como se indica en otras publicaciones.
  • El gotchya aquí es AppArmor , que parece establecer políticas aún más estrictas sobre lo que una aplicación puede hacer
  • Al hacer un " rpm -ql git-web " se revelará un archivo llamado: " /etc/apparmor.d/usr.share.git-web.gitweb.cgi "
  • Abre este archivo con su / sudo para que puedas editarlo
  • Aquí, verás estas líneas:

...

/srv/git/ r, /srv/git/** r,

...

  • Cambie estos a la ruta de la carpeta principal que contiene sus repositorios de git, por ejemplo, si los aloja en " / home / myname / srv / git / ", luego use "" / home / myname / srv / " , p.ej:

...

/home/myname/srv r, /home/myname/srv/** r,

...

  • Guarda tus cambios en el archivo
  • Creo que también tiene que cambiar el propietario de esta carpeta padre a wwwrun: www, por ejemplo, " sudo chown -R wwwrun: www srv / "
  • reinicie AppArmor con " sudo rcapparmor restart "

Todo debería estar bien ahora :)


Yo tuve el mismo problema. "404 no se encontraron proyectos" pero la configuración fue buena. Apache almacenó en caché la respuesta 404 y no volvió a ejecutar el script cgi:

  1. La configuración en gitweb.conf no se editó (instalación predeterminada de Ubuntu)
  2. Accedí a la URL con un navegador web: "No se encontraron proyectos"
  3. Actualicé la configuración
  4. Presioné ctrl-r pero de nuevo: "no se encontraron proyectos" (aunque la configuración era correcta ahora)
  5. Presioné shift-ctrl-r (Firefox) y obtuve el resultado correcto.

establece los permisos en la carpeta gitweb a 777. funciona.