標籤:http 使用 strong 檔案 os art
1. git的安裝和配置
(1)使用yum源安裝git
- yum install git
(2)建立git使用者並設定密碼
- #useradd --home /home/git git
- #passwd git
- //注意這裡要設定一個密碼,建議不要不設密碼,網上很多資料都不設密碼
(3)建立一個git倉庫,驗證git是否可用
- 在使用git之前,要設定git的兩個全域變數,設定方式為:
-
- # git config --global user.name "dylan"
- # git config --global user.email "[email protected]"
- 設定git倉庫目錄的許可權
-
- # su - git //切換到git使用者
- $ chmod -R 755 /home/git //修改目錄的許可權
- 建立並初始化一個repository
-
- $ mkdir /home/git/repo //假設要建立的repository放在/home/git/repo目錄下
- $ cd /home/git/repo
- $ mkdir test_repo
- $ cd test_repo
- $ git init --bare
- 測試新建立的repository是否可用
-
- su - test (test為另外一個user或者exit,使用root使用者)
- $ cd /home/test
- $ mkdir repos
- $ cd repos
- $ git clone /home/git/repo/test_repo
如果顯示" Initialized empty Git repository in /home/git/repo/test_repo/.git/",則說明成功的clone了一個local repository。之後就可以在此repository下進行開發了,比如,添加一個readme.txt檔案。
-
- $ cd test_repo
- $ vim readme.txt (建立一個檔案)
- $ git add . (注意後面有一個[.])
- $ git commit -a
- $ git push origin master
注意:如果此時報錯,最大的原因是test_repo的refs和objects目錄的許可權不夠,執行如下操作即可(git server端的repository下的這兩個目錄)。
- $ chmod -R 777 refs/
- $ chmod -R 777 objects/
2. gitosis的安裝 (1)python-setuptools的安裝(因為gitosis的安裝指令碼是用python寫的)
- #yum install python-setuptools
(2)gitosis的安裝
- #git clone git://github.com/res0nat0r/gitosis.git//下載gitosis到你想存放的目錄下
- #cd gitosis
- #python setup.py install //如果沒有報錯,則說明安裝成功
(3)建立是用這個git server的使用者的公開金鑰
因為gitosis的訪問是通過ssh訪問的,所以我們還需要建立一個ssh的訪問公開金鑰。找另外一台機器(如果條件允許)作為git server的用戶端機器建立公開金鑰,然後傳到git伺服器上。(如果為了簡便,也可在git伺服器上建立公開金鑰,使用git使用者或者其他使用者都行。為了方便,這裡採用git伺服器,並且使用git使用者。
- # su - git
- $ ssh-keygen -t rsa
公開金鑰產生了,預設放在/home/git/.ssh/id_rsa.pub下,如果產生公開金鑰時設定了密碼,注意記住密碼,為了簡單,我這裡沒有設定密碼。 (4)配置gitosis gitosis對git的各種管理通過gitosis-admin.git這個項目來完成,gitosis-admin.git項目本身又被置於git下管理,所以需要先在client端clone gitosis-admin.git, 根據需求修改後,將修改提交到git server即可生效。 此處的含義就是:你想在哪對gitosis進行配置,就需要在哪clone到gitosis-admin.git.
- 假設在於gitosis不同的另外一台機器上,使用git使用者將gitosis-admin.git clone到本地。
-
- git clone [email protected]:/home/git/repositories/gitosis-admin.git
- 修改gitosis設定檔gitosis.conf
-
- $ vim gitosis.conf
- //會看到如下內容
- [gitosis]
- [group gitosis-admin]
- writable = gitosis-admin
- members = [email protected]
gitosis.conf 檔案是用來設定使用者、倉庫和許可權的控制檔案(對於gitosis.conf檔案的詳細含義,以及keydir目錄下公開金鑰的作用,將會另寫文檔說明,在此不再詳述),只需知道gitosis倉庫是可寫的,支援的使用者有git
(5)新添加repository 修改gitosis-admin的設定檔gitosis.conf,新添加一個repository,例如:
- [gitosis]
- [group gitosis-admin]
- writable = gitosis-admin
- members = [email protected]
- [group test_repo] //新添加的倉庫名稱
- writable = test_repo //此倉庫的讀寫權限,此處為可寫
- members = [email protected] [email protected] //可以訪問此倉庫的使用者名稱@主機名稱
假設當user1,來訪問這個test_repo倉庫時,需要輸入如下命令:
- git clone [email protected]_server_ip:/home/git/repo/test_repo.git
此時會要求輸入user1的密碼,此密碼就是建立user1的公開金鑰時輸入的密碼。那麼gitosis又是怎麼來確定user1的身份的呢? 這就要求必須事先將user1產生的公開金鑰傳給管理員,即對gitosis-admin有許可權操作的管理員,然後由他將公開金鑰拷貝到keydir目錄下,然後,執行git add,git push即可。
3. gitweb安裝
注意:redhat的iso源是沒有gitweb安裝包,但是centos的源中有,在上一篇文章中給出了如何讓redhat使用centos的源,那麼,只需採用如下命令即可安裝。
- # yum install gitweb
4. gitweb配置
gitweb預設安裝到了/var/www/git下,其設定檔在/etc/gitweb.conf下,另外,httpd的設定檔/etc/httpd/conf.d/git.conf。(1)修改/etc/gitweb.conf
- $projectroot = "/var/www/git" //將projectroot修改為/var/www/git
(2)修改/etc/httpd/conf.d/git.conf
- Alias /git /var/www/git
- <Directory /var/www/git>
- Allow from all
- AllowOverride all
- Order allow,deny
- Options +ExecCGI
- AddHandler cgi-script .cgi
- DirectoryIndex gitweb.cgi
- SetEnv GITWEB_CONFIG /etc/gitweb.conf
- Dav On
- RewriteEngine Off
- </Directory>
(3)重啟httpd
- /etc/init.d/httpd restart
(4)將gitosis倉庫串連到/var/www/git下,完成web顯示
- ln -s /home/git/repositories/test_repo.git /var/www/git/
(5)通過瀏覽器瀏覽http://xxxx/git/ 注意: 如果git clone http://xxx/git/test_repo.git時出現git update-server-info錯誤,則在test_repos.git目錄下執行 git update-server-info 命令即可(gitosis伺服器的相應倉庫下)。
5. 建立新的git repository在git server的/home/git/repository目錄下,執行如下命令:
- mkdir test.git
- cd test.git
- git init --bare
- //可以在這裡添加源檔案,也可以在client端clone之後添加