ubuntu 底下,先來安裝套件:(LAMP 就不贅述了)
sudo apt-get install gitweb libapache2-mod-auth-mysql
這是我的 /etc/apache/conf.d/gitweb 設定:
Alias /git /home/git Alias /gitweb /usr/share/gitweb上面都做完了,別人訪問你的 web 的時候,就會使用上 mysql auth 了。不過這邊 database 還沒建好,所以連進去應該會看到 Server Error 500 。 接著是 mysql 的 database auth 的內容:Options FollowSymLinks +ExecCGI AddHandler cgi-script .cgi AuthBasicAuthoritative Off AuthMYSQL on AuthMySQL_Authoritative on AuthMySQL_DB auth Auth_MySQL_Host localhost Auth_MySQL_User admin Auth_MySQL_Password 12345678 AuthMySQL_Password_Table clients AuthMySQL_Username_Field username AuthMySQL_Password_Field password AuthMySQL_Empty_Passwords off AuthUserFile /dev/null AuthMySQL_Encryption_Types Crypt_DES AuthType Basic AuthName "Restricted ZONE" Require valid-user AuthBasicAuthoritative Off AuthMYSQL on AuthMySQL_Authoritative on AuthMySQL_DB auth Auth_MySQL_Host localhost Auth_MySQL_User admin Auth_MySQL_Password 12345678 AuthMySQL_Password_Table clients AuthMySQL_Username_Field username AuthMySQL_Password_Field password AuthMySQL_Empty_Passwords off AuthUserFile /dev/null AuthMySQL_Encryption_Types Crypt_DES # Standard auth stuff AuthType Basic AuthName "Restricted ZONE" Require valid-user DAV on AuthBasicAuthoritative Off AuthMYSQL on AuthMySQL_Authoritative on AuthMySQL_DB auth Auth_MySQL_Host localhost Auth_MySQL_User admin Auth_MySQL_Password 12345678 AuthMySQL_Password_Table clients AuthMySQL_Username_Field username AuthMySQL_Password_Field password AuthMySQL_Empty_Passwords off AuthUserFile /dev/null AuthMySQL_Encryption_Types Crypt_DES AuthType Basic AuthName "Restricted ZONE" Require valid-user
DROP TABLE IF EXISTS `clients`; CREATE TABLE `clients` ( `username` varchar(25) NOT NULL DEFAULT '', `password` varchar(25) NOT NULL DEFAULT '', `groups` varchar(25) NOT NULL DEFAULT '', `email` varchar(256) NOT NULL DEFAULT '', PRIMARY KEY (`username`), KEY `groups` (`groups`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `clients` VALUES ('admin','djifjijigjgdi','admin','');admin 預設我用上 test1234 ,所以你要修改的話就自已下 encrypt("abcd1234") 之類的來修改。 要換用 sha1 / mysql password 或其它加密方式,請記得跟上面 apache 的 conf 一起修改。 這邊下完我們已經可以使用 mysql 的帳密來訪問網頁了,不過還有一點點事情要做: 1. git repository 只能用 gitweb 訪問。要直接 git access 的話,需要再在 git 的 repository 那邊下:
git update-server-info2. mysql 的帳密需要一個管理介面 (所以我留下了 /admin 的 location) 3. gitweb 預設的 theme 很醜 (修改 /etc/gitweb.conf 把 static 改成別的) 真的很懶,不想再打字了,所以我把整包放在這裡。 需要請自便,稍後我也會把 /admin 的部份再丟上來,那個部份現在還不完整。 --
參考資料
* SVN 跑 http 加上 MySQL auth