本文没有整理的很通顺,抱歉。
Step1 服务器添加ssh的pubkey实现无密码登陆服务器
1 本机:ssh-keygen -t rsa
生成钥匙对
2 复制 生成的 id_rsa.pub(默认)到服务器的 ~/.ssh/authorized_keys文件中
3 测试直接 ssh username@xxxx.xxxx.xxx
Step2 参考网上的文章构建两个库
- 版本管理用的 bare库,
git init --bare --shared
- 服务文件夹在的库
git add --all
Step 3 实现本地推送之后根据不同的分支名更新不同的文件夹
1.在bare库的hooks文件夹下找到post-update.sample并去掉.sample
- 输入以下代码
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
# 获取当前提交代码的人的分支名
branch=$(git rev-parse --symbolic --abbrev-ref $1)
# 如果为master主分支就cd到html的服务环境,
# 其他分支的就根据branch名称来确定去相应的文件夹
if [ "master" = "$branch" ]; then
cd /var/www/html
else
cd /var/www/$branch
fi
# 在相应的开发文件夹下pull 远端的相应分支到自己的master下
unset GIT_DIR
git pull origin $branch:master
exec git update-server-info
附录 设置服务器的虚拟域名以映射到相应的文件夹下
由于本来我的这台服务器就开了ssl所以我要做的就是在/etc/apache2/sites-enabled/000-default.conf
中加入相应的设置,
<VirtualHost *:80>
ServerName test.yourserver.com
ServerAlias *.test.yourserver.com
ServerAdmin webmaster@localhost
VirtualDocumentRoot /var/www/%1
<Directory /var/www/%1/hotel_price>
Options FollowSymLinks ExecCGI
AllowOverride All
</Directory>
</VirtualHost>
网站根目录在/var/www下,其中有很多git的仓库,比如有个/var/www/try文件夹,然后访问网址的时候就用的是 try.test.yourserver.com。
为了能够解析这个网址,在域名商处需要配置一下,CNAME 解析 *.test
网友评论