08月09, 2016

fis3远程发布

今天又是一年一度的虐狗日,啥也不说了。这两天项目经理给了我一台window机器,让我把项目放到上面去,能跑起来。本以为这个事很轻松,因为之前就用fis3弄过,结果折腾了我两天,才有一个方案出来。

FIS3的远程发布有这样几种方案:

  • node
  • php
  • ftp
  • ...

node方案

方案是:receiver

报错信息:

error

查了一下才知道:

remove-buffer.write

都怪我的手贱,升级到6.x版本的node,要是还是node4.x版本就不会有这个错了。

php方案

方案是:php

这个方案是可行的。但要注意以下两点。

1.目录是否有写的权限。

可以通过:

file_put_contents("文件路径", "内容")

来测试当前的文件夹是否可以写入,如果不能写入,可以简单地:

chmod 777 文件夹

2.写入的文件夹不能超出receiver.php的工程目录

譬如说nginx配置了root目录是A这个文件夹,如果写入的文件夹不是在A里面的话,按目前的这种写法(move_uploaded_file),那么也是会出错的,即写入不了。

当然,我们可以通过另外的手段,像exec这种方法,但需要php.ini开启这个功能。

FTP

相对于http传送文件,FTP相对靠谱一些。

它的方案:FTP,或者升级版的FTP

这个在本地测试比较容易,下载一个Filezilla Server(MS只支持window),然后连接一下,创建一个用户,给创建的用户,加目录文件夹,给予全部的权限。

随后代码就像上面的写法:

deploy: fis.plugin("ftp", {
    cache : true,           // 是否开启上传列表缓存,开启后支持跳过未修改文件,默认:true
    remoteDir : "./",   // 远程文件目录,一般为相对路径
    connect : {
        host : "192.168.1.1", //即Filezilla Server的主机
        port : "21",
        user : "admin", //你创建的用户
        password : "admin" //创建用户的密码
    }
})

不过有一个坑爹的问题是在mac下,有问题:

Error

但是神奇的是:,在window下面就OK。。。我了个去!!

本文链接:www.my-fe.pub/post/fis3-release-remote.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。