我正在嘗試透過 http 運行 Git 伺服器,我也已經透過 http 運行 SVN。我運行的是centos 6
我的 git.conf (位於 /etc/httpd/conf.d/ 中)檔案看起來像
LoadModule authnz_ldap_module 模組/mod_authnz_ldap_module.so LoadModule ldap_module 模組/mod_ldap.so 伺服器名稱 blahblah/git/repos 文檔根目錄 /var/www/git/repos SSL 引擎開啟 SSLCertificateFile /etc/ssl/server.crt SSLCertificateKeyFile /etc/ssl/server.key SetEnvIf 用戶代理「.*MSIE.*」 nokeepalive ssl-unclean-shutdown 錯誤日誌 /var/log/httpd/git-error.log CustomLog /var/log/httpd/git-access.log 組合 # 啟用cgi-bin腳本 選項 ExecCGI FollowSymLinks AddHandler cgi-腳本 cgi # 設定 Git HTTP 後端 SetEnv GIT_PROJECT_ROOT /var/www/git SetEnv GIT_HTTP_EXPORT_ALL SetEnv GITWEB_CONFIG /etc/gitweb.conf # 注意:直接提供靜態文件 AliasMatch ^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1 AliasMatch ^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1 # 注意:使用 Git HTTP 後端服務儲存庫對象 腳本別名匹配 \ 「(?x)^/(.*/(頭 | \ 資訊/參考| \ 物件/訊息/[^/]+ | \ git-(上傳|接收)-pack))$" \ /usr/libexec/git-core/git-http-backend/$1 # 注意:使用 Gitweb 提供 HTML ScriptAlias / gitweb/gitweb.cgi # 開啟mod重寫 重寫引擎開啟 # 使首頁成為 gitweb 腳本的內部重寫 RewriteRule ^/$ /gitweb/gitweb.cgi [L] # 為儲存庫建立快捷方式,因此 URL 如下 # 在 Gitweb 中載入正確的儲存庫 RewriteRule ^/(\w+\.git)$ /?p=$1 [L,P] # 路由 Git-Http-Backend ScriptAlias / /usr/lib/git-core/git-http-backend/ # 需要存取所有資源 AuthLDAPURL「ldap://blah:3268/dc=blah,dc=blah?sAMAccountName?sub」無 AuthzLDAP權威關閉 AuthzGroupFile權威關閉 AuthzUser權威關閉 AuthLDAPBindDN blah@blah AuthLDAPBind密碼“blah” AuthType 基本 驗證名“blah” AuthBasicProvider LDAP # 重要,否則“(9)錯誤的檔案描述符:無法開啟密碼檔案:(null)” AuthUserFile /dev/null 需要有效用戶
我的 subversion.conf 檔案如下所示(位於 /etc/httpd/conf.d/subversion.conf )
<Location /repos>
DAV svn
SVNPath /var/www/svn/repos
# search user (192.168.1.1 is the IP address of the Active Directory server)
AuthLDAPURL "ldap://blah:3268/dc=blah,dc=blah?sAMAccountName?sub" NONE
AuthzLDAPAuthoritative off
AuthzGroupFileAuthoritative off
AuthzUserAuthoritative off
AuthLDAPBindDN blah@blah
AuthLDAPBindPassword blah
AuthType Basic
AuthName "blah"
AuthBasicProvider ldap
# Important, otherwise "(9)Bad file descriptor: Could not open password file: (null)"
AuthUserFile /dev/null
Require valid-user
</Location>