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À 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_alias và mod_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/điBâ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.confBâ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 VÀ và .
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.confCấ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.confCấ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/là/git-create-repo.shBây giờ, hãy nhập các dòng mã sau vào tập lệnh shell.
#! / bin / bashGIT_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 VÀ và .
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/là/git-create-repo.shBâ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 traKho 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đếnNhư 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.goKho 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ốcNhư 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.confBâ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 VÀ và .
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 shovonBâ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 apache2Bâ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.confBâ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 tra và test2 , đế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 VÀ và .
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 apache2Bâ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.