您的位置:首页 > 运维架构 > 网站架构

简单利用git部署网站到服务器

2017-03-25 13:54 453 查看
传统部署网站到服务器的方法一般是FTP,但是这样会有一些问题,比如一个是上传速度慢,再一个是不能进行版本控制。

常用的一个分布式版本控制工具就是git,关于git的详细使用方法可以参考廖雪峰Git教程

准备

首先你得有一个主机作为服务器,可以ssh登录,假设服务器信息如下

host: blinkdr.test
user: blinkdr
passwd: 123456
siteroot: /home/blinkdr/public_html  //网站根目录


另外在本地端和服务器端都应安装好了git工具,简单利用git部署网站的基本原理如下



当本地代码仓push时,会触发服务器端git的一个钩子(post-receive),从而执行checkout到网站目录的命令。

服务器端仓库配置

1.新建一个目录作为远程代码仓库

mkdir ~/test.git //客户端代码都提交到这里


2.初始化代码仓

cd test.git
git init --bare //这里一定要加--bare选项


3.复制配置文件

cd hooks
cp post-receive.sample post-receive


4.编辑post-receive内容

#!/bin/bash
#
SITEROOT=/home/blinkdr/public_html
#清楚没有git add的文件和目录
git --work-tree=${SITEROOT} clean -fd
#从仓库中强制checkout代码
git --work-tree=${SITEROOT} checkout -f


客户端设置

1.新建本地文件夹并与服务器仓库关联

mkdir test
cd test
git init
git remote add origin blinkdr@blinkdr.test:/home/blinkdr/test.git
//这里会让你输入用户'blinkdr'的密码'123456'
//若不想输入密码,则需要将本地客户端的'id_rsa.pub'文件中的内容添加到服务器中'/home/blinkdr/.ssh'目录下的authorized_keys文件中


2.编辑本地文件提交服务器

touch test.php
echo "<?php echo 'hello world'; ?>" >> test.php
git add test.php
git commit -m "new a file test.php"
git push origin master


3.查看效果

通过ssh登录到服务器,查看网站根目录下是否有”test.php”文件。

或者直接访问”http://blinkdr.test/test.php“看是否输出’hello world’(这里假设服务器都已经配置好)。

如果在这过程中,没有部署成功,很大一部分原因是当前用户对网站的根目录没有写的权限,只需对其做权限修改即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: