NiceLeeのBlog 用爱发电 bilibili~

阿里云CentOS 部署静态博客

2018-11-06
nIceLee

阅读:


本文档介绍如何从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文件夹拥有者设为www
    chown -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到服务器,待有时间再尝试。


内容
隐藏