Διαμορφώστε τον Git Server με HTTP στο Ubuntu

Configure Git Server With Http Ubuntu



Εάν θέλετε να ρυθμίσετε έναν διακομιστή Git HTTP για ιδιωτική εργασία με αποθετήρια Git, τότε αυτό το άρθρο είναι για εσάς. Σε αυτό το άρθρο, θα σας δείξω πώς να διαμορφώσετε έναν διακομιστή Git Smart HTTP στο Ubuntu με διακομιστή Apache HTTP. Λοιπόν, ας ξεκινήσουμε.

Τα πακέτα Git και Apache είναι διαθέσιμα στο επίσημο αποθετήριο πακέτων του Ubuntu. Έτσι, μπορείτε εύκολα να το εγκαταστήσετε με τον διαχειριστή πακέτων APT.







Αρχικά, ενημερώστε την προσωρινή μνήμη αποθήκευσης του πακέτου APT με την ακόλουθη εντολή:



$sudoκατάλληλη ενημέρωση



Η προσωρινή μνήμη αποθήκευσης πακέτων APT θα πρέπει να ενημερωθεί.





Τώρα, εγκαταστήστε το Git και το Apache με την ακόλουθη εντολή:



$sudoκατάλληλοςεγκαθιστώ πηγαίνωapache2 apache2-utils

Τώρα, πατήστε ΚΑΙ και μετά πατήστε για επιβεβαίωση της εγκατάστασης.

Πρέπει να εγκατασταθούν τα Git και Apache.

Διαμόρφωση διακομιστή Apache HTTP για Git:

Τώρα, ενεργοποιήστε το Apache mod_env , mod_cgi , mod_alias και mod_rewrite μονάδες με την ακόλουθη εντολή:

$sudoa2enmodenvcgiψευδώνυμοξαναγράφω

Οι απαιτούμενες μονάδες Apache θα πρέπει να είναι ενεργοποιημένες.

Τώρα, δημιουργήστε έναν νέο κατάλογο /var/www/git για τη διατήρηση όλων των αποθετηρίων Git με την ακόλουθη εντολή:

$sudo mkdir /όπου/www/πηγαίνω

Τώρα, δημιουργήστε μια νέα διαμόρφωση ιστότοπου Apache /etc/apache2/sites-available/git.conf για το Git με την ακόλουθη εντολή:

$sudo νανο /και τα λοιπά/apache2/ιστότοποι-διαθέσιμοι/git.conf

Τώρα, πληκτρολογήστε τις ακόλουθες γραμμές στο αρχείο διαμόρφωσης:

<VirtualHost*:80>>
ServerAdmin webmaster@localhost

SetEnv GIT_PROJECT_ROOT<ισχυρός> /όπου/www/πηγαίνωισχυρός>>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/πηγαίνω/ /usr/lib/git-core/git-http-backend/

Ψευδώνυμο/πηγαίνω /όπου/www/πηγαίνω

<Ευρετήριο/usr/lib/git-core>>
Επιλογές +ExecCGI-MultiViews+SymLinksIfOwnerMatch
AllowOverride Καμία
Απαιτούνται όλα τα χορηγούμενα
Ευρετήριο>>

DocumentRoot/όπου/www/html

<Ευρετήριο/όπου/www>>
Επιλογές Ευρετήρια FollowSymLinks MultiViews
AllowOverride Καμία
Απαιτούνται όλα τα χορηγούμενα
Ευρετήριο>>


Αρχείο καταγραφής σφαλμάτων$ {APACHE_LOG_DIR}/αρχείο καταγραφής σφαλμάτων
Προειδοποίηση LogLevel
CustomLog$ {APACHE_LOG_DIR}/access.log σε συνδυασμό
VirtualHost>>

Το τελικό αρχείο διαμόρφωσης φαίνεται ως εξής. Τώρα, αποθηκεύστε το αρχείο διαμόρφωσης πατώντας + Χ ακολουθούμενη από ΚΑΙ και Το

Τώρα, απενεργοποιήστε την προεπιλεγμένη διαμόρφωση ιστότοπου Apache με την ακόλουθη εντολή:

$sudoa2dissite 000-default.conf

Η προεπιλεγμένη διαμόρφωση ιστότοπου πρέπει να απενεργοποιηθεί.

Τώρα, ενεργοποιήστε τη διαμόρφωση ιστότοπου Git με την ακόλουθη εντολή:

$sudoa2ensite git.conf

Η διαμόρφωση της τοποθεσίας Git πρέπει να είναι ενεργοποιημένη.

Τώρα, επανεκκινήστε τον διακομιστή Apache HTTP με την ακόλουθη εντολή:

$sudosystemctl επανεκκίνηση apache2

Για να εκκινήσετε ένα νέο αποθετήριο Git προσβάσιμο μέσω του διακομιστή Apache HTTP, θα πρέπει να εκτελέσετε μερικές εντολές. Δεν θέλετε να κάνετε το ίδιο πράγμα ξανά και ξανά μόνο για να δημιουργήσετε ένα νέο αποθετήριο Git. Έτσι, αποφάσισα να γράψω ένα σενάριο για αυτό το σκοπό.

Αρχικά, δημιουργήστε ένα νέο σενάριο κελύφους /usr/local/bin/git-create-repo.sh με την ακόλουθη εντολή:

$sudo νανο /usr/τοπικός/είμαι/git-create-repo.sh

Τώρα, πληκτρολογήστε τις ακόλουθες γραμμές κωδικών στο σενάριο κελύφους.

#!/bin/bash

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

mkdir '$ {GIT_DIR}/$ {REPO_NAME}.πηγαίνω'
CD '$ {GIT_DIR}/$ {REPO_NAME}.πηγαίνω'

git init --μόλις &> /dev/μηδενικό
αφήgit-daemon-export-ok
cpγάντζοι/μετα-ενημέρωση.γάντζους δειγμάτων/μετά την ενημέρωση
git confighttp.receivepackαληθής
git update-server-info
chown -Ρφwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.πηγαίνω'
πέταξε έξω 'Αποθήκη Git'$ {REPO_NAME}'δημιουργήθηκε στο$ {GIT_DIR}/$ {REPO_NAME}.πηγαίνω'

Μόλις πληκτρολογήσετε αυτές τις γραμμές, το σενάριο κελύφους πρέπει να έχει την ακόλουθη μορφή. Τώρα, αποθηκεύστε το αρχείο πατώντας + Χ ακολουθούμενη από ΚΑΙ και Το

Τώρα, προσθέστε άδεια εκτέλεσης στο σενάριο κελύφους με την ακόλουθη εντολή:

$sudo chmod+ x/usr/τοπικός/είμαι/git-create-repo.sh

Τώρα, δημιουργήστε ένα νέο αποθετήριο Git δοκιμή στη ρίζα του έργου Git /var/www/git χρησιμοποιώντας το git-create-repo.sh shell script ως εξής:

$sudogit-create-repo.shδοκιμή

Το αποθετήριο Git δοκιμή πρέπει να δημιουργηθεί.

Για να αποκτήσετε πρόσβαση στο αποθετήριο Git, χρειάζεστε τη διεύθυνση IP του διακομιστή Git HTTP.

$ipπρος το

Όπως μπορείτε να δείτε, η διεύθυνση IP στην περίπτωσή μου είναι 192.168.21.208 Το Θα είναι διαφορετικό για εσάς. Αντικαταστήστε το με το δικό σας από εδώ και στο εξής.

Τώρα, μπορείτε να κλωνοποιήσετε το δοκιμή Αποθετήριο Git ως εξής:

$git κλώνοςhttp://192.168.21.208/πηγαίνω/test.go

Το αποθετήριο Git δοκιμή πρέπει να κλωνοποιηθεί.

Τώρα, ας προσθέσουμε μια νέα δέσμευση στο δοκιμή Αποθετήριο Git.

$CDδοκιμή/
$πέταξε έξω 'Γειά σου Κόσμε' >>γεια σας
$git addΤο
$git commit «αρχική δέσμευση»

Τώρα, ανεβάστε τις αλλαγές στο δοκιμή Αποθήκη Git στον διακομιστή ως εξής:

$git pushπροέλευση

Όπως μπορείτε να δείτε, οι αλλαγές ανεβαίνουν μια χαρά.

Διαμόρφωση ελέγχου ταυτότητας χρήστη:

Σε αυτήν την ενότητα, θα σας δείξω πώς να ρυθμίσετε τον έλεγχο ταυτότητας χρήστη στα αποθετήρια Git του διακομιστή.

Αρχικά, επεξεργαστείτε το git.conf αρχείο διαμόρφωσης ιστότοπου ως εξής:

$sudo νανο /και τα λοιπά/apache2/ιστότοποι-διαθέσιμοι/git.conf

Τώρα, προσθέστε την ακόλουθη ενότητα στο αρχείο διαμόρφωσης.

<LocationMatch/πηγαίνω/Το*.πηγαίνω>>
AuthType Basic
AuthName'Επαλήθευση Git'
AuthUserFile/και τα λοιπά/apache2/git.passwd
Απαιτείται έγκυρος χρήστης
LocationMatch>>

Εδώ, /etc/apache2/git.passwd είναι το αρχείο βάσης δεδομένων χρήστη.

Το τελικό αρχείο διαμόρφωσης πρέπει να έχει την ακόλουθη μορφή. Τώρα, αποθηκεύστε το αρχείο πατώντας + Χ ακολουθούμενη από ΚΑΙ και Το

Τώρα, δημιουργήστε ένα νέο αρχείο βάσης δεδομένων χρήστη /etc/apache2/git.passwd και προσθέστε έναν νέο χρήστη (ας πούμε shovon ) στο αρχείο βάσης δεδομένων ως εξής:

$sudohtpasswd-ντο /και τα λοιπά/apache2/git.passwd shovon

Τώρα, πληκτρολογήστε έναν νέο κωδικό πρόσβασης για τον νέο χρήστη και πατήστε Το

Πληκτρολογήστε ξανά τον ίδιο κωδικό πρόσβασης και πατήστε Το

Το ζεύγος χρήστη-κωδικού πρόσβασης πρέπει να προστεθεί στη βάση δεδομένων.

Τώρα, επανεκκινήστε τον διακομιστή Apache HTTP με την ακόλουθη εντολή:

$sudosystemctl επανεκκίνηση apache2

Τώρα, αν προσπαθήσετε να κλωνοποιήσετε το δοκιμή και πάλι, θα σας ζητηθεί να κάνετε έλεγχο ταυτότητας όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης.

Μόλις πραγματοποιήσετε έλεγχο ταυτότητας χρησιμοποιώντας το όνομα χρήστη και τον κωδικό πρόσβασης, θα έχετε πρόσβαση στο αποθετήριο Git.

Ακόμα και όταν προσπαθείτε να σπρώξετε ή να τραβήξετε από το αποθετήριο Git, θα σας ζητηθεί επίσης το όνομα χρήστη και ο κωδικός πρόσβασης.

Μόλις πραγματοποιήσετε έλεγχο ταυτότητας, το push/pull θα λειτουργήσει.

Μπορείτε επίσης να ορίσετε διαφορετική βάση δεδομένων χρηστών για διαφορετικά αποθετήρια Git. Αυτό μπορεί να είναι χρήσιμο για έργα όπου πολλοί άνθρωποι εργάζονται μαζί στο ίδιο αποθετήριο Git.

Για να ορίσετε τον έλεγχο ταυτότητας στο χώρο αποθήκευσης Git, πρώτα, επεξεργαστείτε το git.conf αρχείο διαμόρφωσης ιστότοπου ως εξής:

$sudo νανο /και τα λοιπά/apache2/ιστότοποι-διαθέσιμοι/git.conf

Τώρα, προσθέστε τις ακόλουθες γραμμές στο αρχείο διαμόρφωσης.

<Τοποθεσία/πηγαίνω/test.go>>
AuthType Basic
AuthName'Επαλήθευση Git'
AuthUserFile/και τα λοιπά/apache2/git.test.passwd
Απαιτείται έγκυρος χρήστης
Τοποθεσία>>

<Τοποθεσία/πηγαίνω/test2.git>>
AuthType Basic
AuthName'Επαλήθευση Git'
AuthUserFile/και τα λοιπά/apache2/git.test2.passwd
Απαιτείται έγκυρος χρήστης
Τοποθεσία>>

Για κάθε αποθετήριο Git δοκιμή και δοκιμή2 , προς το ορίζεται το τμήμα. Ένα διαφορετικό αρχείο βάσης δεδομένων χρηστών χρησιμοποιείται για κάθε αποθετήριο Git.

Το τελικό αρχείο διαμόρφωσης πρέπει να έχει την ακόλουθη μορφή. Τώρα, αποθηκεύστε το αρχείο διαμόρφωσης πατώντας + Χ ακολουθούμενη από ΚΑΙ και Το

Τώρα, μπορείτε να δημιουργήσετε τις απαιτούμενες βάσεις δεδομένων χρηστών ως εξής:

$sudohtpasswd-ντο /και τα λοιπά/apache2/git.test.passwd USERNAME
$sudohtpasswd-ντο /και τα λοιπά/apache2/git.test2.passwd ΟΝΟΜΑ ΧΡΗΣΤΗ

Μόλις τελειώσετε, επανεκκινήστε τον διακομιστή Apache HTTP με την ακόλουθη εντολή:

$sudosystemctl επανεκκίνηση apache2

Τώρα, κάθε αποθετήριο Git πρέπει να έχει το δικό του σύνολο χρηστών που μπορούν να έχουν πρόσβαση σε αυτό.

Έτσι, έτσι διαμορφώνετε τον Git Server με Apache HTTP Server στο Ubuntu. Ευχαριστώ που διαβάσατε αυτό το άρθρο.