Konfigurasikan Pelayan Git dengan HTTP di Ubuntu

Configure Git Server With Http Ubuntu

Sekiranya anda ingin menyediakan Pelayan HTTP Git untuk bekerja dengan repositori Git secara peribadi, maka artikel ini sesuai untuk anda. Dalam artikel ini, saya akan menunjukkan kepada anda cara mengkonfigurasi pelayan Git Smart HTTP di Ubuntu dengan pelayan HTTP Apache. Jadi, mari kita mulakan.

Pakej Git dan Apache boleh didapati di repositori pakej rasmi Ubuntu. Oleh itu, anda boleh memasangnya dengan mudah dengan pengurus pakej APT.



Pertama, kemas kini cache repositori pakej APT dengan arahan berikut:



$sudokemas kini tepat



Cache repositori pakej APT harus dikemas kini.

Sekarang, pasang Git dan Apache dengan arahan berikut:



$sudotepatpasang pergiapache2 apache2-utils

Sekarang, tekan DAN dan kemudian tekan untuk mengesahkan pemasangan.

Git dan Apache harus dipasang.

Mengkonfigurasi Pelayan HTTP Apache untuk Git:

Sekarang, aktifkan Apache mod_env , mod_cgi , mod_alias dan mod_rewrite modul dengan arahan berikut:

$sudoa2enmodenvcgialiasmenulis semula

Modul Apache yang diperlukan harus diaktifkan.

Sekarang, buat direktori baru / var / www / git kerana menyimpan semua repositori Git dengan arahan berikut:

$sudo mkdir /di mana/www/pergi

Sekarang, buat konfigurasi laman Apache baru /etc/apache2/sites-available/git.conf untuk Git dengan arahan berikut:

$sudo nano /dan lain-lain/apache2/laman web-tersedia/git.conf

Sekarang, ketik baris berikut dalam fail konfigurasi:

<VirtualHost*:80>
Juruweb ServerAdmin@localhost

TetapkanEnv GIT_PROJECT_ROOT<kuat> /di mana/www/pergikuat>
TetapkanEnv GIT_HTTP_EXPORT_ALL
SkripAlias/pergi/ /usr/lib/teras git/git-http-backend/

Alias/pergi /di mana/www/pergi

<Direktori/usr/lib/teras git>
Pilihan + ExecCGI-MultiViews+ SymLinksIfOwnerMatch
AllowOverride Tiada
Memerlukan semua diberikan
Direktori>

DocumentRoot/di mana/www/html

<Direktori/di mana/www>
Pilihan Indeks FollowSymLinks MultiViews
AllowOverride Tiada
Memerlukan semua diberikan
Direktori>


Ralat Ralat$ {APACHE_LOG_DIR}/ralat.log
LogLevel memberi amaran
CustomLog$ {APACHE_LOG_DIR}/akses.log digabungkan
VirtualHost>

Fail konfigurasi akhir kelihatan seperti berikut. Sekarang, simpan fail konfigurasi dengan menekan + X diikuti oleh DAN dan .

Sekarang, lumpuhkan konfigurasi laman Apache lalai dengan arahan berikut:

$sudoa2dissite 000-default.conf

Konfigurasi laman web lalai harus dilumpuhkan.

Sekarang, aktifkan konfigurasi laman Git dengan arahan berikut:

$sudoa2ensite git.conf

Konfigurasi laman Git harus diaktifkan.

Sekarang, mulakan semula pelayan HTTP Apache dengan arahan berikut:

$sudosystemctl mulakan semula apache2

Untuk bootstrap repositori Git baru yang dapat diakses melalui pelayan HTTP Apache, anda harus menjalankan beberapa perintah. Anda tidak mahu melakukan perkara yang sama berulang kali hanya untuk membuat repositori Git baru. Oleh itu, saya memutuskan untuk menulis skrip shell untuk tujuan itu.

Pertama, buat skrip shell baru /usr/local/bin/git-create-repo.sh dengan arahan berikut:

$sudo nano /usr/tempatan/saya/git-create-repo.sh

Sekarang, ketik baris kod berikut dalam skrip shell.

#! / bin / bash

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

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

git init - betul &> /penipu/batal
sentuhangit-daemon-eksport-ok
cpcangkuk/pasca kemas kini.cangkuk contoh/pasca kemas kini
konfigurasi githttp.receivepackbenar
git kemas kini-pelayan-maklumat
chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.go '
membuang 'Git repositori'$ {REPO_NAME}'dibuat di$ {GIT_DIR}/$ {REPO_NAME}.go '

Sebaik sahaja anda menaip baris ini, skrip shell akan kelihatan seperti berikut. Sekarang, simpan fail dengan menekan + X diikuti oleh DAN dan .

Sekarang, tambahkan izin eksekusi ke skrip shell dengan perintah berikut:

$sudo chmod+ x/usr/tempatan/saya/git-create-repo.sh

Sekarang, buat repositori Git baru ujian dalam akar projek Git / var / www / git menggunakan git-create-repo.sh skrip shell seperti berikut:

$sudogit-create-repo.shujian

Repositori Git ujian harus dibuat.

Untuk mengakses repositori Git, anda memerlukan alamat IP pelayan Git HTTP.

$ipke

Seperti yang anda lihat, alamat IP dalam kes saya adalah 192.168.21.208 . Ia akan berbeza bagi anda. Gantikannya dengan milik anda mulai sekarang.

Sekarang, anda boleh mengklon ujian Git repositori seperti berikut:

$klon githttp://192.168.21.208/pergi/ujian.go

Repositori Git ujian harus diklon.

Sekarang, mari tambah komitmen baru ke ujian Git repositori.

$CDujian/
$membuang 'Hai dunia' >hello
$git tambah.
$git komit -m 'komitmen awal'

Sekarang, muat naik perubahan ke ujian Git repositori di pelayan seperti berikut:

$tolak gitasal

Seperti yang anda lihat, perubahannya dimuat dengan baik.

Mengkonfigurasi Pengesahan Pengguna:

Di bahagian ini, saya akan menunjukkan kepada anda cara mengkonfigurasi pengesahan pengguna di repositori Git di pelayan.

Pertama, edit git.conf fail konfigurasi laman web seperti berikut:

$sudo nano /dan lain-lain/apache2/laman web-tersedia/git.conf

Sekarang, tambahkan bahagian berikut dalam fail konfigurasi.

<LokasiPadan/pergi/.* .go>
Asas Jenis Auth
Nama Pengarang'Pengesahan Git'
AuthUserFile/dan lain-lain/apache2/git.passwd
Memerlukan pengguna yang sah
LokasiPadan>

Di sini, /etc/apache2/git.passwd adalah fail pangkalan data pengguna.

Fail konfigurasi akhir akan kelihatan seperti berikut. Sekarang, simpan fail dengan menekan + X diikuti oleh DAN dan .

Sekarang, buat fail pangkalan data pengguna baru /etc/apache2/git.passwd dan tambahkan pengguna baru (katakanlah penyodok ) ke fail pangkalan data seperti berikut:

$sudohtpasswd-c /dan lain-lain/apache2/git.passwd shovon

Sekarang, taipkan kata laluan baru untuk pengguna baru dan tekan .

Taip semula kata laluan yang sama dan tekan .

Pasangan kata laluan pengguna harus ditambahkan ke pangkalan data.

Sekarang, mulakan semula pelayan HTTP Apache dengan arahan berikut:

$sudosystemctl mulakan semula apache2

Sekarang, jika anda cuba mengklon ujian repositori sekali lagi, anda akan diminta untuk mengesahkan seperti yang anda lihat dalam tangkapan skrin di bawah.

Setelah anda mengesahkan menggunakan nama pengguna dan kata laluan, anda akan dapat mengakses repositori Git.

Walaupun anda cuba menolak atau menarik dari repositori Git, anda juga akan diminta untuk nama pengguna dan kata laluan.

Setelah anda mengesahkan, tekan / tarik akan berfungsi.

Anda juga boleh menetapkan pangkalan data pengguna yang berbeza untuk repositori Git yang berbeza. Ini mungkin berguna untuk projek di mana banyak orang bekerjasama di repositori Git yang sama.

Untuk menetapkan pengesahan Git repositori, pertama, edit git.conf fail konfigurasi laman web seperti berikut:

$sudo nano /dan lain-lain/apache2/laman web-tersedia/git.conf

Sekarang, tambahkan baris berikut dalam fail konfigurasi.

<Lokasi/pergi/ujian.go>
Asas Jenis Auth
Nama Pengarang'Pengesahan Git'
AuthUserFile/dan lain-lain/apache2/git.test.passwd
Memerlukan pengguna yang sah
Lokasi>

<Lokasi/pergi/ujian2.git>
Asas Jenis Auth
Nama Pengarang'Pengesahan Git'
AuthUserFile/dan lain-lain/apache2/git.test2.passwd
Memerlukan pengguna yang sah
Lokasi>

Untuk setiap repositori Git ujian dan ujian2 , ke bahagian ditakrifkan. Fail pangkalan data pengguna yang berbeza digunakan untuk setiap repositori Git.

Fail konfigurasi akhir akan kelihatan seperti berikut. Sekarang, simpan fail konfigurasi dengan menekan + X diikuti oleh DAN dan .

Sekarang, anda boleh membuat pangkalan data pengguna yang diperlukan seperti berikut:

$sudohtpasswd-c /dan lain-lain/apache2/git.test.passwd PENGGUNA
$sudohtpasswd-c /dan lain-lain/apache2/git.test2.passwd PENGGUNA

Setelah selesai, mulakan semula pelayan HTTP Apache dengan arahan berikut:

$sudosystemctl mulakan semula apache2

Sekarang, setiap repositori Git harus mempunyai set pengguna sendiri yang dapat mengaksesnya.

Jadi, begitulah cara anda mengkonfigurasi Pelayan Git dengan Pelayan HTTP Apache di Ubuntu. Terima kasih kerana membaca artikel ini.