Định cấu hình Git Server với HTTP trên Ubuntu

Configure Git Server With Http Ubuntu



Nếu bạn muốn thiết lập Máy chủ Git HTTP để làm việc với các kho lưu trữ Git một cách riêng tư, thì bài viết này là dành cho bạn. Trong bài viết này, tôi sẽ hướng dẫn bạn cách cấu hình máy chủ Git Smart HTTP trên Ubuntu với máy chủ Apache HTTP. Vậy hãy bắt đầu.

Các gói Git và Apache có sẵn trong kho lưu trữ gói chính thức của Ubuntu. Vì vậy, bạn có thể dễ dàng cài đặt nó với trình quản lý gói APT.







Đầu tiên, hãy cập nhật bộ đệm ẩn của kho lưu trữ gói APT bằng lệnh sau:



$sudocập nhật apt



Bộ nhớ cache của kho lưu trữ gói APT nên được cập nhật.





Bây giờ, cài đặt Git và Apache bằng lệnh sau:



$sudođúng cáchTải về điapache2 apache2-utils

Bây giờ bấm và sau đó nhấn để xác nhận cài đặt.

Git và Apache nên được cài đặt.

Cấu hình Máy chủ Apache HTTP cho Git:

Bây giờ, hãy bật Apache mod_env , mod_cgi , mod_aliasmod_rewrite mô-đun với lệnh sau:

$sudoa2enmodenvcgibí danhviết lại

Các mô-đun Apache bắt buộc phải được kích hoạt.

Bây giờ, hãy tạo một thư mục mới / var / www / git để giữ tất cả các kho lưu trữ Git bằng lệnh sau:

$sudo mkdir /ở đâu/www/đi

Bây giờ, hãy tạo một cấu hình trang Apache mới /etc/apache2/sites-available/git.conf cho Git bằng lệnh sau:

$sudo nano /Vân vân/apache2/trang web có sẵn/git.conf

Bây giờ, hãy nhập các dòng sau vào tệp cấu hình:

<Máy chủ ảo*:80>
Quản trị viên web ServerAdmin@localhost

SetEnv GIT_PROJECT_ROOT<mạnh> /ở đâu/www/đimạnh>
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias/đi/ /usr/lib/git-core/git-http-backend/

Bí danh/đi /ở đâu/www/đi

<Danh mục/usr/lib/git-core>
Tùy chọn + ExecCGI-MultiViews+ SymLinksIfOwnerMatch
AllowOverride Không có
Yêu cầu tất cả được cấp
Danh mục>

DocumentRoot/ở đâu/www/html

<Danh mục/ở đâu/www>
Tùy chọn Chỉ mục Theo dõiSymLinks MultiViews
AllowOverride Không có
Yêu cầu tất cả được cấp
Danh mục>


ErrorLog$ {APACHE_LOG_DIR}/lỗi. nhật ký
Cảnh báo LogLevel
CustomLog$ {APACHE_LOG_DIR}/access.log kết hợp
Máy chủ ảo>

Tệp cấu hình cuối cùng trông như sau. Bây giờ, lưu tệp cấu hình bằng cách nhấn + NS theo dõi bởi .

Bây giờ, vô hiệu hóa cấu hình trang Apache mặc định bằng lệnh sau:

$sudoa2dissite 000-default.conf

Cấu hình trang web mặc định sẽ bị vô hiệu hóa.

Bây giờ, hãy kích hoạt cấu hình trang Git bằng lệnh sau:

$sudoa2ensite git.conf

Cấu hình trang Git nên được kích hoạt.

Bây giờ, khởi động lại máy chủ Apache HTTP bằng lệnh sau:

$sudosystemctl khởi động lại apache2

Để khởi động kho lưu trữ Git mới có thể truy cập qua máy chủ Apache HTTP, bạn sẽ phải chạy một vài lệnh. Bạn không muốn làm đi làm lại cùng một việc chỉ để tạo một kho lưu trữ Git mới. Vì vậy, tôi quyết định viết một kịch bản shell cho mục đích đó.

Đầu tiên, tạo một tập lệnh shell mới /usr/local/bin/git-create-repo.sh với lệnh sau:

$sudo nano /usr/địa phương//git-create-repo.sh

Bây giờ, hãy nhập các dòng mã sau vào tập lệnh shell.

#! / bin / bash

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

mkdir -P '$ {GIT_DIR}/$ {REPO_NAME}.đi'
đĩa CD '$ {GIT_DIR}/$ {REPO_NAME}.đi'

git init --chỉ cần &> /nhà phát triển/vô giá trị
chạm vàogit-daemon-export-ok
cpmóc/post-update.sample hooks/hậu cập nhật
cấu hình githttp.receivepackthật
git update-server-info
băm nhỏ -Rfwww-data: www-data'$ {GIT_DIR}/$ {REPO_NAME}.đi'
quăng đi 'Kho lưu trữ Git'$ {REPO_NAME}' được tạo ra tại$ {GIT_DIR}/$ {REPO_NAME}.đi'

Khi bạn nhập những dòng này, tập lệnh shell sẽ trông như sau. Bây giờ, lưu tệp bằng cách nhấn + NS theo dõi bởi .

Bây giờ, thêm quyền thực thi vào tập lệnh shell bằng lệnh sau:

$sudo chmod+ x/usr/địa phương//git-create-repo.sh

Bây giờ, hãy tạo một kho lưu trữ Git mới kiểm tra trong gốc dự án Git / var / www / git sử dụng git-create-repo.sh tập lệnh shell như sau:

$sudogit-create-repo.shkiểm tra

Kho lưu trữ Git kiểm tra nên được tạo ra.

Để truy cập kho lưu trữ Git, bạn cần địa chỉ IP của máy chủ Git HTTP.

$ipđến

Như bạn có thể thấy, địa chỉ IP trong trường hợp của tôi là 192.168.21.208 . Nó sẽ khác cho bạn. Thay thế nó bằng của bạn từ bây giờ.

Bây giờ, bạn có thể sao chép kiểm tra Kho lưu trữ Git như sau:

$git clonehttp://192.168.21.208/đi/test.go

Kho lưu trữ Git kiểm tra nên được nhân bản.

Bây giờ, hãy thêm một cam kết mới vào kiểm tra Kho lưu trữ Git.

$đĩa CDkiểm tra/
$quăng đi 'Chào thế giới' >xin chào
$git thêm.
$git cam kết -NS 'cam kết ban đầu'

Bây giờ, hãy tải các thay đổi lên kiểm tra Kho lưu trữ Git trên máy chủ như sau:

$git pushgốc

Như bạn có thể thấy, các thay đổi được tải lên rất tốt.

Định cấu hình xác thực người dùng:

Trong phần này, tôi sẽ chỉ cho bạn cách định cấu hình xác thực người dùng trên các kho Git trong máy chủ.

Đầu tiên, hãy chỉnh sửa git.conf tệp cấu hình trang web như sau:

$sudo nano /Vân vân/apache2/trang web có sẵn/git.conf

Bây giờ, hãy thêm phần sau vào tệp cấu hình.

<LocationMatch/đi/.*.đi>
AuthType Basic
AuthName'Xác minh Git'
AuthUserFile/Vân vân/apache2/git.passwd
Yêu cầu người dùng hợp lệ
LocationMatch>

Ở đây, /etc/apache2/git.passwd là tệp cơ sở dữ liệu người dùng.

Tệp cấu hình cuối cùng sẽ trông như sau. Bây giờ, lưu tệp bằng cách nhấn + NS theo dõi bởi .

Bây giờ, hãy tạo một tệp cơ sở dữ liệu người dùng mới /etc/apache2/git.passwd và thêm người dùng mới (giả sử shovon ) vào tệp cơ sở dữ liệu như sau:

$sudohtpasswd-NS /Vân vân/apache2/git.passwd shovon

Bây giờ, hãy nhập mật khẩu mới cho người dùng mới và nhấn .

Nhập lại cùng một mật khẩu và nhấn .

Cặp mật khẩu người dùng phải được thêm vào cơ sở dữ liệu.

Bây giờ, khởi động lại máy chủ Apache HTTP bằng lệnh sau:

$sudosystemctl khởi động lại apache2

Bây giờ, nếu bạn cố gắng sao chép kiểm tra kho lưu trữ một lần nữa, bạn sẽ được yêu cầu xác thực như bạn có thể thấy trong ảnh chụp màn hình bên dưới.

Khi bạn xác thực bằng tên người dùng và mật khẩu, bạn sẽ có thể truy cập kho lưu trữ Git.

Ngay cả khi bạn cố gắng đẩy hoặc kéo từ kho lưu trữ Git, bạn cũng sẽ được yêu cầu nhập tên người dùng và mật khẩu.

Sau khi bạn xác thực, push / pull sẽ hoạt động.

Bạn cũng có thể đặt cơ sở dữ liệu người dùng khác nhau cho các kho Git khác nhau. Điều này có thể hữu ích cho các dự án có nhiều người đang làm việc cùng nhau trên cùng một kho lưu trữ Git.

Để đặt xác thực thông minh cho kho lưu trữ Git, trước tiên, hãy chỉnh sửa git.conf tệp cấu hình trang web như sau:

$sudo nano /Vân vân/apache2/trang web có sẵn/git.conf

Bây giờ, hãy thêm các dòng sau vào tệp cấu hình.

<Vị trí/đi/test.go>
AuthType Basic
AuthName'Xác minh Git'
AuthUserFile/Vân vân/apache2/git.test.passwd
Yêu cầu người dùng hợp lệ
Vị trí>

<Vị trí/đi/test2.git>
AuthType Basic
AuthName'Xác minh Git'
AuthUserFile/Vân vân/apache2/git.test2.passwd
Yêu cầu người dùng hợp lệ
Vị trí>

Đối với mỗi kho lưu trữ Git kiểm tratest2 , đến phần được xác định. Một tệp cơ sở dữ liệu người dùng khác được sử dụng cho mỗi kho lưu trữ Git.

Tệp cấu hình cuối cùng sẽ trông như sau. Bây giờ, lưu tệp cấu hình bằng cách nhấn + NS theo dõi bởi .

Bây giờ, bạn có thể tạo cơ sở dữ liệu người dùng cần thiết như sau:

$sudohtpasswd-NS /Vân vân/apache2/git.test.passwd USERNAME
$sudohtpasswd-NS /Vân vân/apache2/git.test2.passwd USERNAME

Khi bạn đã hoàn tất, hãy khởi động lại máy chủ Apache HTTP bằng lệnh sau:

$sudosystemctl khởi động lại apache2

Bây giờ, mỗi kho lưu trữ Git nên có một nhóm người dùng riêng có thể truy cập nó.

Vì vậy, đó là cách bạn định cấu hình Máy chủ Git với Máy chủ HTTP Apache trên Ubuntu. Cảm ơn đã đọc bài viết này.