Git

Configure o servidor Git com HTTP no Ubuntu

Configure o servidor Git com HTTP no Ubuntu
Se você deseja configurar um servidor Git HTTP 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 servidor Apache HTTP. Então vamos começar.

Instalando Git e Apache HTTP Server:

Os pacotes Git e Apache estão disponíveis no repositório oficial de pacotes do Ubuntu. Então, 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:

$ sudo apt update

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

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

$ sudo apt install git apache2 apache2-utils

Agora aperte Y 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:

$ sudo a2enmod env cgi alias reescrever

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 / var / www / git

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-available / git.conf

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


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
 

Opções + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Nenhum
Exigir todos concedidos

 
DocumentRoot / var / www / html
 

Opções de índices FollowSymLinks MultiViews
AllowOverride Nenhum
Exigir todos concedidos

 
 
ErrorLog $ APACHE_LOG_DIR / erro.registro
Aviso LogLevel
CustomLog $ APACHE_LOG_DIR / acesso.log combinado

O arquivo de configuração final se parece com o seguinte. Agora, salve o arquivo de configuração pressionando + X seguido pela Y e .

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

$ sudo a2dissite 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:

$ sudo a2ensite git.conf

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

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

$ sudo systemctl reiniciar apache2

Para inicializar um novo repositório Git acessível através do 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 / bin / 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.idiota "
cd "$ GIT_DIR / $ REPO_NAME.idiota "
 
git init --bare &> / dev / null
toque em git-daemon-export-ok
cp hooks / post-update.exemplo de ganchos / pós-atualização
git config http.receivepack true
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.idiota "
echo "Repositório Git '$ REPO_NAME' criado em $ GIT_DIR / $ REPO_NAME.idiota "

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

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

$ sudo chmod + x / usr / local / bin / 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:

$ sudo git-create-repo.teste sh

O repositório Git teste deve ser criado.

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

$ ip a

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 clone http: // 192.168.21.208 / git / teste.idiota

O repositório Git teste deveria ser clonado.

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

$ cd test /
$ echo "Hello World"> hello
$ git add .
$ git commit -m 'commit inicial'

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

$ git push origin

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 idiota.conf arquivo de configuração do site da seguinte forma:

$ sudo nano / etc / apache2 / sites-available / git.conf

Agora, adicione a seguinte seção no arquivo de configuração.


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.senha
Requer usuário válido

Aqui, / etc / apache2 / git.senha é 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 Y e .

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

$ sudo htpasswd -c / etc / apache2 / git.pá de passe

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:

$ sudo systemctl reiniciar 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 senha, você será capaz de acessar o repositório Git.

Mesmo quando você tenta empurrar ou puxar 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 idiota.conf arquivo de configuração do site da seguinte maneira:

$ sudo nano / etc / apache2 / sites-available / git.conf

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


AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.teste.senha
Requer usuário válido

 

AuthType Basic
AuthName "Git Verification"
AuthUserFile / etc / apache2 / git.test2.senha
Requer usuário válido

Para cada repositório Git teste e test2, uma seção está 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 Y e .

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

$ sudo htpasswd -c / etc / apache2 / git.teste.passwd USERNAME
$ sudo htpasswd -c / etc / apache2 / git.test2.passwd USERNAME

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

$ sudo systemctl reiniciar 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.

Remapeie os botões do mouse de maneira diferente para software diferente com o controle de botão do mouse X
Talvez você precise de uma ferramenta que possa fazer o controle do seu mouse mudar com cada aplicativo que você usa. Se for esse o caso, você pode ex...
Análise do mouse sem fio Microsoft Sculpt Touch
Recentemente li sobre o Microsoft Sculpt Touch mouse sem fio e decidi comprá-lo. Depois de usá-lo por um tempo, decidi compartilhar minha experiência ...
AppyMouse na tela Trackpad e ponteiro do mouse para tablets Windows
Os usuários de tablets costumam perder o ponteiro do mouse, especialmente quando costumam usar laptops. Os smartphones e tablets touchscreen vêm com m...