FunAdmin开发框架系统 支持PHP8.0(ThinkPHP6.X + Layui +Requirejs)

介绍

FunAdmin是基于ThinkPHP6.X + Layui +Requirejs的敏捷开发的后台管理系统。

演示站点

演示地址: fundemo.funadmin.com (账号:admin,密码:123456。备注:只有查看信息的权限

主要特性

  • 基于auth的权限管理系统
    • 支持无限级父子级权限继承,父级的管理员可任意增删改子级管理员及权限设置
    • 支持管理员多角色管理
  • CURD 命令行模式助您快速开发
  • 完善的菜单管理
    • 分模块管理
    • 无限极菜单
  • 二级域名部署支持,同时域名支持绑定到插件
  • 多语言支持,服务端及客户端支持
  • 丰富的插件市场
  • 完善的上传插件组件功能
    • 本地存储
    • 阿里云OSS建议使用
    • 腾讯云COS
    • 七牛云OSS
  • 完善的前端功能组件开发
    • 自适应手机、平板、PC,自使用IE+谷歌+火狐等浏览器
    • 基于RequireJS进行JS模块管理,按需加载
    • 对form表单二次封装,只需要使用函数就可以展示表
    • 对layui table ,form表格再次封装,方便使用
  • 完善的后台操作日志
    • 记录用户的详细操作信息 操作ip 等
  • 文件附件管理
  • 后台路径自定义,防止别人找到对应的后台地址

项目介绍

FunAdmin 基于thinkphp6.X +Layui2.6.*+requirejs开发权限(RBAC)管理框架,框架中集成了权限管理、模块管理、插件管理、后台支持多主题切换、配置管理、会员管理等常用功能模块,以方便开发者快速构建自己的应用。框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。

  • PHP支持php8.0的快速开发框架 建议使用PHP8
  • 这是一个有趣的后台管理系统,这是可以让你节约时间的系统
  • 这是一款快速、高效、便捷、灵活敏捷的应用开发框架。
  • 系统采用最新版TinkPHP6框架开发,底层安全可靠,数据查询更快,运行效率更高,网站速度更快, 后续随官网升级而升级
  • 密码动态加密,相同密码入库具有唯一性,用户信息安全牢固,告别简单md5加密
  • 自适应前端,桌面和移动端访问界面友好简洁,模块清晰
  • 兼容ie11 + firefox + Chrome +360 等浏览器
  • UI组件化,只需要写函数就可以成就后台表单
  • 内置CURD 命令行模式,帮助助您快速开发系统
  • 模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。
  • 强大的表单管理,只需要使用函数即可成就表单
  • layui采用最新layui2.6.X 框架
  • 适用范围:可以开发OA、ERP、BPM、CRM、WMS、TMS、MIS、BI、电商平台后台、物流管理系统、快递管理系统、教务管理系统等各类管理软件。
  • require.js 模块化开发 一个命令即可打包js,css ; node r.js -o backend-build.js
  • restful api 接口,接口使用jwt接口验证等
  • …更多功能尽请关注

环境要求:

  • PHP >= 7.4 支持php8.0
  • PDO PHP Extension
  • MBstring PHP Extension
  • CURL PHP Extension
  • 开启静态重写
  • 要求环境支持pathinfo
  • Mysql 5.7及以上
  • Apache 或 Nginx

功能特性

  • 严谨规范: 提供一套有利于团队协作的结构设计、编码、数据等规范。
  • 高效灵活: 清晰的分层设计,解耦设计更能灵活应对需求变更。
  • 严谨安全: 清晰的系统执行流程,严谨的异常检测和安全机制,详细的日志统计,为系统保驾护航。
  • 组件化: 完善的组件化设计,丰富的表单组件,让开发列表和表单更得心应手。无需前端开发,省时省力。
  • 简单上手快: 结构清晰、代码规范、在开发快速的同时还兼顾性能的极致追求。
  • 自身特色: 权限管理、组件丰富、第三方应用多、分层解耦化设计和先进的设计思想。
  • 高级进阶: 分布式、负载均衡、集群、Redis、分库分表。

插件

  • ** CMS内容管理插件(免费)
  • ** BBS社区插件
  • ** 编辑器插件
  • ** 微信管理插件
  • ** 更多请查看 插件列表

开发者信息

  • 开源协议:Apache 2.0

Centos 7安装配置NTP网络时间同步服务器

现在的系统大多是微服务化架构,且部署方式大多为分布式集群化部署,也就是说系统的各个组件分布在不同的服务器中运行,导致时间同步对于系统的正常运行来说尤为重要, 由于时间不同同步,会导致系统出现各种异常

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。本文,我们采用ntpd做时间同步,ntpd不仅仅是时间同步服务器,它还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步

时间时区概念理解:

GMT、UTC、CST、DST

UTC:

整个地球分为二十四时区,每个时区都有自己的本地时间,在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC:Universal Time Coordinated)。

GMT:

格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线(UTC与GMT时间基本相同)。

CST:

中国标准时间 (China Standard Time)

GMT + 8 = UTC + 8 = CST

DST:
夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用(中国不使用)。

1、查看当前服务器时区&列出时区并设置时区(如已是正确时区,请略过):

查看当前系统时间、时区

$ timedatectl 
Local time: Thu 2018-10-11 13:03:04 CST
Universal time: Thu 2018-10-11 05:03:04 UTC
RTC time: Thu 2018-10-11 01:17:11
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a

$ timedatectl status
Local time: Thu 2018-10-11 13:03:09 CST
Universal time: Thu 2018-10-11 05:03:09 UTC
RTC time: Thu 2018-10-11 01:17:16
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a

列出全世界所有的时区

# timedatectl list-timezones | grep Asia
...
Asia/Hong_Kong
Asia/Shanghai
Asia/TaipeiAsia/Urumqi
...

设置时区

# 方法1:
# 将时区设置为上海
$ timedatectl set-timezone Asia/Shanghai 
#方法2:
# 直接修改符号链接
$ rm /etc/localtime$ ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime

若坚持要手动修改时间,先timedatectl set-ntp no。

# 设置日期和时间
$ timedatectl set-time '2018-10-11 09:00:00'
# 设置日期
$ timedatectl set-time '2018-10-11'
# 设置时间
$ timedatectl set-time '09:00:00'

# 方法2:使用date

$ date -s '2018-10-11 09:00:00'

同步系统时间到硬件时间

# 方法1:不建议硬件时间随系统时间变化
# 设置硬件时间随系统时间变化
$ timedatectl set-local-rtc 1
# 设置硬件时间不随系统时间变化
$ timedatectl set-local-rtc 0

# 方法2:
$ hwclock --systohc

是否启用自动同步时间

# 启用|停用自动同步时间
$ timedatectl set-ntp yes|no

# 上面的命令其实是启用、停用时间服务器,若安装了chrony服务,则等同于对该服务启停,若只安装了ntp,则是对ntp服务启停。
# 对chrony服务启停
$ systemctl start|stop chronyd
# 对ntp服务启停
$ systemctl start|stop ntpd

2、确认是否已安装ntp

【命令】rpm –qa | grep ntp

若只有ntpdate而未见ntp,则需删除原有ntpdate。如:

ntpdate-4.2.6p5-22.el7_0.x86_64

fontpackages-filesystem-1.44-8.el7.noarch

python-ntplib-0.3.2-1.el7.noarch

删除已安装ntp
【命令】yum –y remove ntpdate-4.2.6p5-22.el7.x86_64

重新安装ntp
【命令】yum –y install ntp

3、安装NTP

yum install -y ntp

说明:如果本机不支持联网,则可以找一台可以上网的服务器把安装包下载下来,然后做离线安装:

yum install --downloadonly --downloaddir=/home ntp

修改NTP配置

/etc/ntp.conf

#在配置中增加以下配置:
#允许上层时间服务器主动修改本机时间

restrict time.pool.aliyun.com nomodify notrap noquery

#允许所有主机通过本机同步时间

restrict default nomodify notrap

#外部时间服务器不可用时,以本地时间作为时间服务

server time.pool.aliyun.com iburst

server 127.127.1.0
fudge 127.127.1.0 stratum 10

修改完成后保存退出并重启ntp(systemctl restart ntpd)。

说明:
#nomodfiy:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
#noquery:不提供客户端的时间查询。
#notrap:不提供trap这个远程时间登录的功能

4、启动NTP服务&开机启动设置

#启动NTP服务

systemctl start ntpd

#将NTP服务设置为开机启动

systemctl enable ntpd

5、chrony的安装配置

安装chrony

$ yum -y install chrony

配置chrony

$ vim /etc/chrony.conf
server ntp1.alyun.com
server ntp2.alyun.com
server ntp3.alyun.com
#server 0.centos.pool.ntp.org iburst...

启动chrony

$ systemctl start chronyd

6、配置计划任务,使用ntpdate同步时间

# 启动并开机启动计划任务cron
$ systemctl start crond
$ systemctl enable crond

# 配置计划任务,每5分钟同步一次
$ crontab -e
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com