齐天大圣

齐天大圣

全栈工程师。

  • 财富值550
  • 威望值0
  • 总积分730

个人信息

  • 2017-08-25 已签到
    连续签到2天,获得了10个金钱
  • 2017-08-24 已签到
    连续签到1天,获得了5个金钱
  • 收藏了扩展
    Yii2 发送邮件
  • 赞了扩展
    Yii2 发送邮件
  • 赞了评论

    终于弄出来了,搞了一天半!在这里列一下安装时的坑,首先声明一下我是yii小白,本身对yii这框架理解的还不透彻,所以也是写给小白的。

    一、新代码的结构说明

    yii默认的是backend和frontend,安装完后,这俩文件夹下都有web/index.php。易大师现在是统一入口在根据录的web下。目录结构说明中也有这一点,当时就没看,所以一直在localhost下找对应的frontend/web 和backend/web. 所以大家也不要纠结这俩目录下有没有web目录了,现在入口就一个根目录下的web,web里面又分了admin和api。所以对应的前后台是:
    前台: web/
    后台: web/admin
    接口: web/api

    二、正确的安装姿势

    我先是从yiichian上看的,然后又去git看的,可能时间太久远了吧,安装步骤跟代码都对应不上了,yiichina那些评论里说的问题也对应不上现在的代码结构了。在这里说一下安装步骤与坑。
    1、git下载代码,composer install 安装依赖包。
    2、我用的是xampp,mac平台,修改apache的配置文件:/Applications/XAMPP/xamppfiles/apache2/conf/httpd.conf 如果你是其他的windows或者linux,修改对应文件即可:添加如如下代码:

    <VirtualHost *:80>
          ServerName www.testyii.com
          DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/yii2cmf-master/web/"
    </VirtualHost>
    <VirtualHost *:80>
          ServerName admin.testyii.com
          DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/yii2cmf-master/web/admin/"
    </VirtualHost>
    

    这样就把前后台映射好了,对了还要修改本地hosts文件,我的是修改/etc/hosts 添加映射:

    127.0.0.1   www.testyii.com
    127.0.0.1   admin.testyii.com
    

    这里给大家推荐mac上修改host的一个软件 SwitchHosts!
    配置完映射之后,打开浏览器访问:www.testyii.com ,不出意外的话会出现安装界面,然后一步步的来,这时候有几个坑:
    1)在输入db信息时,如果mysql中没有对应的数据库会提示不存在,所以需要先在mysql中创建数据库.(难道这个地方不是自动给安装的么?)
    2)完了之后接着是床架admin用户信息,填完对应的用户信息之后,会出现loading界面,不出意外的话就跳到最后一步,设置要安装的模块,完成之后就可以显示登录界面了,输入刚才添加的用户信息就可以进入到后台界面了,哈哈,这是顺利的情况下,我想很多人应该跟我一样,卡在了loading这里,一直在转圈圈,于是我用断电调试,发现卡在了几个地方,因为没有做容错导致错误信息没有抛出来。出错是因为在设置缓存时由于权限问题,导致写缓存失败,随后在用到缓存的时候,取不出来,作者把缓存文件放在了根目录cache文件下,在执行composer install时,发现打印信息如下

    > php -r "file_exists('.env') || copy('.env.example', '.env');@chmod('.env', 0766);"
    > yii\composer\Installer::postCreateProject
    chmod('cache', 0776)...done.
    chmod('web/assets', 0776)...done.
    chmod('web/storage', 0776)...done.
    chmod('web/admin/assets', 0776)...done.
    chmod('api/runtime', 0776)...done.
    chmod('backend/runtime', 0776)...done.
    chmod('frontend/runtime', 0776)...done.
    chmod('web/api/assets', 0776)...done.
    

    在mac下这0776的权限不够,我自己又"chmod -R 777 cache",然后写缓存就可以成功了,同样的其他的几个地方也设置成了777就可以读写了。
    由于写cache缓存失败,代码没有做容错处理的这几个地方是:

    public function installConfig()
    {
        \Yii::$app->setKeys($this->envPath);
    	//如果取缓存失败,这个$data会是false,下面的for循环就会抛异常,但是没有抛信息,所以一直loading。
        $data = \Yii::$app->getCache()->get(SiteForm::CACHE_KEY);
        foreach ($data as $name => $value) {
            Yii::$app->setEnv($name, $value);
        }
    	return true;
    }
    public function createAdminUser()
    {
    	   //如果取缓存失败,这个$data会是false,再把$data当数组用时就会报错,所以一直loading。
            $data = \Yii::$app->getCache()->get(AdminForm::CACHE_KEY);
            $user = new User();
            $user->setScenario("create");
            $user->email = $data["email"];
            $user->username = $data["username"];
            $user->password = $data["password"];
    
            if($user->create() == false) {
                return current($user->getFirstErrors());
            }
            return null;
    }
    

    三、未解决的问题

    1、当成功安装以后,添加文章,在前台访问时报错:Class 'common\widgets\editormd\Editormd' not found。这个还没解决。
    2、希望大湿多多完善代码吧,让我们这些小白,可以直接上手就用了。

  • 终于弄出来了,搞了一天半!在这里列一下安装时的坑,首先声明一下我是yii小白,本身对yii这框架理解的还不透彻,所以也是写给小白的。

    一、新代码的结构说明

    yii默认的是backend和frontend,安装完后,这俩文件夹下都有web/index.php。易大师现在是统一入口在根据录的web下。目录结构说明中也有这一点,当时就没看,所以一直在localhost下找对应的frontend/web 和backend/web. 所以大家也不要纠结这俩目录下有没有web目录了,现在入口就一个根目录下的web,web里面又分了admin和api。所以对应的前后台是:
    前台: web/
    后台: web/admin
    接口: web/api

    二、正确的安装姿势

    我先是从yiichian上看的,然后又去git看的,可能时间太久远了吧,安装步骤跟代码都对应不上了,yiichina那些评论里说的问题也对应不上现在的代码结构了。在这里说一下安装步骤与坑。
    1、git下载代码,composer install 安装依赖包。
    2、我用的是xampp,mac平台,修改apache的配置文件:/Applications/XAMPP/xamppfiles/apache2/conf/httpd.conf 如果你是其他的windows或者linux,修改对应文件即可:添加如如下代码:

    <VirtualHost *:80>
          ServerName www.testyii.com
          DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/yii2cmf-master/web/"
    </VirtualHost>
    <VirtualHost *:80>
          ServerName admin.testyii.com
          DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/yii2cmf-master/web/admin/"
    </VirtualHost>
    

    这样就把前后台映射好了,对了还要修改本地hosts文件,我的是修改/etc/hosts 添加映射:

    127.0.0.1   www.testyii.com
    127.0.0.1   admin.testyii.com
    

    这里给大家推荐mac上修改host的一个软件 SwitchHosts!
    配置完映射之后,打开浏览器访问:www.testyii.com ,不出意外的话会出现安装界面,然后一步步的来,这时候有几个坑:
    1)在输入db信息时,如果mysql中没有对应的数据库会提示不存在,所以需要先在mysql中创建数据库.(难道这个地方不是自动给安装的么?)
    2)完了之后接着是床架admin用户信息,填完对应的用户信息之后,会出现loading界面,不出意外的话就跳到最后一步,设置要安装的模块,完成之后就可以显示登录界面了,输入刚才添加的用户信息就可以进入到后台界面了,哈哈,这是顺利的情况下,我想很多人应该跟我一样,卡在了loading这里,一直在转圈圈,于是我用断电调试,发现卡在了几个地方,因为没有做容错导致错误信息没有抛出来。出错是因为在设置缓存时由于权限问题,导致写缓存失败,随后在用到缓存的时候,取不出来,作者把缓存文件放在了根目录cache文件下,在执行composer install时,发现打印信息如下

    > php -r "file_exists('.env') || copy('.env.example', '.env');@chmod('.env', 0766);"
    > yii\composer\Installer::postCreateProject
    chmod('cache', 0776)...done.
    chmod('web/assets', 0776)...done.
    chmod('web/storage', 0776)...done.
    chmod('web/admin/assets', 0776)...done.
    chmod('api/runtime', 0776)...done.
    chmod('backend/runtime', 0776)...done.
    chmod('frontend/runtime', 0776)...done.
    chmod('web/api/assets', 0776)...done.
    

    在mac下这0776的权限不够,我自己又"chmod -R 777 cache",然后写缓存就可以成功了,同样的其他的几个地方也设置成了777就可以读写了。
    由于写cache缓存失败,代码没有做容错处理的这几个地方是:

    public function installConfig()
    {
        \Yii::$app->setKeys($this->envPath);
    	//如果取缓存失败,这个$data会是false,下面的for循环就会抛异常,但是没有抛信息,所以一直loading。
        $data = \Yii::$app->getCache()->get(SiteForm::CACHE_KEY);
        foreach ($data as $name => $value) {
            Yii::$app->setEnv($name, $value);
        }
    	return true;
    }
    public function createAdminUser()
    {
    	   //如果取缓存失败,这个$data会是false,再把$data当数组用时就会报错,所以一直loading。
            $data = \Yii::$app->getCache()->get(AdminForm::CACHE_KEY);
            $user = new User();
            $user->setScenario("create");
            $user->email = $data["email"];
            $user->username = $data["username"];
            $user->password = $data["password"];
    
            if($user->create() == false) {
                return current($user->getFirstErrors());
            }
            return null;
    }
    

    三、未解决的问题

    1、当成功安装以后,添加文章,在前台访问时报错:Class 'common\widgets\editormd\Editormd' not found。这个还没解决。
    2、希望大湿多多完善代码吧,让我们这些小白,可以直接上手就用了。

  • 发表了说说
    资料不够多啊
主管 等级规则
730/1000
资料完整度
50/100
用户活跃度
10/100

Ta的关注

9

Ta的粉丝

6

Ta的访客

31