I-configure ang Git Server sa HTTP sa Ubuntu

Configure Git Server With Http Ubuntu



Kung nais mong mag-set up ng isang Git HTTP Server para sa pagtatrabaho sa mga Git na repository nang pribado, kung gayon ang artikulong ito ay para sa iyo. Sa artikulong ito, ipapakita ko sa iyo kung paano i-configure ang isang Git Smart HTTP server sa Ubuntu gamit ang Apache HTTP server. Kaya, magsimula na tayo.

Ang mga pakete ng Git at Apache ay magagamit sa opisyal na imbakan ng package ng Ubuntu. Kaya, madali mong mai-install ito sa APT package manager.







Una, i-update ang APT package repository cache gamit ang sumusunod na utos:



$sudoapt update



Ang cache ng APT package repository ay dapat na-update.





Ngayon, i-install ang Git at Apache gamit ang sumusunod na utos:



$sudoapti-install punta ka naapache2 apache2-utils

Ngayon, pindutin AT at pagkatapos ay pindutin upang kumpirmahin ang pag-install.

Dapat na mai-install ang Git at Apache.

Pag-configure ng Apache HTTP Server para sa Git:

Ngayon, paganahin ang Apache mod_env , mod_cgi , mod_alias at mod_rewrite mga module na may sumusunod na utos:

$sudoa2enmodenvcgialyasmuling pagsusulat

Dapat paganahin ang mga kinakailangang module ng Apache.

Ngayon, lumikha ng isang bagong direktoryo / var / www / git para sa pagpapanatili ng lahat ng mga repositoryang Git sa sumusunod na utos:

$sudo mkdir /kung saan/www/punta ka na

Ngayon, lumikha ng isang bagong pagsasaayos ng site ng Apache /etc/apache2/site-available/git.conf para kay Git na may sumusunod na utos:

$sudo nano /atbp/apache2/mga site-magagamit/git.conf

Ngayon, i-type ang mga sumusunod na linya sa file ng pagsasaayos:

<VirtualHost*:80>
ServerAdmin webmaster@localhost

SetEnv GIT_PROJECT_ROOT<malakas> /kung saan/www/punta ka namalakas>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/punta ka na/ /usr/lib/git-core/git-http-backend/

Alyas/punta ka na /kung saan/www/punta ka na

<Direktoryo/usr/lib/git-core>
Mga Pagpipilian + ExecCGI-MultiViews+ SymLinksIfOwnerMatch
AllowOverride Wala
Hilingin ang lahat ng ipinagkaloob
Direktoryo>

DocumentRoot/kung saan/www/html

<Direktoryo/kung saan/www>
Mga Pagpipilian sa Mga index Sumunod sa Mga MultiViews
AllowOverride Wala
Hilingin ang lahat ng ipinagkaloob
Direktoryo>


ErrorLog$ {APACHE_LOG_DIR}/error.log
Babala ng LogLevel
CustomLog$ {APACHE_LOG_DIR}/pinagsama ang access.log
VirtualHost>

Ang huling file ng pagsasaayos ay ganito ang hitsura. Ngayon, i-save ang file ng pagsasaayos sa pamamagitan ng pagpindot + X sinundan ng AT at .

Ngayon, huwag paganahin ang default na pagsasaayos ng site ng Apache gamit ang sumusunod na utos:

$sudoa2dissite 000-default.conf

Ang default na pagsasaayos ng site ay dapat na hindi paganahin.

Ngayon, paganahin ang pagsasaayos ng site ng Git sa sumusunod na utos:

$sudoa2ensite git.conf

Dapat paganahin ang pagsasaayos ng site ng Git.

Ngayon, i-restart ang Apache HTTP server sa sumusunod na utos:

$sudoi-restart ng systemctl ang apache2

Upang ma-boottrap ang isang bagong Git na lalagyan na naa-access sa Apache HTTP server, kakailanganin mong magpatakbo ng ilang mga utos. Hindi mo nais na gawin ang parehong bagay nang paulit-ulit lamang upang lumikha ng isang bagong repository ng Git. Kaya, nagpasya akong magsulat ng isang shell script para sa hangaring iyon.

Una, lumikha ng isang bagong script ng shell /usr/local/bin/git-create-repo.sh kasama ang sumusunod na utos:

$sudo nano /usr/lokal/am/git-create-repo.sh

Ngayon, i-type ang mga sumusunod na linya ng mga code sa shell script.

#! / baseng / bash

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

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

git init --lang &> /dev/wala
hawakangit-daemon-export-ok
cpmga kawit/post-update.sample hooks/post-update
git confighttp.receivepacktotoo
git update-server-info
chown -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.go '
itinapon 'Git repository'$ {REPO_NAME}'nilikha sa$ {GIT_DIR}/$ {REPO_NAME}.go '

Sa sandaling nai-type mo ang mga linyang ito, ang shell script ay dapat magmukhang mga sumusunod. Ngayon, i-save ang file sa pamamagitan ng pagpindot + X sinundan ng AT at .

Ngayon, magdagdag ng pahintulot na magpatupad sa shell script na may sumusunod na utos:

$sudo chmod+ x/usr/lokal/am/git-create-repo.sh

Ngayon, lumikha ng isang bagong Repository ng Git pagsusulit sa root ng proyekto ng Git / var / www / git gamit ang git-create-repo.sh shell script tulad ng sumusunod:

$sudogit-create-repo.shpagsusulit

Ang Git repository pagsusulit dapat nilikha.

Upang ma-access ang Git repository, kailangan mo ng IP address ng Git HTTP server.

$ipsa

Tulad ng nakikita mo, ang IP address sa aking kaso ay 192.168.21.208 . Magiging iba ito para sa iyo. Palitan ito ng sa iyo mula ngayon.

Ngayon, maaari mong i-clone ang pagsusulit Ang Git Repository ay ang mga sumusunod:

$git clonehttp://192.168.21.208/punta ka na/pagsubok.go

Ang Git repository pagsusulit dapat cloned.

Ngayon, magdagdag tayo ng isang bagong pangako sa pagsusulit Repositorya ng Git.

$CDpagsusulit/
$itinapon 'Hello World' >Kamusta
$git idagdag.
$git gumawa -m 'paunang gumawa'

Ngayon, i-upload ang mga pagbabago sa pagsusulit Git repository sa server tulad ng sumusunod:

$git pushpinanggalingan

Tulad ng nakikita mo, ang mga pagbabago ay na-upload nang maayos.

Pag-configure ng Pagpapatotoo ng Gumagamit:

Sa seksyong ito, ipapakita ko sa iyo kung paano i-configure ang pagpapatotoo ng gumagamit sa mga repositoryang Git sa server.

Una, i-edit ang git.conf file ng pagsasaayos ng site tulad ng sumusunod:

$sudo nano /atbp/apache2/mga site-magagamit/git.conf

Ngayon, idagdag ang sumusunod na seksyon sa file ng pagsasaayos.

<LokasyonMatch/punta ka na/.* .go>
Pangunahing Batayan ng AuthType
AuthName'Pag-verify ng Git'
AuthUserFile/atbp/apache2/git.passwd
Humiling ng wastong-gumagamit
LokasyonMatch>

Dito, /etc/apache2/git.passwd ay ang file ng database ng gumagamit.

Ang panghuling file ng pagsasaayos ay dapat magmukhang mga sumusunod. Ngayon, i-save ang file sa pamamagitan ng pagpindot + X sinundan ng AT at .

Ngayon, lumikha ng isang bagong file ng database ng gumagamit /etc/apache2/git.passwd at magdagdag ng isang bagong gumagamit (sabihin natin shovon ) sa file ng database tulad ng sumusunod:

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

Ngayon, mag-type ng bagong password para sa bagong gumagamit at pindutin .

I-type muli ang parehong password at pindutin .

Dapat idagdag ang pares ng user-password sa database.

Ngayon, i-restart ang Apache HTTP server sa sumusunod na utos:

$sudoi-restart ng systemctl ang apache2

Ngayon, kung susubukan mong i-clone ang pagsusulit repository muli, hihilingin sa iyo na patunayan tulad ng nakikita mo sa screenshot sa ibaba.

Kapag napatunayan mo gamit ang username at password, magagawa mong i-access ang Git repository.

Kahit na sinubukan mong itulak o hilahin mula sa Git na lalagyan, hihilingin din sa iyo ang username at password.

Kapag napatunayan mo na, gagana ang push / pull.

Maaari mo ring itakda ang iba't ibang database ng gumagamit para sa iba't ibang mga repository ng Git. Maaari itong maging kapaki-pakinabang para sa mga proyekto kung saan maraming tao ang nagtutulungan sa parehong repository ng Git.

Upang itakda ang Git repository-wisdom na pagpapatotoo, una, i-edit ang git.conf file ng pagsasaayos ng site tulad ng sumusunod:

$sudo nano /atbp/apache2/mga site-magagamit/git.conf

Ngayon, idagdag ang mga sumusunod na linya sa file ng pagsasaayos.

<Lokasyon/punta ka na/pagsubok.go>
Pangunahing Batayan ng AuthType
AuthName'Pag-verify ng Git'
AuthUserFile/atbp/apache2/git.test.passwd
Humiling ng wastong-gumagamit
Lokasyon>

<Lokasyon/punta ka na/pagsubok2.git>
Pangunahing Batayan ng AuthType
AuthName'Pag-verify ng Git'
AuthUserFile/atbp/apache2/git.test2.passwd
Humiling ng wastong-gumagamit
Lokasyon>

Para sa bawat Repository ng Git pagsusulit at pagsubok2 , sa tinukoy ang seksyon. Ang isang iba't ibang mga file ng database ng gumagamit ay ginagamit para sa bawat Repository ng Git.

Ang panghuling file ng pagsasaayos ay dapat magmukhang mga sumusunod. Ngayon, i-save ang file ng pagsasaayos sa pamamagitan ng pagpindot + X sinundan ng AT at .

Ngayon, maaari kang lumikha ng kinakailangang mga database ng gumagamit tulad ng sumusunod:

$sudohtpasswd-c /atbp/apache2/git.test.passwd USERNAME
$sudohtpasswd-c /atbp/apache2/git.test2.passwd USERNAME

Kapag tapos ka na, i-restart ang Apache HTTP server sa sumusunod na utos:

$sudoi-restart ng systemctl ang apache2

Ngayon, ang bawat Repository ng Git ay dapat magkaroon ng sarili nitong hanay ng mga gumagamit na maaaring ma-access ito.

Kaya, ganoon ang pag-configure mo ng Git Server sa Apache HTTP Server sa Ubuntu. Salamat sa pagbabasa ng artikulong ito.