基于yii2的内容管理框架 [ 2.0 版本 ]
yidashi
注册时间:2015-06-26
最后登录:2018-11-07
在线时长:86小时19分
最后登录:2018-11-07
在线时长:86小时19分
- 粉丝77
- 金钱10060
- 威望240
- 积分13320
热门源码
- 基于 Yii 2 + Bootstrap 3 搭建一套后台管理系统 CMF
- 整合完 yii2-rbac+yii2-admin+adminlte 等库的基础开发后台源码
- 适合初学者学习的一款通用的管理后台
- yii-goaop - 将 goaop 集成到 Yii,在 Yii 中优雅的面向切面编程
- yii-log-target - 监控系统异常且多渠道发送异常信息通知
- 店滴云1.3.0
- 面向对象的一小步:添加 ActiveRecord 的 Scope 功能
- Yii2 开源商城 FecShop
- 基于 Yii2 开发的多店铺商城系统,免费开源 + 适合二开
- leadshop - 基于 Yii2 开发的一款免费开源且支持商业使用的商城管理系统
共 68 条评论
楼主,后台界面是你自己写的哇
https://github.com/yidashi/adminlte2-tab-template
bawei的易大师?
composer install 安装报错啊
居然这么久了
终于弄出来了,搞了一天半!在这里列一下安装时的坑,首先声明一下我是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、希望大湿多多完善代码吧,让我们这些小白,可以直接上手就用了。
辛苦,感谢。。你提到的问题都已经解决了
嗯。不错。赞
前台留言那一块 去留言 编写好留言 点击 提交 就报这个错
[frontend][/index.php?r=suggest%2Fcreate]
Message
exception 'yii\base\ErrorException' with message 'Undefined offset: 0' in D:\phpStudy\WWW\yuan\yii2cmf\common\behaviors\CommentBehavior.php:99
Stack trace:
#0 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\db\BaseActiveRecord.php(139): yii\base\Object->get()
#1 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\db\BaseActiveRecord.php(285): yii\base\Component->get()
#2 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\Object.php(118): yii\db\BaseActiveRecord->get()
#3 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\Object.php(134): common\behaviors\CommentBehavior->getCommentEnabled()
#4 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\db\BaseActiveRecord.php(139): yii\base\Object->get()
#5 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\db\BaseActiveRecord.php(285): yii\base\Component->get()
#6 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\Model.php(263): yii\db\BaseActiveRecord->get()
#7 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\Model.php(358): yii\validators\Validator->validateAttributes()
#8 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\db\ActiveRecord.php(455): yii\base\Model->validate()
#9 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\db\BaseActiveRecord.php(643): yii\db\ActiveRecord->insert()
#10 D:\phpStudy\WWW\yuan\yii2cmf\frontend\controllers\SuggestController.php(45): yii\db\BaseActiveRecord->save()
#11 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\InlineAction.php(57): frontend\controllers\SuggestController->actionCreate()
#12 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\InlineAction.php(57): ::call_user_func_array:{D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\InlineAction.php:57}()
#13 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\Controller.php(156): yii\base\InlineAction->runWithParams()
#14 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\Module.php(523): yii\base\Controller->runAction()
#15 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\web\Application.php(102): yii\base\Module->runAction()
#16 D:\phpStudy\WWW\yuan\yii2cmf\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application->handleRequest()
#17 D:\phpStudy\WWW\yuan\yii2cmf\web\index.php(22): yii\base\Application->run()
#18 {main}