本文档介绍如何从Coding.net上将Jekyll编写的静态博客移植到阿里云服务器,并设置WebHook自动更新
一、准备工作
- 新建
/usr/workspace/webhook/
文件夹cd /usr mkdir workspace cd workspace mkdir webhook
- 新建
/usr/workspace/nicelee.coding.me/
文件夹cd /usr mkdir workspace cd workspace mkdir nicelee.coding.me
- 将
nicelee.coding.me
文件夹拥有者设为wwwchown -R www.www /usr/workspace/nicelee.coding.me/
- 将nginx 默认Server目录设为
/usr/workspace/nicelee.coding.me/_site
因为jekyll最终的文件全部都部署在_site
文件夹下,所以直接将它设为根目录即可。vim /usr/local/webserver/nginx/conf/nginx.conf
打开nginx的配置文件,修改server的root配置
#下面是server虚拟主机的配置 server { listen 80;#监听端口 server_name nicelee.top;#域名 index index.html index.htm index.php; root /usr/workspace/nicelee.coding.me/_site;#站点目录 error_page 404 /404.html; location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 15d; } access_log off; }
二、Git clone
git clone [email protected]:nicelee/nicelee.coding.me.git
三、阶段性验证
客户端打开网址,
http://公网ip
,此时,应该能访问成功
四、服务器WebHook响应设置
现拟监听端口8090,收到请求后执行git pull操作,更新博客的相关信息
vim /usr/local/webserver/nginx/conf/nginx.conf
- 打开nginx的配置文件,再增加一个server的root配置
#WebHook的位置 server { listen 8090;#监听端口 server_name localhost2;#域名 index index.html index.htm index.php; root /usr/workspace/webhook;#站点目录 location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } }
- 新建index.php来响应请求
<?php // 这里只是最简单的拉取代码,如果要做更加多的操作,如验证、日志,请自己解析push内容并操作 @$data = file_get_contents("php://input"); $shellExec = shell_exec("cd /usr/workspace/nicelee.coding.me &&sudo git pull"); // 目录换成项目的目录 ?>
五、Coding.net WebHook设置
在Coding.net设置好WebHook钩子
六、WebHook验证
在客户端写篇博客,上传Coding.net。再访问服务器网页,看是否同步更新。
七、其它
理论上可以在服务器端搭建git服务,直接从客户端git push到服务器,待有时间再尝试。