使用git部署和同步网站

不提团队合作与版本控制,git在部署和同步网站的效率要高于ftp和wget的方式(因为多线程增量同步),并且搭建git要比SVN容易的多啊。

过程记录如下:

1.安装git

服务器端(centos6.x)

#安装必备组件

# yum install -y gettext-devel expat-devel curl-devel zlib-devel openssl-devel gcc perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

#下载git 解压并进入目录

# wget https://www.kernel.org/pub/software/scm/git/git-1.9.4.tar.gz
# tar -zxvf git-1.9.4.tar.gz
# cd git-1.9.4 # ./configure # make&&make install
安装完成后
执行
# whereis git

可以查看安装的目录

执行
# git --version

可以查看git版本

本地(WIN7)
http://git-scm.com/download
下载forwindows版本
安装好后在命令行运行
# git --version就可以看到版本
2.服务器端
假设网站地址 /home/wwwroot/www.xxx.com
# mkdir /home/git/www.xxx.com.git
# cd /home/git/www.xxx.com.git
# git init --bare
配置指向
cat > hooks/post-receive
输入
Source code   
#!/bin/bash
GIT_WORK_TREE=/home/wwwroot/www.xxx.com git checkout -f
按crtl+d保存

设置权限

# chmod +x hooks/post-receive

/home/git/www.xxx.com.git就是git的线上仓库

3.本地端

假设本地网站在E:\www.xxx.com

# E
# cd www.xxx.com
# git init # git add -A # git commit -q -m "mysite"

注意在执行git add -A 添加本地所有的文件前,先检查下根目录下是否有.gitignore 文件,像laravel站点就会有,.gitignore指定不进行版本控制的文件及文件夹 注释掉或者暂时移除

# git remote add 远程库名  ssh://ssh用户名@服务器IP/home/git/www.xxx.com.git
# git push 远程库名  +master:refs/heads/master

执行过程中需要输入ssh密码

然后去服务器端看一下,是不是已经上传到服务器了

平时有修改的时候,命令行进入站点目录后

执行

# git commit -am "mysite"
# git push 远程库名

就可以更新到服务器了

使用git clone可以同步到本地

4.使用ssh key避免每次都输入密码

考虑到win上面创建ssh key还需要下载ssh keygen比较麻烦,还是在服务器端直接生成

# cd /root/.ssh

如果/root/.ssh这个目录不存在 就创建它 并赋予它700权限

# mkdir /root/.ssh
# chmod -R 700 /root/.ssh
# cd /root/.ssh

输入

# ssh-keygen

就可以创建公匙 和秘匙对
一路回车会在/root/.ssh下创建id_rsa 和 id_rsa.pub两个文件 其中id_rsa.pub是公匙,将他变为authorized_keys

# cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

给644权限

# chmod 644 /root/.ssh/authorized_keys

接着编辑/etc/ssh/sshd_config

# vi /etc/ssh/sshd_config

去掉下面3行的注释

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys 

接着重启sshd

# /etc/init.d/sshd restart

接着把id_rsa下载到本地电脑 然后在服务器端删除

# rm -rf /root/.ssh/id_rsa

接下来回到本地电脑,先在当前用户的文件夹下创建一个.ssh文件名

cd c:\Users\你的用户名 mkdir .ssh

鼠标是创建不了带.号名称的文件夹的,所以需要使用命令行

接着把下载下来的id_rsa文件放入这个.ssh文件夹中就可以了

5.使用

再次push的时候,会提示你是否保存信息,输入yes回车 .ssh文件夹下会多一个known_hosts

之后使用git 就不需要输入密码了

如果说在另外台服务器上也部署了git咋办

其实只要把

/root/.ssh/authorized_keys

拷贝过去就可以

6.补充一些
试了一下,其实本机也是可以用命令生成公密匙对的
cd c:\Users\用户名
ssh-keygen  回车

接着按提示输入.ssh\id_rsa

一路回车就会在.ssh中生成 id_rsa密匙 和id_rsa.pub公匙

把id_rsa.pub 上传到 /root/.shh下并改名为authorized_keys并给644权限就好

另外呢其实服务器端的.ssh文件夹是在 ~路径下,也就是你当前用户文件夹下,如果是root就是/root/.ssh 如果是gituser就是/gituser/.ssh

最后可以使用puttygen生成一个ppk文件给putty用,这样使用putty登陆服务器就不用输入用户名密码了

方法是打开puttygen 点conversions -> import key

选择生成的密匙 id_rsa

然后点save private key

保存为id_rsa.ppk就可以给putty用了

 

转载于:https://www.cnblogs.com/oudaiwen/p/7954567.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值