Configure o servidor Git com HTTP no Ubuntu

Configure Git Server With Http Ubuntu



Se você deseja configurar um Git HTTP Server para trabalhar com repositórios Git de forma privada, este artigo é para você. Neste artigo, vou mostrar como configurar um servidor Git Smart HTTP no Ubuntu com o servidor Apache HTTP. Então vamos começar.

Os pacotes Git e Apache estão disponíveis no repositório oficial de pacotes do Ubuntu. Portanto, você pode instalá-lo facilmente com o gerenciador de pacotes APT.







Primeiro, atualize o cache do repositório de pacotes APT com o seguinte comando:



$sudoatualização apt



O cache do repositório de pacotes APT deve ser atualizado.





Agora, instale o Git e o Apache com o seguinte comando:



$sudoaptoinstalar irapache2 apache2-utils

Agora aperte E e então pressione para confirmar a instalação.

Git e Apache devem ser instalados.

Configurando o servidor Apache HTTP para Git:

Agora, habilite o Apache mod_env , mod_cgi , mod_alias e mod_rewrite módulos com o seguinte comando:

$sudoa2enmodenvcgiapelidoreescrever

Os módulos Apache necessários devem ser habilitados.

Agora, crie um novo diretório / var / www / git para manter todos os repositórios Git com o seguinte comando:

$sudo mkdir /Onde/www/ir

Agora, crie uma nova configuração de site Apache /etc/apache2/sites-available/git.conf para Git com o seguinte comando:

$sudo nano /etc/apache2/sites disponíveis/git.conf

Agora, digite as seguintes linhas no arquivo de configuração:

<VirtualHost*:80>
ServerAdmin webmaster@localhost

SetEnv GIT_PROJECT_ROOT<Forte> /Onde/www/irForte>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/ir/ /usr/lib/git-core/git-http-backend/

Pseudônimo/ir /Onde/www/ir

<Diretório/usr/lib/git-core>
Opções + ExecCGI-MultiViews+ SymLinksIfOwnerMatch
AllowOverride Nenhum
Exigir todos concedidos
Diretório>

DocumentRoot/Onde/www/html

<Diretório/Onde/www>
Opções de índices FollowSymLinks MultiViews
AllowOverride Nenhum
Exigir todos concedidos
Diretório>


ErrorLog$ {APACHE_LOG_DIR}/error.log
Aviso LogLevel
CustomLog$ {APACHE_LOG_DIR}/access.log combinado
VirtualHost>

O arquivo de configuração final tem a seguinte aparência. Agora, salve o arquivo de configuração pressionando + X seguido pela E e .

Agora, desative a configuração padrão do site Apache com o seguinte comando:

$sudoa2dissite 000-default.conf

A configuração padrão do site deve ser desabilitada.

Agora, habilite a configuração do site Git com o seguinte comando:

$sudoa2ensite git.conf

A configuração do site Git deve ser habilitada.

Agora, reinicie o servidor Apache HTTP com o seguinte comando:

$sudosystemctl restart apache2

Para inicializar um novo repositório Git acessível no servidor Apache HTTP, você terá que executar alguns comandos. Você não quer fazer a mesma coisa repetidamente apenas para criar um novo repositório Git. Então, decidi escrever um script de shell para esse propósito.

Primeiro, crie um novo script de shell /usr/local/bin/git-create-repo.sh com o seguinte comando:

$sudo nano /usr/local/sou/git-create-repo.sh

Agora, digite as seguintes linhas de códigos no script de shell.

#! / bin / bash

GIT_DIR='/ var / www / git'
REPO_NAME=$ 1

mkdir -p '$ {GIT_DIR}/$ {REPO_NAME}.ir'
CD '$ {GIT_DIR}/$ {REPO_NAME}.ir'

git init --somente &> /dev/nulo
tocargit-daemon-export-ok
cpganchos/ganchos post-update.sample/pós-atualização
git confighttp.receivepackverdade
git update-server-info
chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.ir'
jogou fora 'Repositório Git'$ {REPO_NAME}' criado em$ {GIT_DIR}/$ {REPO_NAME}.ir'

Depois de digitar essas linhas, o script de shell deve ter a seguinte aparência. Agora, salve o arquivo pressionando + X seguido pela E e .

Agora, adicione permissão de execução ao script de shell com o seguinte comando:

$sudo chmod+ x/usr/local/sou/git-create-repo.sh

Agora, crie um novo repositório Git teste na raiz do projeto Git / var / www / git usando o git-create-repo.sh script de shell da seguinte maneira:

$sudogit-create-repo.shteste

O repositório Git teste deve ser criado.

Para acessar o repositório Git, você precisa do endereço IP do servidor Git HTTP.

$ippara

Como você pode ver, o endereço IP no meu caso é 192.168.21.208 . Será diferente para você. Substitua-o pelo seu a partir de agora.

Agora, você pode clonar o teste Repositório Git da seguinte forma:

$git clonehttp://192.168.21.208/ir/test.go

O repositório Git teste deve ser clonado.

Agora, vamos adicionar um novo commit ao teste Repositório Git.

$CDteste/
$jogou fora 'Olá Mundo' >Olá
$git add.
$git commit -m 'confirmação inicial'

Agora, faça upload das alterações para o teste Repositório Git no servidor da seguinte maneira:

$git pushorigem

Como você pode ver, as alterações são carregadas sem problemas.

Configurando a autenticação do usuário:

Nesta seção, vou mostrar como configurar a autenticação do usuário nos repositórios Git no servidor.

Primeiro, edite o git.conf arquivo de configuração do site da seguinte maneira:

$sudo nano /etc/apache2/sites disponíveis/git.conf

Agora, adicione a seção a seguir ao arquivo de configuração.

<LocationMatch/ir/.*.ir>
AuthType Basic
AuthName'Verificação Git'
AuthUserFile/etc/apache2/git.passwd
Requer usuário válido
LocationMatch>

Aqui, /etc/apache2/git.passwd é o arquivo de banco de dados do usuário.

O arquivo de configuração final deve ser o seguinte. Agora, salve o arquivo pressionando + X seguido pela E e .

Agora, crie um novo arquivo de banco de dados do usuário /etc/apache2/git.passwd e adicionar um novo usuário (digamos ) para o arquivo de banco de dados da seguinte forma:

$sudohtpasswd-c /etc/apache2/git.passwd shovon

Agora, digite uma nova senha para o novo usuário e pressione .

Digite novamente a mesma senha e pressione .

O par usuário-senha deve ser adicionado ao banco de dados.

Agora, reinicie o servidor Apache HTTP com o seguinte comando:

$sudosystemctl restart apache2

Agora, se você tentar clonar o teste repositório novamente, você será solicitado a autenticar como pode ver na imagem abaixo.

Depois de autenticar usando o nome de usuário e a senha, você poderá acessar o repositório Git.

Mesmo quando você tenta fazer push ou pull do repositório Git, também será solicitado o nome de usuário e a senha.

Depois de autenticar, push / pull funcionará.

Você também pode definir diferentes bancos de dados de usuários para diferentes repositórios Git. Isso pode ser útil para projetos onde muitas pessoas estão trabalhando juntas no mesmo repositório Git.

Para definir a autenticação do repositório Git, primeiro, edite o git.conf arquivo de configuração do site da seguinte maneira:

$sudo nano /etc/apache2/sites disponíveis/git.conf

Agora, adicione as seguintes linhas no arquivo de configuração.

<Localização/ir/test.go>
AuthType Basic
AuthName'Verificação Git'
AuthUserFile/etc/apache2/git.test.passwd
Requer usuário válido
Localização>

<Localização/ir/test2.git>
AuthType Basic
AuthName'Verificação Git'
AuthUserFile/etc/apache2/git.test2.passwd
Requer usuário válido
Localização>

Para cada repositório Git teste e test2 , para seção é definida. Um arquivo de banco de dados de usuário diferente é usado para cada repositório Git.

O arquivo de configuração final deve ser o seguinte. Agora, salve o arquivo de configuração pressionando + X seguido pela E e .

Agora, você pode criar os bancos de dados de usuário necessários da seguinte maneira:

$sudohtpasswd-c /etc/apache2/git.test.passwd NOME DE USUÁRIO
$sudohtpasswd-c /etc/apache2/git.test2.passwd NOME DE USUÁRIO

Quando terminar, reinicie o servidor Apache HTTP com o seguinte comando:

$sudosystemctl restart apache2

Agora, cada repositório Git deve ter seu próprio conjunto de usuários que podem acessá-lo.

Então, é assim que você configura o Git Server com o Apache HTTP Server no Ubuntu. Obrigado por ler este artigo.