lucms - vue 与 Laravel 开发的后台管理系统
lucms
项目概述
- 产品名称:lucms
- demo: 没钱续费服务器,暂不提供演示
- 最新稳定版本 v2.0.5
lucms 是一个基于 laravel5.5*
与 iviewjs
开发的一套后台管理系统。
功能如下
- 用户认证 —— 登录、退出
- 用户认证 —— 多表登录
- 用户管理 —— 头像上传、资料修改
- 权限系统 —— 多角色、多权限管理
- 附件管理 —— 服务器文件管理
- 新闻系统 —— 基础新闻管理
- 系统安全 —— 日志记录、ip 过滤
- Excel 导入导出
- Markdown 编辑器支持
- Wangeditor 编辑器支持
- 各种组件封装
开发环境部署/安装
本项目代码使用 PHP 框架 Laravel 5.5 开发,本地开发环境使用 Laravel Homestead。
下文将在假定读者已经安装好了 Homestead 的情况下进行说明。如果您还未安装 Homestead,可以参照 Homestead 安装与设置 进行安装配置。
基础安装
- 克隆源代码
克隆 lucms 源代码到本地:
git@gitee.com:zhjaa/lucms.git
- php 配置修改
1). 配置本地环境,根目录指向 public
2). 安装 composer
composer install
2). 生成配置文件
cp .env.example .env
你可以根据情况修改 .env 文件里的内容,如数据库连接、缓存、邮件设置等:
2). 目录访问权限配置
$ chmod -R 777 storage
3). 配置 .env ,修改数据库信息 . ....
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:IKlBaIonliiolP7yK0QWP8Ixwgc1Z5R2ylxEA6CD3nA=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://lucms.test
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lucms
DB_USERNAME=root
DB_PASSWORD=route
.
.
.
QUEUE_DRIVER=sync 「同步模式,不使用任何队列」 => redis
.
.
.
4). 生成数据表及生成测试数据
$ art migrate
$ art db:seed
5). 安装 passport 客户端, vue api 请求 token 认证要用到
$ art passport:install
# 以下内容复制到 .env 中
Client ID: 2
Client Secret: qtbbnoYSKM1QkAfbcs614iCiWmMvBWNdRloJNbDi
6). 配置 .env ,修改数据库信息 . ....
.
.
.
OAUTH_GRANT_TYPE=password
OAUTH_CLIENT_ID=2
OAUTH_CLIENT_SECRET=p7XaeU3D9RASxQ18eiF5CT1uL9xUJRYjT6O8BJFt
OAUTH_SCOPE=*
.
.
.
7). 生成密钥
art key:generate
8). 设定图片上传软链接 storage/app/public/*
到 public/storage/images
$ cd public
$ mkdir storage
$ ln -s /srv/wwwroot/homestead-code/lucms/storage/app/public/* ./storage/
- 修改 js 配置
1). 全局修改基本域名 http://lucms.test => https://xxxxx
cp lu/example.vue.config.js lu/vue.config.js
cp lu/config/example.env.js lu/config/env.js
cp lu/config/example.url.js lu/config/url.js
lucms/lu/vue.config.js
const BASE_URL = env === 'development'
? '/iview-admin/'
: 'https://lucms.com/lu/dist/'
lucms/lu/config/url.js
const DEV_URL = 'http://lucms.test/'
const PRO_URL = 'https://lucms.com/'
vuejs 安装与运行
1). 开发环境
$ cd lu
$ cnpm install
$ npm run dev
2). 生产环境
$ cd lu
$ npm run build
扩展包使用情况
扩展包 | 一句话描述 | 本项目应用场景 |
---|---|---|
laravel/passport | jwt 用户认证包 | api 登录认证 |
Intervention/image | 图片处理包 | 图片上传裁剪 |
laravel-permission:~2.7 | 权限管理包 | 权限管理 |
mews/purifier | xss过滤 | 富文本编辑器 |
overtrue/pinyin | 基于 CC-CEDICT 词典的中文转拼音工具 | 文章 seo 友好的 url |
nrk/predis | redis 队列驱动器 | 队列管理 |
laravel/horizon | 队列监控 | 队列监控 |
rap2hpoutre/laravel-log-viewer | laravel 日志查看 | 查看日志 |
aliyuncs/oss-sdk-php | 啊里云 oss | 对象存储 |
overtrue/easy-sms | 短信发送 | 找回密码 |
barryvdh/laravel-cors | 跨越解决 | 开发环境方便测试 |
league/html-to-markdown | markdown 转 html | 富文本编辑器 markdown 支持 |
Maatwebsite/Laravel-Excel | excel 处理 | 导入导出 excel |
队列
Jobs | 一句话描述 |
---|---|
TranslateSlug | 翻译文章 title |
本作品采用《CC 协议》,转载必须注明作者和本文链接
这个不就是 iview-admin 么???
@Chasers9527 嗯,是的啊,文中也说了。你也可以用那个
@Ucer 出第一版本的时候就关注了。。。然后觉得界面不好看 放弃了
按照步骤安装的,报错,里边看来有错误吧
root@7a5ae296d827:/var/www/lucms# php artisan passport:install
Encryption keys generated successfully.
In Connection.php line 664:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lucms.oauth_clie
nts' doesn't exist (SQL: insert into
oauth_clients
(user_id
,name
,s ecret
,redirect
,personal_access_client
,password_client
,revoked
,updated_at
,created_at
) values (, Laravel Personal Access Client, LklRkoVDEiZRzda6ThhQyWkVhIhGKCdNE8ZNwZPz, http://localhost, 1, 0, 0, 2018-07-04
23:32:48, 2018-07-04 23:32:48))
In Connection.php line 452:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lucms.oauth_clie
nts' doesn't exist
root@7a5ae296d827:/var/www/lucms# php artisan migrate
Migration table created successfully.
PHP Fatal error: Cannot declare class SeedRolesAndPermissionsData, because the name is already in use in /var/www/lucms/database/migrations/2018_07_04_180438_seed_roles_and_permissions_data.php on line 50
In 2018_07_04_180438_seed_roles_and_permissions_data.php line 50:
Cannot declare class SeedRolesAndPermissionsData, because the name is alrea
dy in use
数据库迁移文件多了一个
@Alexanderwmc 解决了吗,最新版本的应该没这问题
@Ucer 嗯,laravel的问题解决了,不过上边安装步骤应该有问题,应该先数据迁移,再执行passport的安装,对吧?
不过目前的问题又是npm的问题:
Vue packages version mismatch:
This may cause things to work incorrectly. Make sure to use the same version for both.
If you are using vue-loader@>=10.0, simply update vue-template-compiler.
If you are using vue-loader@<10.0 or vueify, re-installing vue-loader/vueify should bump vue-template-compiler to the latest.
但是,package.json文件中的版本都是2.5.13。伤不起的nodejs!
@Ucer npm的问题已搞定,执行了下npm update vue-template-compiler
@Alexanderwmc ok,你以成功让后面的人少走了弯路 :+1:
@Ucer 编译完成后登陆页面已打开,目前登录不上去,发现后台接口还有问题,目前正在查找中。我目前自己的项目使用的vue-element-admin + laravel5.5,由于laravel和vue都是刚刚接触,用的还不是太好,向您学习学习,会持续关注的
@Ucer 数据库迁移文件是不是没有给够?api/login接口报错缺失ip_filters表
@Alexanderwmc 数据库文件现在在 databases/lucms.sql 里面,后面会写成 migrate 形式
@Ucer 后台登录页面输入账号密码登录,报错:
在
postman
中我使用email:dev@lucms.com, password:123456
,测试请求接口,目前报错:发现此处用了个ProxyTrait,是请求代理来生成一个token,这样的报错是我
passport
安装错了?这个是开发环境下的跨域问题,浏览器下载一个 allow-control
插件
有问题,都不能用,为什么还要加精,让大家浪费时间
@skyver18 问题跟文档会慢慢完善。你说的不能用是怎么个不能用法,有问题提出来能解决的会帮助解决。
@Ucer 嗯,下载了allow-control,也配置了
不知这样可对?目前是浏览器console不再报错缺少
Access-Control-Allow-Origin
这个请求头而阻止了请求,但还是报错请求失败,服务器错误
@Alexanderwmc
浏览器访问 http://xxx.test/dashboard
进入断点调试模式,查看程序走到哪里
@Ucer 已换为你这个扩展,但问题仍是一样的,
ProxyTrait里我打印了这里的错误
对了,js中也有错误,看着是store状态管理里JSON解析的错误,我觉得应该还是因为登录问题导致的
@Alexanderwmc 你修改了 .env 文件中的 OAUTH_CLIENT_SECRET你添加 了没有
@Ucer 这个吗?
刚刚改为了ID为7的那条数据的
@Alexanderwmc 你复制 id 为2 的那条不对吗? 你的问题应该就出在这里
@Ucer 一开始是ID为2的那条,不能用我才执行了
passport:client
生成了一个新的,替换为了第七条,但还是不行,现在挫败感爆棚,一个passport
就搞得头晕脑胀@Alexanderwmc 项目打包发我邮箱 ucer183@163.com 我帮你看看
@Alexanderwmc 应该是服务器没允许跨域,你搜索一下,重新再看看文档
2). 开发环境跨域配置 chrome 安装插件 Access-Control-Allow_Credentials
服务器跨域,Apache请自行搜索处理或在 php 文件中处理。此处不建议在 php 中处理:
nginx 配置如下:
@Ucer 那我给项目安装个
barryvdh/laravel-cors
包试试,不在浏览器下载扩展进行跨域了可以,就是服务器没授权跨哉
我用
postman
请求的api/login
,应该不涉及跨域问题,查看服务器日志,是请求通了,应该还是认证这里的问题(时区为UTC)
@Alexanderwmc 不行的话重新看看文档,是不是哪里不对,我试了两次。没问题的
@Ucer 此处是要使用
oauth_clients
表中的数据吧,上边跟下边这里都要跟数据库中的数据一致吧,而不是原样复制,对不?@Alexanderwmc 对对对
演示站点有个bug,上传图片无法保存。应该是目录没有给权限
@Stone007 好了
报错了,登录不了了
@Hugh 报什么错
@Ucer 你的线上demo登录不了,想进去看看不行。
@Hugh 可以 了我没做限制,有人把管理员邮箱改了
仓库怎么空了呀 :joy:
@skywingfs https://gitee.com/zhjaa/lucms
@Ucer 谢谢,去学习下~
@skywingfs 写的不好的地方欢迎指正
@Ucer 很棒,之前我也想搞个类似的,发现权限管理那块有点头疼,支持继续更新,加油
@Ucer 看起来不错,去学习下,有文档就更好了
@cjason wiki 有基本的使用文档。后面会慢慢补上
@MushishiXian 感谢支持
编码格式正确,都是按照这个走的,迁移还是报错,mysql是5.7.21版本
大佬帮忙看下
@yuhan888 这个是索引过长导致的。你可以试试改下 database/migrations/2018_06_19_100726_create_permission_tables.php
@Ucer
已解决迁移问题
索引长度 & MySQL / MariaDB
在 AppServiceProvider 中调用 Schema::defaultStringLength 方法配置后可以正常迁移
@yuhan888 我用的是 mysql8.0
看了留言那么多的问题都不敢用了,还是自己组装好一些,叫iview-admin
Homestead 环境下执行
cnpm install
出现什么原因呢?
@zjx https://github.com/npm/npm/issues
下载的项目里面没有 没有lu/dist文件夹,view->dashboard 视图也没看到,是我哪里弄的不对么?
@fubing0532 dist 是要自己生成的。照着文档来一遍就有了
@Ucer 我试一下
看demo域名已过期..
可能到项目成熟还需要一段时间,我使用LARAVEL ADMIN觉得好用,可以参考下。
@zxg321 关于这个问题,自己习惯就好。现在还在慢慢完善中...
测试网站登录不上去,报User模型不存在错误!
@doobi 等晚上我修改一下程序,老是有个把邮箱改了
@Ucer 好的
@ Ucer 可以不用 Laravel Homestead 这个环境吗?
@haiwei_sun 不建议使用方法 做的不怎么样就开始收费了 利益比较重 而且看起来是一个人弄的
@DljLyy 可以 ,但是推荐用.
@xingchen 你指的收费是?
404。。。
建议 $ art migrate 这个写全部命令为好,毕竟不是所有的别名都好使的!
这个怎么解决
@kanweilai 好的
@ni5400 请做下软链接: