使用fis将本地项目部署到开发机(远程服务器)

1 篇文章 0 订阅
1 篇文章 0 订阅

习惯了使用VScode,sublime text 3等编辑器,需要自己在开发机上改bug,只能依靠linux系统提供的vim,对于我这种对vim不熟的人来说,在开发机上改bug用vim真的是非常难受了,总是会在本地将代码修改完毕,再复制上开发机,这样的体验真的很蛋疼!!!
接触了百度提供的fis ,可直接将本地项目部署到远程服务器,每次只需要将本地文件重新提交一次就好了,实现了windows->linux开发机->nginx服务器的同步。即项目部署。

**

具体操作:

**

服务端接收脚本部署:

直接克隆代码库中的文件:(克隆到服务器下项目所在的目录下,比如:/home/www/test)
在项目目录下建receiver.php文件,写入以下代码。

<?php
// !!!! 注意 !!!!
// 此代码存在很大的安全隐患,请不要部署到线上服务。
// 百度内部请使用:http://agroup.baidu.com/fis/md/article/196978
@error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
function mkdirs($path, $mod = 0777) {
    if (is_dir($path)) {
        return chmod($path, $mod);
    } else {
        $old = umask(0);
        if(mkdir($path, $mod, true) && is_dir($path)){
            umask($old);
            return true;
        } else {
            umask($old);
        }
    }
    return false;
}
if($_POST['to']){
    $to = urldecode($_POST['to']);
    if(is_dir($to) || $_FILES["file"]["error"] > 0){
        header("Status: 500 Internal Server Error");
    } else {
        if(file_exists($to)){
            unlink($to);
        } else {
            $dir = dirname($to);
            if(!file_exists($dir)){
                mkdirs($dir);
            }
        }
        echo move_uploaded_file($_FILES["file"]["tmp_name"], $to) ? 0 : 1;
    }
} else {
    echo 'I\'m ready for that, you know.';
}

这里如果正常,可以直接访问此项目下的此文件,比如:http://(项目地址)/receiver.php 正常情况下会看到以下页面:

这里写图片描述

到这里,服务器(开发机)的环境基本完成。

本地环境配置:

先安装fis,网上教程很多。版本也很多,fis-plus,fis2,fis3等等。不多说。

安装完成后,克隆项目:

git clone https://github.com/chyingp/fis-receiver.git

跟着,安装依赖

cd fis-receiver/
npm install

在本地项目中建立文件fis-conf.js文件,将以下代码写入其中:
不同的ifs版本可能配置不同,自己去看fis对应版本的文档,这里使用的是fis-plus版本。

fis.config.set('deploy', {
    //使用fis release --dest static来使用这个配置
    remote: [{
        //如果配置了receiver,fis会把文件逐个post到接收端上
        receiver : 'http://(项目地址)/receiver.php',
        //从产出的结果的static目录下找文件
        from : '/static',
        //上传目录从static下一级开始不包括static目录
        subOnly : true,
        //保存到远端机器的/home/www/aaa目录下
        //这个参数会跟随post请求一起发送
        to : '/home/www/aaa',
        //某些后缀的文件不进行上传
        exclude : /.*\.(?:svn|cvs|tar|rar|psd).*/
    }]
});

上传成功后即可在服务器(开发机)上看到本地项目的所有文件,如果上成功却没有在服务器上看到文件,name恭喜你踩了与我相同的一个坑:上传的那个文件夹的权限是不可写的,改变其权限即可。chmod -R 777 项目文件夹

ok ,到这里恭喜你又GET到一个新技能,开发中的神技。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值