2016-11-23 11:29:36 2458次浏览 4条回答 0 悬赏 233 金钱

本地已经编写好一个yii2的项目,当然用的dev环境了,然后通过git吧它放到了coding.net上了。

现在,我搞了个服务器,我是应该直接通过git pullcoding.net上拉取过来么,还是重新搭建一个yii2的prod环境再拉取,

怎么做,,,有点乱

补充于 2016-11-23 11:35

直接pull过来的话,会没有**-local.phpindex.php文件,那么,我可以自己在重新创建一个index入口文件,话说,yii2的环境切换就是在入口文件index里面的吧,我直接换成prod就算是生产环境了?

补充于 2016-11-23 11:40

come on baby

最佳答案

  • koko 发布于 2016-11-23 11:52 举报

    pull 过来。
    用init命令,初始化你的yii
    你说的那些文件都是init生成的,它们可控制系统在不同环境上使用不同配置。默认不纳入git管理。

    1 条回复
    回复于 2016-11-23 12:07 回复

    恩,我似乎明白了。:smile

    , 觉得很赞
  • 回答于 2016-11-23 12:36 举报

    是的,需要初始化一下。因为你本地代码环境通常是开发环境,绝不应该通过git被带入到生产服务器上。所以决定所处环境的入口文件不被纳入版本控制。

    我认为你应该把 composer中文文档 看一下。一定一定要看呀。

    1 条回复
    回复于 2016-11-23 12:40 回复

    ah,已经在看啦。

    觉得很赞
  • 回答于 2016-11-23 12:10 举报

    我觉得你是没明白两个问题:
    1、yii2的初始化
    2、初始化的文件加入了ignore
    搞明白你的问题就迎刃而解啦

    1 条回复
    回复于 2016-11-23 12:39 回复

    对的,一开始确实是没理解初始化,,,导致困惑了很久。

    觉得很赞
  • 回答于 2016-11-23 11:57 举报

    git pull过来

    web/index.php可以这样写:

    if(!isset($_SERVER['env'])){
        $_SERVER['env'] = 'test';
    }
    
    if($_SERVER['env']=='product')
    {
        require(__DIR__ . '/../vendor/autoload.php');
        require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
    
        $config = require(__DIR__ . '/../config/web.php');
    }
    else
    {
        defined('YII_DEBUG') or define('YII_DEBUG', true);
        defined('YII_ENV') or define('YII_ENV', 'dev');
    
        require(__DIR__ . '/../vendor/autoload.php');
        require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
    
        $config = require(__DIR__ . '/../config/web-test.php');
    }
    
    (new yii\web\Application($config))->run();
    
    

    其中$_SERVER['env']变量可以从php.ini或者nginx配置传递过来

    1 条回复
    回复于 2016-11-23 12:08 回复

    好的,我可以看看啦。

    , 觉得很赞
您需要登录后才可以回答。登录 | 立即注册
xczizz
副总裁

xczizz 比尔吉沃特

注册时间:2016-03-08
最后登录:2020-11-09
在线时长:97小时50分
  • 粉丝6
  • 金钱4967
  • 威望90
  • 积分6837

热门问题