目前网上能搜到的搭建Git server的方法基本上都是基于ssh。
不知道是因为以前使用习惯了svn的http输入用户名和密码的方式访问代码服务器的原因(ssh方式访问据说也可以每次输入用户名和密码),还是觉得每次添加ssh的密钥很麻烦。反正就不想用ssh的方式。于是自己搜索资料整理搭建了基于http的Git server。步骤如下:root帐号操作的。应该也可以使用sudo+非root帐号操作
1、安装http 服务器apache2
apt-get install apache2 apache2-utils
a2enmod cgi alias env rewrite
2、安装Git server
apt-get install git-core
3、因为HTTP服务器的根目录在/var/www/html,因此在该目录下创建代码库目录:
cd /var/www/html
mkdir -p git/repo/code/cpe/01-cpe-ipq807x.git
4、初始化Git库
cd git/repo/code/cpe/01-cpe-ipq807x.git
git init --bare
cd -
5、给HTTP服务器权限,HTTP服务器的帐号是www-data
chgrp -hR www-data git
chown -hR www-data git
6、修改HTTP服务器的配置文件/etc/apache2/sites-enabled/000-default.conf,在后面加入如下内容
SetEnv GIT_PROJECT_ROOT /var/www/html/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
RewriteEngine On
RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
RewriteCond %{REQUEST_URI} /git-receive-pack$
RewriteRule ^/git/ - [E=AUTHREQUIRED]
<Files "git-http-backend">
AuthType Basic
AuthName "Git Access"
AuthUserFile /var/www/html/.htpasswd
Require valid-user
Order deny,allow
Deny from env=AUTHREQUIRED
Satisfy any
</Files>
7、添加用户:
htpasswd -c /var/www/html/.htpasswd wwl
8、重启HTTP服务器
service apache2 restart
9、自此已经完成服务器的搭建以及用户添加,应该可以使用Git 客户端clone代码了。
git clone http://192.168.31.73/git/repo/code/cpe/01-cpe-ipq807x.git