lucms - vue 与 Laravel 开发的后台管理系统

lucms

项目概述

  • 产品名称:lucms
  • demo: 没钱续费服务器,暂不提供演示
  • 最新稳定版本 v2.0.5

lucms 是一个基于 laravel5.5*iviewjs 开发的一套后台管理系统。

file
file
file

功能如下

  • 用户认证 —— 登录、退出
  • 用户认证 —— 多表登录
  • 用户管理 —— 头像上传、资料修改
  • 权限系统 —— 多角色、多权限管理
  • 附件管理 —— 服务器文件管理
  • 新闻系统 —— 基础新闻管理
  • 系统安全 —— 日志记录、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

do it now

本帖由系统于 1年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 72
Chasers9527

这个不就是 iview-admin 么???

1年前 评论

@Chasers9527 嗯,是的啊,文中也说了。你也可以用那个

1年前 评论
Chasers9527

@Ucer 出第一版本的时候就关注了。。。然后觉得界面不好看 放弃了

1年前 评论

按照步骤安装的,报错,里边看来有错误吧
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, LklR
koVDEiZRzda6ThhQyWkVhIhGKCdNE8ZNwZPz, 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

1年前 评论

数据库迁移文件多了一个

1年前 评论

@Alexanderwmc 解决了吗,最新版本的应该没这问题

1年前 评论

@Ucer 嗯,laravel的问题解决了,不过上边安装步骤应该有问题,应该先数据迁移,再执行passport的安装,对吧?
不过目前的问题又是npm的问题:
Vue packages version mismatch:

  • vue@2.5.16
  • vue-template-compiler@2.5.13

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!

1年前 评论

@Ucer npm的问题已搞定,执行了下npm update vue-template-compiler

1年前 评论

@Alexanderwmc ok,你以成功让后面的人少走了弯路 :+1:

1年前 评论

@Ucer 编译完成后登陆页面已打开,目前登录不上去,发现后台接口还有问题,目前正在查找中。我目前自己的项目使用的vue-element-admin + laravel5.5,由于laravel和vue都是刚刚接触,用的还不是太好,向您学习学习,会持续关注的

1年前 评论

@Ucer 数据库迁移文件是不是没有给够?api/login接口报错缺失ip_filters表

1年前 评论

@Alexanderwmc 数据库文件现在在 databases/lucms.sql 里面,后面会写成 migrate 形式

1年前 评论

@Ucer 后台登录页面输入账号密码登录,报错:

Cannot read property 'status' of undefined

postman中我使用email:dev@lucms.com, password:123456,测试请求接口,目前报错:

请求失败,服务器错误

发现此处用了个ProxyTrait,是请求代理来生成一个token,这样的报错是我passport安装错了?

1年前 评论

这个是开发环境下的跨域问题,浏览器下载一个 allow-control

1年前 评论
skyver18

有问题,都不能用,为什么还要加精,让大家浪费时间

1年前 评论

@skyver18 问题跟文档会慢慢完善。你说的不能用是怎么个不能用法,有问题提出来能解决的会帮助解决。

1年前 评论

@Ucer 嗯,下载了allow-control,也配置了

file

不知这样可对?目前是浏览器console不再报错缺少Access-Control-Allow-Origin这个请求头而阻止了请求,但还是报错
请求失败,服务器错误

1年前 评论

@Alexanderwmc

  1. 执行命令
    $ cd lu
    $ npm run build
    $ cp public/dashboard.blade.php resources/views/
  2. 浏览器访问 http://xxx.test/dashboard

  3. 进入断点调试模式,查看程序走到哪里

  4. 我用的插件是这个

file

1年前 评论

@Ucer 已换为你这个扩展,但问题仍是一样的,

file

ProxyTrait里我打印了这里的错误

file

file

对了,js中也有错误,看着是store状态管理里JSON解析的错误,我觉得应该还是因为登录问题导致的

file

1年前 评论

@Alexanderwmc 你修改了 .env 文件中的 OAUTH_CLIENT_SECRET你添加 了没有

.
.
.

OAUTH_GRANT_TYPE=password
OAUTH_CLIENT_ID=2
OAUTH_CLIENT_SECRET=p7XaeU3D9RASxQ18eiF5CT1uL9xUJRYjT6O8BJFt  # 看一下 passport 文档这里怎么取
OAUTH_SCOPE=*

.
.
.
1年前 评论

@Ucer 这个吗?

file

刚刚改为了ID为7的那条数据的

file

1年前 评论

@Alexanderwmc 你复制 id 为2 的那条不对吗? 你的问题应该就出在这里

1年前 评论

@Ucer 一开始是ID为2的那条,不能用我才执行了passport:client生成了一个新的,替换为了第七条,但还是不行,现在挫败感爆棚,一个passport就搞得头晕脑胀

1年前 评论

@Alexanderwmc 项目打包发我邮箱 ucer183@163.com 我帮你看看

1年前 评论

@Alexanderwmc 应该是服务器没允许跨域,你搜索一下,重新再看看文档

2). 开发环境跨域配置 chrome 安装插件 Access-Control-Allow_Credentials

服务器跨域,Apache请自行搜索处理或在 php 文件中处理。此处不建议在 php 中处理:

nginx 配置如下:

.
.
.
  add_header Access-Control-Allow-Origin http://localhost:8080;
  add_header Access-Control-Allow-Headers *;
  add_header Access-Control-Allow-Methods GET,POST,OPTIONS,PATCH,PUT;
  .
  .
  .
1年前 评论

@Ucer 那我给项目安装个barryvdh/laravel-cors包试试,不在浏览器下载扩展进行跨域了

1年前 评论

可以,就是服务器没授权跨哉

1年前 评论

我用postman请求的api/login,应该不涉及跨域问题,查看服务器日志,是请求通了,应该还是认证这里的问题

file
(时区为UTC)

1年前 评论

@Alexanderwmc 不行的话重新看看文档,是不是哪里不对,我试了两次。没问题的

1年前 评论

@Ucer 此处是要使用oauth_clients表中的数据吧,上边跟下边这里都要跟数据库中的数据一致吧,而不是原样复制,对不?

file

1年前 评论

演示站点有个bug,上传图片无法保存。应该是目录没有给权限

file

1年前 评论
Hugh

报错了,登录不了了

1年前 评论
Hugh

@Ucer 你的线上demo登录不了,想进去看看不行。

file

1年前 评论

@Hugh 可以 了我没做限制,有人把管理员邮箱改了

1年前 评论

仓库怎么空了呀 :joy:

1年前 评论

@skywingfs 写的不好的地方欢迎指正

1年前 评论

@Ucer 很棒,之前我也想搞个类似的,发现权限管理那块有点头疼,支持继续更新,加油

1年前 评论

@Ucer 看起来不错,去学习下,有文档就更好了

1年前 评论

@cjason wiki 有基本的使用文档。后面会慢慢补上

1年前 评论

file
编码格式正确,都是按照这个走的,迁移还是报错,mysql是5.7.21版本

file


大佬帮忙看下

1年前 评论

@yuhan888 这个是索引过长导致的。你可以试试改下 database/migrations/2018_06_19_100726_create_permission_tables.php

.
.
.
            $table->primary(['permission_id', 'model_id', 'model_type'], 'model_has_permissions_permission_model_type_primary');

=>
            $table->primary(['permission_id']); 

.
.
.
1年前 评论

@Ucer
已解决迁移问题

file

索引长度 & MySQL / MariaDB
在 AppServiceProvider 中调用 Schema::defaultStringLength 方法配置后可以正常迁移

1年前 评论
xingchen

看了留言那么多的问题都不敢用了,还是自己组装好一些,叫iview-admin

1年前 评论

Homestead 环境下执行 cnpm install 出现

file
什么原因呢?

1年前 评论

下载的项目里面没有 没有lu/dist文件夹,view->dashboard 视图也没看到,是我哪里弄的不对么?

1年前 评论

@fubing0532 dist 是要自己生成的。照着文档来一遍就有了

1年前 评论

看demo域名已过期..

1年前 评论
zxg321

可能到项目成熟还需要一段时间,我使用LARAVEL ADMIN觉得好用,可以参考下。

1年前 评论

@zxg321 关于这个问题,自己习惯就好。现在还在慢慢完善中...

1年前 评论

测试网站登录不上去,报User模型不存在错误!

1年前 评论

@doobi 等晚上我修改一下程序,老是有个把邮箱改了

1年前 评论

@ Ucer 可以不用 Laravel Homestead 这个环境吗?

1年前 评论
xingchen

@haiwei_sun 不建议使用方法 做的不怎么样就开始收费了 利益比较重 而且看起来是一个人弄的

1年前 评论

@DljLyy 可以 ,但是推荐用.

1年前 评论

建议 $ art migrate 这个写全部命令为好,毕竟不是所有的别名都好使的!

9个月前 评论
ni5400

file
这个怎么解决

9个月前 评论

@ni5400 请做下软链接:

cd public
ln -s /xx /storage/app/public/* ./storage

9个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!