Instalación de Git y Apache HTTP Server:
Los paquetes Git y Apache están disponibles en el repositorio oficial de paquetes de Ubuntu. Por lo tanto, puede instalarlo fácilmente con el administrador de paquetes APT.
Primero, actualice la caché del repositorio de paquetes APT con el siguiente comando:
actualización de $ sudo apt
La caché del repositorio de paquetes APT debe actualizarse.
Ahora, instale Git y Apache con el siguiente comando:
$ sudo apt install git apache2 apache2-utils
Ahora presiona Y y luego presione
Se deben instalar Git y Apache.
Configuración del servidor HTTP Apache para Git:
Ahora, habilite Apache mod_env, mod_cgi, mod_alias y mod_rewrite módulos con el siguiente comando:
$ sudo a2enmod env cgi alias reescribir
Los módulos de Apache necesarios deben estar habilitados.
Ahora, crea un nuevo directorio / var / www / git para mantener todos los repositorios de Git con el siguiente comando:
$ sudo mkdir / var / www / git
Ahora, cree una nueva configuración de sitio Apache / etc / apache2 / sites-available / git.conf para Git con el siguiente comando:
$ sudo nano / etc / apache2 / sites-available / git.conf
Ahora, escriba las siguientes líneas en el archivo de configuración:
ServerAdmin webmaster @ localhost
SetEnv GIT_PROJECT_ROOT / var / www / git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias / git / / usr / lib / git-core / git-http-backend /
Alias / git / var / www / git
Opciones + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Ninguno
Requerir todo concedido
DocumentRoot / var / www / html
Opciones Índices FollowSymLinks MultiViews
AllowOverride Ninguno
Requerir todo concedido
ErrorLog $ APACHE_LOG_DIR / error.Iniciar sesión
LogLevel advertir
CustomLog $ APACHE_LOG_DIR / acceso.registro combinado
El archivo de configuración final tiene el siguiente aspecto. Ahora, guarde el archivo de configuración presionando
Ahora, deshabilite la configuración predeterminada del sitio Apache con el siguiente comando:
$ sudo a2dissite 000-default.conf
La configuración predeterminada del sitio debe estar deshabilitada.
Ahora, habilite la configuración del sitio de Git con el siguiente comando:
$ sudo a2ensite git.conf
La configuración del sitio de Git debe estar habilitada.
Ahora, reinicie el servidor HTTP Apache con el siguiente comando:
$ sudo systemctl reiniciar apache2
Para arrancar un nuevo repositorio de Git accesible a través del servidor HTTP Apache, tendrá que ejecutar algunos comandos. No desea hacer lo mismo una y otra vez solo para crear un nuevo repositorio de Git. Entonces, decidí escribir un script de shell para ese propósito.
Primero, cree un nuevo script de shell / usr / local / bin / git-create-repo.sh con el siguiente comando:
$ sudo nano / usr / local / bin / git-create-repo.sh
Ahora, escriba las siguientes líneas de códigos en el script de shell.
#!/ bin / bashGIT_DIR = "/ var / www / git"
REPO_NAME = $ 1
mkdir -p "$ GIT_DIR / $ REPO_NAME.git "
cd "$ GIT_DIR / $ REPO_NAME.git "
git init --bare &> / dev / null
toque git-daemon-export-ok
cp hooks / post-actualización.ganchos de muestra / post-actualización
git config http.recibir paquete verdadero
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "El repositorio de Git '$ REPO_NAME' creado en $ GIT_DIR / $ REPO_NAME.git "
Una vez que escriba estas líneas, el script de shell debería verse de la siguiente manera. Ahora, guarde el archivo presionando
Ahora, agregue permiso de ejecución al script de shell con el siguiente comando:
$ sudo chmod + x / usr / local / bin / git-create-repo.sh
Ahora, crea un nuevo repositorio de Git prueba en la raíz del proyecto Git / var / www / git utilizando la git-create-repo.sh script de shell de la siguiente manera:
$ sudo git-create-repo.prueba de sh
El repositorio de Git prueba debe ser creado.
Para acceder al repositorio de Git, necesita la dirección IP del servidor HTTP de Git.
$ ip aComo puede ver, la dirección IP en mi caso es 192.168.21.208. Será diferente para ti. Reemplázalo por el tuyo a partir de ahora.
Ahora puedes clonar el prueba Repositorio de Git de la siguiente manera:
$ git clon http: // 192.168.21.208 / git / prueba.git
El repositorio de Git prueba debe ser clonado.
Ahora, agreguemos una nueva confirmación al prueba Repositorio de Git.
$ cd prueba /$ echo "Hola mundo"> hola
$ git agregar .
$ git commit -m 'compromiso inicial'
Ahora, cargue los cambios en el prueba Repositorio de Git en el servidor de la siguiente manera:
$ git push originComo puede ver, los cambios se cargan muy bien.
Configuración de la autenticación de usuario:
En esta sección, le mostraré cómo configurar la autenticación de usuario en los repositorios de Git en el servidor.
Primero, edite el git.conf archivo de configuración del sitio de la siguiente manera:
$ sudo nano / etc / apache2 / sites-available / git.conf
Ahora, agregue la siguiente sección en el archivo de configuración.
AuthType Basic
AuthName "Verificación de Git"
AuthUserFile / etc / apache2 / git.passwd
Requerir usuario válido
Aquí, / etc / apache2 / git.passwd es el archivo de la base de datos del usuario.
El archivo de configuración final debe tener el siguiente aspecto. Ahora, guarde el archivo presionando
Ahora, cree un nuevo archivo de base de datos de usuario / etc / apache2 / git.passwd y agregue un nuevo usuario (digamos shovon) al archivo de la base de datos de la siguiente manera:
$ sudo htpasswd -c / etc / apache2 / git.passwd shovon
Ahora, escriba una nueva contraseña para el nuevo usuario y presione
Vuelva a escribir la misma contraseña y presione
El par de usuario y contraseña debe agregarse a la base de datos.
Ahora, reinicie el servidor HTTP Apache con el siguiente comando:
$ sudo systemctl reiniciar apache2
Ahora, si intentas clonar el prueba repositorio nuevamente, se le pedirá que se autentique como puede ver en la captura de pantalla a continuación.
Una vez que se autentique con el nombre de usuario y la contraseña, podrá acceder al repositorio de Git.
Incluso cuando intente presionar o extraer del repositorio de Git, también se le pedirá el nombre de usuario y la contraseña.
Una vez que se autentique, push / pull funcionará.
También puede configurar una base de datos de usuario diferente para diferentes repositorios de Git. Esto puede resultar útil para proyectos en los que muchas personas trabajan juntas en el mismo repositorio de Git.
Para configurar la autenticación basada en el repositorio de Git, primero, edite el git.conf archivo de configuración del sitio de la siguiente manera:
$ sudo nano / etc / apache2 / sites-available / git.confAhora, agregue las siguientes líneas en el archivo de configuración.
AuthType Basic
AuthName "Verificación de Git"
AuthUserFile / etc / apache2 / git.prueba.passwd
Requerir usuario válido
AuthType Basic
AuthName "Verificación de Git"
AuthUserFile / etc / apache2 / git.test2.passwd
Requerir usuario válido
Para cada repositorio de Git prueba y test2, a
El archivo de configuración final debe tener el siguiente aspecto. Ahora, guarde el archivo de configuración presionando
Ahora, puede crear las bases de datos de usuario necesarias de la siguiente manera:
$ sudo htpasswd -c / etc / apache2 / git.prueba.passwd NOMBRE DE USUARIO$ sudo htpasswd -c / etc / apache2 / git.test2.passwd NOMBRE DE USUARIO
Una vez que haya terminado, reinicie el servidor HTTP Apache con el siguiente comando:
$ sudo systemctl reiniciar apache2
Ahora, cada repositorio de Git debe tener su propio conjunto de usuarios que puedan acceder a él.
Entonces, así es como se configura Git Server con Apache HTTP Server en Ubuntu. Gracias por leer este artículo.