+86 189 8218 1436Mon. - Fri. 10:00-22:00

在亚马逊AWS上建立Git服务器

在亚马逊AWS上建立Git服务器

经济实惠的服务器代维费用及报价,让中小企业都能用上专业的服务器代维服务!

服务器代维外包服务 让您省心又放心 小程序HTTPS配置 一键ssl全站配置 正版EV OV_SSL证书 顶级证书长期享用 DDOS/CC攻击防御 有针对性的攻击防御
木马病毒清除 彻底的清除专家 网站中毒处理 快速网站故障处理专家 服务器故障处理 一站式解决服务器问题 数据找回/恢复 重要数据秒级找回
数据库优化 提升网站访问速度神器 数据迁移 网站搬家快方法 漏洞扫描/渗透测试 网站安全检测 网站故障排查/修复 一键排查故障/修复
宝塔Linux面板安装服务 环境配置专家 WordPress代维托管 一次性收费包您满意 网站程序安装指导 多年安装经验
肉鸡处理,中毒处理
肉鸡处理,中毒处理  
 

在亚马逊AWS上建立Git服务器

本文可以算是前文用亚马逊的云(AWS)免费建立wordpress blog的 一个延续,在上文的基础上我们可以建立一个属于自己的git服务器。这里介绍的方法会用到gitolite和gitlist,gitolite是一个 git的用户管理层,方便的管理用户和git repository,而gitlist是一个方便从网页查看git reposito的工具。本文假设你对git有基本的了解,并且基于提到的前文已经假设好了环境

在EC2上安装配置gitolite (sudo su)

cd /tmp
# 准备key文件,或者使用你现有的key文件
ssh-keygen -t rsa
cp id_rsa.pub /tmp/your-name.pub

# install packages 安装工具
sudo apt-get install git gitolite git-daemon-run
# create git user 创建git用户
sudo adduser --system --shell /bin/bash --gecos 'git version control' --group --disabled-password --home /home/git git
sudo su - git
cd /home/git
echo "PATH=$HOME/bin:$PATH" > .bashrc
# gl-setup gitolite初始化
gl-setup /tmp/your-name.pub
# 执行上面命令后gitolite会让选择熟悉的编辑器你修改配置文件,打开配置后座如下修改
	$REPO_UMASK = 0022;

至此gitolite安装完毕,建议

配置你工作机上的~/.ssh/config文件

以方便连接
config文件如下

Host 你喜欢的名字,如gs
Hostname 亚马逊PUBLIC DNS
User git
IdentityFile C:/Users/test/.ssh/id_rsa #你的私钥路径
#PreferredAuthentications publickey

在工作机上管理gitolite

这样你就可以在你的工作机上进行连接了,现在clone管理目录
git clone git@gs:gitolite-admin.git
编辑conf/gitolite.conf可以添加repository如

repo    anothertest
        RW+     =   @all

添加用户只需将的公钥添加到keydir就可以了,如果用户有多个公钥,如工作机一个,笔记本一个,可以在keydir下添加目录然后添加key如为tom添加 laptop/tom.pub和workspace/tom.pub即可
修改完成之后commit并push回主机相应的repositoy和user了

在EC2上配置gitlist

用git来管理repository和user很方便,但如果你的老板要查看git上的提交就不那么方便了(:P),通过安装gitlist网页查看就会方便很多
gitlist.org 上下载最新版并完成配置

cd /tmp
wget https://s3.amazonaws.com/gitlist/gitlist-0.4.0.tar.gz
tar -zxf gitlist-0.4.0.tar.gz
mv gitlist /sites/
cd /sites/gitlist
mv config.ini-example config.ini
edit config.ini
    repositories[] = '/data/git/repositories/'
    hidden[] = '/data/git/repositories/gitolite-admin.git' #建议添加,管理目录不必被网页查看
mkdir cache #必须手动添加
chown -Rh www-data:www-data /sites/gitlist

创建site的nginx配置/etc/nginx/sites-available/gitlist

server {
	listen 80;
	server_name gitlist;
	keepalive_timeout 70;

	access_log /var/log/nginx/gitlist-access.log;
	error_log /var/log/nginx/gitlist-error.log;

	root /sites/gitlist;
	index index.php;
	location ~ /include {
	deny all;
	return 403;
	}

	location ~ ^/api/(tickets|tasks)(.*)$ {
	try_files $uri $uri/ /api/http.php;
	}

	location ~ ^/scp/ajax.php/(.*)$ {
	try_files $uri $uri/ /scp/ajax.php;
	}

	location / {
	index index.php;
	try_files $uri $uri/ /index.php?$args;
	}

	location ~ .php$ {
	fastcgi_split_path_info ^(.+.php)(/.+)$;
	include fastcgi_params;
	fastcgi_pass unix:/var/run/php5-admin.sock;
	#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}
}

如果你此处用的fastcgi_pass是之前用过的那不需要额外的设置,如果没有那需要建立

cd /etc/php5/fpm/pool.d/
cp www.conf gitlist.conf
edit gitlist.conf
    name ->gitlist
    listen ->nginx config 中的

然后重启php5-fpm 和nginx访问你的地址就可以见到gitlist页面了
如果你在第一步设置配置是没有问题,那网页应该就可以正常显示了,如果那时设置的不对那么
编辑 /home/git/.gitolite.rc找到$REPO_UMASK改成0022然后手动设置已有的文件权限 chmod -R 755 /home/git应该就可以了

北京 上海 天津 重庆 河北 山东 辽宁 黑龙江 吉林 甘肃 青海 河南 江苏 湖北 湖南 江西 浙江 广东 云南 福建 海南 山西 四川 陕西 贵州 安徽 广西 内蒙古 西藏 新疆 宁夏 澳门 香港 台湾