简介当我们部署我们的网络应用程序时,我们通常会寻求一些云平台服务器部署。当然我们也可以直接从服务器拉取远程仓库的代码。当然,我们也可以通过Webhooks(钩子)实现服务端与远程仓库代码的同步。首先我们在本地提交功能分支到仓库,仓库也会同步到服务器,这样我们就不需要手动同步项目代码了。我们的大部分项目都托管在Github上。当然Github在搭建私有仓库的时候是需要付费的,所以在你自己部署网站的时候,我们可以选择其他的平台。目前需要尝试Webhooks自动部署,可以选择自己适合的平台。这里我选择GitLab。当然,如果你在国内,也可以选择Coding和码云。这些是中国的好代码。托管平台可以创建自己的私有项目仓库之前我的网站项目是用Coding托管的,但是最近我重写了我的网站项目,因为GitLab本身可以不受限制的建立自己的私有仓库。还可以设置会员权限分支工作流程也很清晰,功能强大。现在很多公司都选择了GitLab,所以我还是会尝试一下新的服务。前期准备同Github。我们必须生成一个sshkey,以便我们以后提交项目和项目分支。在没有认证的本地终端执行$ssh-keygen-trsa-C"youremail@example.com"如果有冲突,可以在生成的时候自己重命名。我这里生成的是gitlab_rsa和gitlab_rsa.pub然后在命令行执行(添加刚才生成的公钥和私钥)eval$(ssh-agent-s)ssh-add~/.ssh/gitlab_rsa查看我们的publickey内容cat~/.ssh/gitlab_rsa.pub得到我们的公钥内容,我们可以去GitLab添加我们的shkey添加后,当然是测试本地连接$ssh-Tgit@gitlab.com会给我们的正确的欢迎信息如果没有问题例如我这里添加的url是http://kobeman.com/hook/index.php填写的token是ispace。现在就可以去服务器的site目录克隆远程仓库项目了。我的站点目录是/data/www。然后在这个目录中克隆我们的远程项目。克隆完成后,当然这里以Laravel项目为例,完成一些权限。这些可以自己查。如果能成功运行,说明我们的项目就ok了。我访问的网站是www.kobeman.com。接下来,您需要添加一个钩子文件。这里我们项目的根目录可以放在public目录下。新建一个hook目录,添加一个index.php。具体内容如下。我已将具体代码放在要点上。有问题请提交issue
