rageframe 一款开源的内部文档管理系统

YII2+AdminLET开源通用后台管理系统源码

RageFrame 2.0

重量级全栖框架,为二次开发而生

前言

这是一款现代化、快速、高效、便捷、灵活、方便扩展的应用开发骨架。

RageFrame 创建于 2016 年 4 月 16 日,一个基于 Yii2 高级框架的快速开发引擎,目前正在成长中,目的是为了集成更多的基础功能,不再为相同的基础功能重复制造轮子,开箱即用,让开发变得更加简单。
2018 年 9 月 10 日 2.0 版本正式上线,经过 1.0 版本一年多的开源反馈磨合,以更加优秀的形态出现。对 1.0 的版本进行了重构优化完善,更好的面向开发者进行二次开发。2.3.x 版本更是优化了底层突出了服务层,分离业务逻辑,支持多商户。

特色

  • 极强的可扩展性,应用化,模块化,插件化机制敏捷开发。
  • 极致的插件机制,微核架构,良好的功能延伸性,功能之间是隔离,可定制性高,可以渐进式地开发,逐步增加功能,安装和卸载不会对原来的系统产生影响,强大的功能完全满足各阶段的需求,支持用户多端访问(后台、微信、Api、前台等)。
  • 极完善的 RBAC 权限控制管理、无限父子级权限分组、可自由分配子级权限,且按钮/链接/自定义内容/插件等都可加入权限控制。
  • 只做基础底层内容,不会在上面开发过多的业务内容,满足绝大多数的系统二次开发。
  • 多入口模式,多入口分为 Backend (后台)、Merchant (商户端)、Frontend (PC前端)、Html5 (手机端)、Console (控制台)、Api (对内接口)、OAuth2 Server (对外接口)、MerApi (商户接口)、Storage (静态资源),不同的业务,不同的设备,进入不同的入口。
  • 对接微信公众号且支持小程序,使用了一款优秀的微信非官方 SDK Easywechat 4.x,开箱即用,预置了绝大部分功能,大幅度的提升了微信开发效率。
  • 整合了第三方登录,目前有 QQ、微信、微博、GitHub 等等。
  • 整合了第三方支付,目前有微信支付、支付宝支付、银联支付,二次封装为网关多个支付一个入口一个出口。
  • 整合了 RESTful API,支持前后端分离接口开发和 App 接口开发,可直接上手开发业务。
  • 一键切换云存储,本地存储、腾讯 COS、阿里云 OSS、七牛云存储都可一键切换,且增加其他第三方存储也非常方便。
  • 全面监控系统报错,报错日志写入数据库,方便定位错误信息。支持直接钉钉提醒。
  • 快速高效的 Servises (服务层),遵循 Yii2 的懒加载方式,只初始化使用到的组件服务。
  • 丰富的表单控件(时间、日期、时间日期、日期范围选择、颜色选择器、省市区三级联动、省市区勾选、单图上传、多图上传、单文件上传、多文件上传、百度编辑器、百度图表、多文本编辑框、地图经纬度选择器、图片裁剪上传、TreeGrid、JsTree、Markdown 编辑器)和组件(二维码生成、Curl、IP地址转地区),快速开发,不必再为基础组件而担忧。
  • 快速生成 CURD ,无需编写代码,只需创建表设置路径就能出现一个完善的 CURD ,其中所需表单控件也是勾选即可直接生成。
  • 正常开发只需要开发商户端,没有 Saas 的时候商户端就是总后台,有了 Saas,商户端就是子后台
  • 完善的文档和辅助类,方便二次开发与集成。

版权信息

RageFrame 遵循 Apache2 开源协议发布,并提供免费使用。

本项目包含的第三方源码和二进制文件之版权信息另行标注。

版权所有Copyright © 2016-2020 by RageFrame www.rageframe.com

All rights reserved。

CentOS 7/8 编译安装 libzip 1.7.3

CentOS 7 源码安装 libzip 1.7.3,error: Please reinstall the libzip distributio 或 error: system libzip must be upgraded to version >= 0.11解决  错误。

1、准备编译环境

yum install openssl-devel bzip2 bzip2-devel

2、下载源码,并解压

wget https://libzip.org/download/libzip-1.7.3.tar.gz 
tar -zxf libzip-1.7.3.tar.gz 
cd libzip-1.7.3

备用下载地址:https://down.24kplus.com/linux/libzip/libzip-1.7.3.tar.gz

3、编译安装

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr .. 
make 
make install

如果提示 ,cmake: command not found需要先安装 cmake。

安装cmake3

yum install -y cmake3
sudo ln -sf /usr/bin/cmake3 /usr/bin/cmake

Gitlab权限诠释

Gitlab权限概念

用户具有不同的能力,具体取决于他们在特定组或项目中的访问级别。如果用户同时在组的项目和项目本身中,则使用最高权限级别。

在公共和内部项目中,不会强制实施Guest角色。所有用户都可以创建问题,发表评论,克隆或下载项目代码。

当成员离开团队时, 将自动取消分配所有分配的问题和合并请求。

GitLab 管理员获得所有权限。

权限

用户组的权限

用户组有这几种权限的概念:Guest、Reporter、Developer、Master、Owner
这个概念在设置用户组的时候会遇到,叫做:Add user(s) to the group,比如链接:http://192.168.1.111/admin/groups/组名称

下表完整的列出了Guest,Reporter,Developer,Master,Owner对应的权限。

行为 Guest Reporter Developer Master Owner
浏览组
编辑组
创建项目
管理组成员
移除组

角色
Gitlab定义了以下几个角色:

Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 – Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
Gitlab中的组和项目有三种访问权限:Private、Internal、Public

Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
开源项目和组设置的是Internal

Gitlab权限列表

这里要列一下权限分类,因为gitlab的成员权限不单单只有一种。

  • 项目成员角色
    • Guest – 客人
    • Reporter – 记者
    • Developer – 开发者
    • Master (11.0版本中已重命名为 Maintainer) – 维护者
    • Owner – 所有者
  • 组成员角色
    • Guest – 客人
    • Reporter – 记者
    • Developer – 开发者
    • Master (11.0版本中已重命名为 Maintainer) – 维护者
    • Owner – 维护者
  • GitLab CI-CD 角色
    • Guest, Reporter – 客人,记者
    • Developer – 开发者
    • Maintainer – 维护者
    • Admin – 管理员
  • 工作角色
    • Guest, Reporter – 客人,记者
    • Developer – 开发者
    • Maintainer – 维护者
    • Admin – 管理员

一般管理员邀请用户加入到项目里都需要分配权限,如下:

项目成员权限

注意:在GitLab 11.0中,Master已重命名为Maintainer。

Action Guest Reporter Developer Maintainer Owner
创建新问题
创建机密问题
查看机密问题
留言
查看相关问题
查看工作列表
查看工作日志
下载并浏览作业工件
查看维基页面
查看许可证管理报告
查看安全报告
查看项目代码
拉项目代码
下载项目
分配问题
分配合并请求
标签问题
标签合并请求
创建代码段
管理问题跟踪器
管理标签
查看提交状态
查看容器注册表
查看环境
查看合并请求列表
管理相关问题
锁定问题讨论
从漏洞创建问题
查看错误跟踪列表
锁定合并请求讨论
创建新环境
停止环境
管理/接受合并请求
创建新的合并请求
创建新分支
推送到未受保护的分支机构
强制推送到不受保护的分支机构
删除未受保护的分支
添加标签
写一个维基
取消并重试作业
创建或更新提交状态
更新容器注册表
删除容器注册表图像
创建/编辑/删除项目里程碑
查看已批准/列入黑名单的许可
使用安全仪表板
解除漏洞
应用代码更改建议
使用环境终端
运行Web IDE的交互式Web终端
添加新的团队成员
推送到受保护的分支
启用/禁用分支保护
为开发人员打开/关闭受保护的分支推送
启用/禁用标签保护
重写/删除Git标签
将部署密钥添加到项目中
配置项目挂钩
管理跑步者
管理工作触发器
管理变量
管理GitLab页面
管理GitLab Pages域和证书
删除GitLab页面
查看受访问控制保护的GitLab页面
管理集群
管理许可证政策
编辑评论(由任何用户发布)
管理错误跟踪
切换可见性级别
将项目转移到另一个名称空
删除项目
删除问题
删除页面
强行推动受保护的分支机构
删除受保护的分支
查看项目审核事件

组成员权限

Action Guest Reporter Developer Maintainer Owner
浏览组
编辑组
创建子组
在组中创建项目
管理小组成员
删除组
管理组标签
创建/编辑/删除组里程碑
查看组史诗
创建/编辑组史诗
删除组史诗
查看组审核事件

GitLab CI / CD权限

Action Guest, Reporter Developer Maintainer Admin
查看提交和工作
重试或取消工作
擦除作业工件和跟踪
删除项目
创建项目
更改项目配置
添加特定的跑步者
添加共享的运行者
查看系统中的事件
管理界面

工作权限

Action Guest, Reporter Developer Maintainer Admin
运行CI作业
从当前项目克隆源和LFS
从公共项目克隆源和LFS
从内部项目克隆源和LFS
私有项目的克隆源和LFS
推送源和LFS
从当前项目中提取容器图像
从公共项目中提取容器图像
从内部项目中提取容器图像
从私人项目中提取容器图像
将容器图像推送到当前项目
将容器图像推送到其他项目

以上是权限明细列表,在给成员分配权限时需要合理分配。

参考资料

https://docs.gitlab.com/ee/user/permissions.html

CentOS 7/8 安装 oniguruma 和 oniguruma-devel

CentOS 7/8 安装 onigurumaoniguruma-devel 。解决 configure: error: Package requirements (oniguruma) were not met: Package 'oniguruma', required by 'virtual:world', not found 问题。

CentOS 7 安装

yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

备用下载:

oniguruma:http://down.24kplus.com/linux/oniguruma/oniguruma-6.7.0-1.el7.x86_64.rpm
oniguruma-devel:http://down.24kplus.com/linux/oniguruma/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

CentOS 8 安装

yum config-manager --set-enabled PowerTools
yum -y install oniguruma oniguruma-devel

uni-app优缺点

uni-app 是由DCloud公司开发,是一个使用 Vue.js 开发所有前端应用的框架,一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。目前拥有380万开发者,旗下uni-app有5万+案例、900款插件、并且被阿里小程序工具内置,所以选择用uni-app还算是比较放心的。

优点一:

uni-app是一套可以适用多端的开源框架,一套代码可以同时生成ios,Android,H5,微信小程序,支付宝小程序,百度小程序等。

优点二:

uni-app对前端开发人员比较友好,学习成本比较低,首先uni-app是基于vue.js的。其次封装的组件和微信小程序的组件一毛一样,所以对于现在的主流前端人员来说学习几乎0成本,如果你作为一个前端,没有接触过vue和微信小程序的话那建议你多去加加油了。

优点三:

uni-app使用HBX进行开发,HBX对于vue语法等支持可以说是比较完备了。使用HBX进行开发可以说是速度杠杠的。开发速度比较快,ps:虽然我是一个vscode党,但是也还是不得不说HBX做的也很不错了。个人挺喜欢的。

优点四:

uni-app拓展能力强,封装了H5+,支持nvue,也支持原生Android,ios开发。可以将原有的移动应用和H5应用改成uni-app应用。

优点五:

uni-app是DCloud出品的,属于国产,对于国产我们当然要支持一下啦!

缺点一:

uni-app问世的时间还比较短,有很多地方还不是完善,坑很多,如果不喜欢爬坑的朋友那就少用uni-app吧。

缺点二:

对于使用中的一些bug及问题,官方回应的不是很及时。不过可以加一下qq群或者去社区和其他uni-app开发者一起讨论。

红帽RHEL8和7有什么区别(Centos8与7参照redhat)

红帽RHEL8与RHEL7的区别

1. 红帽RHEL8和RHEL7功能区别对比

1.1 默认的文件系统

RHEL8与RHEL7都是采用XFS

1.2 RHEL8与RHEL7的内核版本分别是多少

关于内核版本,RHEL8和7的区别如下:
RHEL8采用4.18.0-x
RHEL7采用3.10-0-x

1.3 内核代码名字

关于内核代码,RHEL8和7的区别如下:

RHEL8采用2019-05-07 (Kernel Version 4.18.0-80)
RHE7采用2014-06-09 (Kernel Version 3.10.0-123)

1.4 标准/默认的仓库频道

关于仓库频道,RHEL8和7的区别如下:

RHEL8

Repo ID: rhel-8-for-x86_64-appstream-rpms
Repo Name: Red Hat Enterprise Linux 8 for x86_64 – AppStream (RPMs)

Repo ID: rhel-8-for-x86_64-baseos-rpms
Repo Name: Red Hat Enterprise Linux 8 for x86_64 – BaseOS (RPMs)

RHEL7

Repo ID: rhel-7-server-rpms
Repo Name: Red Hat Enterprise Linux 7 Server (RPMs)

1.5 网络时间同步

关于网络时间同步,RHEL8和7的区别如下:

RHEL8
只使用Chronyd,不支持NTP部署。

RHEL7
Chronyd与NTP两者都支持

 

1.6 支持最大的文件

关于支持最大的文件,RHEL8和7的区别如下:

RHEL8
XFS文件系统支持的最大文件大小已从500 TiB增加到1024 TiB。
(此最大文件大小仅适用于64位机器。Red Hat Enterprise Linux不支持32位机器上的XFS.)

RHEL7
最大. (单独) 文件大小= 500TiB
最大. 文件系统大小 = 500TiB

1.7 软件包管理

关于软件包管理,RHEL8和7的区别如下:

红帽8
包管理由DNF (YUMv4)完成。

yum4基于DNF技术,yum4命令提供了与早期版本中使用的Yum v3的向后兼容性。yum命令只是到dnf的一个符号链接。

红帽7
yum基于3.0.x版本

1.8 最大支持的内存

关于最大支持的内存,RHEL8和7的区别如下:

红帽8
24TB,64位架构

红帽7:
只支持12TB

1.9 默认的网络数据包过滤

关于默认的网络数据包过滤,RHEL8和7的区别如下:

RHEL8使用nftables取代了iptables框架

nftables是默认的网络包过滤,它取代了以前的iptables框架。firewalld守护进程现在使用nftables作为默认后端。

这将取代以前使用的“iptables”、“ip6tables”、“arptables”和“ebtables”工具。“nftables”确实为IPv4和IPv6协议提供了一个单一的框架。

而RHEL7 firewalld守护进程使用iptables作为其默认后端。

1.10 默认的数据库

关于默认的数据库,RHEL8和7的区别如下:

RHEL8默认支持的数据库:

  • MySQL 8.0
  • MariaDB 10.3
  • PostgreSQL 10 and PostgreSQL 9.6
  • Redis 5.0

MariaDB是Red Hat Enterprise Linux 7中MySQL的默认实现

1.11 支持的硬件架构

关于支持的硬件架构,RHEL8和7的区别如下:

RHEL8支持以下硬件架构

  • AMD and Intel 64-bit architectures
  • The 64-bit ARM architecture
  • IBM Power Systems, Little Endian
  • IBM Z

RHEL7支持以下硬件架构:

  • 64-bit AMD
  • 64-bit Intel
  • IBM POWER7
  • IBM System z

1.12 可供安装的ISO镜像类型

关于可供安装的ISO镜像类型,RHEL8和7的区别如下:

RHEL 8可以使用以下类型的ISO镜像安装:

  • Binary(二进制) DVD ISO
  • Boot ISO

在RHEL7中,可以使用以下可用的ISO镜像进行安装:

  • Boot ISO
  • Binary(二进制) DVD ISO
  • Supplementary(追加的) Binary DVD

1.13 默认情况下的Cockpit web控制台的安装状态

关于默认情况下的Cockpit web控制台的安装状态,RHEL8和7的区别如下:

在RHEL8中,Cockpit是默认安装和可用的。这将在非最小模式下自动安装,并在防火墙中启用所需端口。
Cockpit提供了一个增强的框架,可以用来访问/编辑/更改许多系统设置。这提供了通过web接口的访问,可以使用浏览器访问url地址http://:9090进行管理。

在RHEL7系统中,Cockpit默认情况下没有安装,需要通过启用extraoptional存储库通道来安装。

1.14 默认虚拟机管理

关于默认虚拟机管理,RHEL8和7的区别如下:

在RHEL8系统中,默认情况下,它由Cockpit管理。如果需要,还可以安装virt-manager。

而在RHEL7系统中virt-manager将用于基于KVM的虚拟系统管理。

1.15 RMP版本的改进

关于RMP版本的改进,RHEL8和7的区别如下:

Red Hat Enterprise Linux 8是用RPM 4.14发布的。现在,RPM在开始安装之前验证整个包的内容。

这有很多改进,其中一些值得注意的功能是:

  • debuginfo包可以并行安装
  • 支持弱依赖关系
  • 支持丰富的或布尔依赖
  • 支持封装文件超过4 GB的大小
  • 支持文件触发器

构建在RHEL8上的包在压缩负载上使用一个新的SHA-256散列。

而Red Hat Enterprise Linux 7是用RPM 4.11发布的。在RHEL7上,RPM实用程序在解压时验证单个文件的有效负载内容。

1.16 CUPS日志

关于CUPS日志,RHEL8和7的区别如下:

RHEL8所有类型的CUPS日志都与来自其他程序的日志一起集中记录在systemd journald守护进程中。要访问CUPS日志,请使用“journalctl -u CUPS”命令。
而RHEL7系统上,CUPS日志被存储中 /var/log/cups directory.

nobody用户替换nfsnobody
rhel8系统上,nobodynfsnobody用户和组合并到nobodyID(65534)中。

在Red Hat Enterprise Linux 7中,有:

  • ID为99的nobody用户和组
  • nfsnobody用户和组对的ID为65534,这也是默认的内核溢出ID。

1.17 默认版本的控制系统

关于默认版本的控制系统,RHEL8和7的区别如下:

RHEL 8提供以下版本控制系统:

  • Git 2.18
  • Mercurial 4.8
  • Subversion 1.10

并发版本系统(CVS)和版本控制系统(RCS)在RHEL8中都不可用。

而Red Hat Enterprise Linux 7与三个最流行的开源修订控制系统一起发布:Git、SVN和CVS。

1.18 编程语言版本

关于编程语言版本,RHEL8和7的区别如下:

RHEL8新版本编程语言

  • Python 3
  • PHP 7.2
  • Ruby 2.5
  • Node.js 10

而RHEL7支持以下编辑语言

  • Python 2 ( 2.7.X)
  • PHP 5.4
  • Ruby 2.0.0

1.19 关于容器技术的支持

关于容器技术的支持,RHEL8和7的区别如下:

Docker不包括在RHEL 8.0中。使用容器时,需要使用podman、buildah、skopeo和runc工具。
podman工具已经作为一个完全支持的特性发布了。
Docker和Docker Registry是Red Hat Enterprise Linux 7中的Extras订阅频道的一部分。

1.20 开发工具支持

关于开发工具支持,RHEL8和7的区别如下:

RHEL 8提供OpenJDK 11、OpenJDK 8、IcedTea-Web和各种Java工具,如Ant、Maven或Scala。
在RHEL7中,OpenJDK8用作默认的Java开发工具包(JDK),而Java 8用作默认的Java版本。

1.21 NFS配置对比

关于NFS配置对比,RHEL8和7的区别如下:

RHEL8的NFS配置文件是/etc/ NFS .conf
当从RHEL7升级时,Red Hat Enterprise Linux 8尝试自动将所有选项从/etc/sysconfig/nfs转换为/etc/nfs。并不再支持NFS / UDP。

而RHEL7中,默认的NFS配置文件是/etc/sysconfig/ NFS

1.22 默认的显示服务器

关于默认的显示服务器,RHEL8和7的区别如下:

在RHEL 8中,Gnome display Manager使用的默认显示服务器是Wayland
X.org服务器是RHEL 7中的默认显示服务器

2. RHEL8额外新功能新特性

2.1 elevator内核命令行参数被废弃

早期的RHEL版本中使用了elevator内核命令行参数来设置所有设备的磁盘调度程序。在RHEL 8中,该参数被弃用。
上游Linux内核已经取消了对elevator参数的支持,但是出于兼容性的原因,RHEL 8中仍然可以使用它。

2.2 网络脚本被废弃

在RHEL 8中,网络脚本在默认情况下不可用。有一个新版本的ifupifdown正在使用,这将需要NetworkManager守护进程运行,并在后端使用nmcli

如果需要早期的网络脚本,则必须安装“network-scripts”包。

2.3 新内核支持5级paging

在早期版本中,有4级分页实现,可以处理48/46位虚拟/物理地址,并且物理总线上限为64TB。在即将推出的Intel处理器中,这些限制已经扩展到57/52位的虚拟/物理内存寻址,具有128 PiB的虚拟地址空间和4 PB的物理内存容量。

2.4 Anaconda支持RHEL 8中的系统目标

以前,Anaconda没有向订阅管理器提供系统用途信息。在Red Hat Enterprise Linux 8.0中,您可以在安装期间使用Anaconda的system purpose窗口或Kickstart的syspurpose命令设置系统的预期目标。

2.5 CodeReady Linux构建器仓库

有一个CodeReady Linux构建器存储库,可用于所有RHEL订阅。这为开发人员提供了额外的包。CodeReady Linux构建器存储库中包含的包不支持生产使用。

2.6 改进版本的OpenSSH

OpenSSH的版本是7.8p1,与早期版本相比有很多改进。其中一些是:

  • 不再支持SSH version 1.
  • 默认不开启DNS支持.
  • 最小可接受RSA密钥大小设置为1024位.
  • 移除 ‘Blowfish’, ‘CAST’, ‘RC4’ ciphers.
  • 默认关闭DSA 公钥算法.

2.7 RHEL8中不支持数字用户名和组名

useraddgroupadd命令不允许用户名和组名完全由数字字符组成。这是RHEL7中不支持的特性,现在RHEL8完全不支持它。

2.8 默认情况下,securetty现在是禁用的

默认情况下禁用了securetty PAM模块,并且从RHEL8中删除了/etc/securetty文件。

2.9 改进的TCP网络栈

RHEL 8拥有TCP网络栈版本4.18,可以提供更高的性能、更好的可伸缩性和更稳定的性能。性能得到了提高,特别是在繁忙的TCP服务器与高进入连接速率。

除了新的TCP栈之外,还有两种新的TCP拥塞算法。在大多数情况下,BBR和NV可以提供比cubic更低的延迟和更好的吞吐量。

2.10 高可用性(HA)

在Red Hat Enterprise Linux 8中,pcs完全支持Corosync 3集群引擎和用于集群通信的Kronosnet (knet)网络抽象层。无法将集群节点从RHEL7就地升级到RHEL8。

2.11 lvmlockd取代了clvmd

用于管理共享存储逻辑卷的clvmd已被删除,取而代之的是lvmlockd(lvm lock 守护进程)

镜像下载地址

CentOS 8 下载:https://centos.org/download/

国内镜像下载:https://mirrors.tuna.tsinghua.edu.cn/centos/

用centos8搭建firewalld防火墙

一,firewalld的systemd管理命令

启动:systemctl start firewalld
关闭:systemctl stop firewalld
查看状态:systemctl status firewalld
开机禁用:systemctl disable firewalld
开机启用:systemctl enable firewalld

 

二,firewall-cmd的通用命令:

1,查看firewall-cmd版本:

[root@localhost liuhongdi]# firewall-cmd --version
0.7.0

 

2,查看firewall-cmd帮助

[root@localhost liuhongdi]# firewall-cmd --help

 

3,查看firewalld状态

[root@localhost liuhongdi]# firewall-cmd --state
running

 

4,更新防火墙的规则

[root@localhost liuhongdi]# firewall-cmd --reload
success

说明:–reload的作用:让“永久生效”的配置规则立即生效,并覆盖当前的配置规则

 

5,查看firewalld的所有规则:

[root@localhost zones]# firewall-cmd --list-all

 

三,zone相关命令:

1,得到默认的zone:

[root@localhost liuhongdi]# firewall-cmd --get-default-zone
public

 

2,得到当前正在使用的zone与网卡名称

[root@localhost liuhongdi]# firewall-cmd --get-active-zones
libvirt
  interfaces: virbr0
public
  interfaces: ens33

 

3,得到所有可用的zone

[root@localhost liuhongdi]# firewall-cmd --get-zones
block dmz drop external home internal libvirt public trusted work

 

4,设置默认的zone

[root@localhost liuhongdi]# firewall-cmd --set-default-zone=drop
success
[root@localhost liuhongdi]# firewall-cmd --get-active-zones
drop
  interfaces: ens33
libvirt
  interfaces: virbr0

 

四,services相关命令:

1,列出所有可用的services

 

[root@localhost liuhongdi]# firewall-cmd --get-services

 

2,列出当前已放开的services

[root@localhost liuhongdi]# firewall-cmd --list-services

 

3,  放开一个服务

[root@localhost liuhongdi]# firewall-cmd --add-service=http

 

4,  关闭一个服务

[root@localhost liuhongdi]# firewall-cmd --remove-service=http --permanent
success

 

说明:关于permanent参数:    添加–permanent重启后则永久生效,如无–permanent仅临时生效

 

五,port相关命令:

1,查看所有打开的端口:

[root@localhost liuhongdi]# firewall-cmd --zone=public --list-ports
80/tcp 8080/tcp 22/tcp

 

2,放开一个端口:

[root@localhost liuhongdi]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success

 

3,关闭已放开的端口:

[root@localhost liuhongdi]# firewall-cmd --zone=public --remove-port=80/tcp --permanent
success

 

六,针对permanent参数的验证:

1,添加端口后,如果加了 permanent,不会马上起作用:reload之后会起作用

[root@localhost liuhongdi]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success 
[root@localhost liuhongdi]# firewall-cmd --zone=public --list-ports
8080/tcp 22/tcp
[root@localhost liuhongdi]# firewall-cmd --reload
success
[root@localhost liuhongdi]# firewall-cmd --zone=public --list-ports
8080/tcp 22/tcp 80/tcp

 

2,删除端口,如果加了 permanent,不会马上起作用,也需要reload

[root@localhost liuhongdi]# firewall-cmd --zone=public --remove-port=80/tcp --permanent
success
[root@localhost liuhongdi]# firewall-cmd --zone=public --list-ports
8080/tcp 22/tcp 80/tcp
[root@localhost liuhongdi]# firewall-cmd --reload
success
[root@localhost liuhongdi]# firewall-cmd --zone=public --list-ports
8080/tcp 22/tcp

 

3,如果不加permanent,能马上起作用:

[root@localhost liuhongdi]# firewall-cmd --zone=public --add-port=80/tcp 
success
[root@localhost liuhongdi]# firewall-cmd --zone=public --list-ports
8080/tcp 22/tcp 80/tcp

 

七,针对ip地址的操作:

1,允许一个ip访问:

[root@localhost liuhongdi]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="43.229.53.61" accept'

 

2,禁止一个ip访问

[root@localhost liuhongdi]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="43.229.53.61" drop'

说明:drop也可用reject

两者的区别在于drop不会提示拒绝访问而是直接丢弃数据包

 

3,指定允许一个ip到指定端口的访问

[root@localhost liuhongdi]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="22" accept'
success

 

4,删除一条rich rule

[root@localhost liuhongdi]# firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="22" accept'
success

 

八,手动添加的防火墙规则位于哪里?

 

/etc/firewalld/zones/public.xml

说明:可以手动编辑这个保存规则的xml,然后做reload.

 

九,生产环境中要注意的地方:

如果已添加了http服务,仍然可以添加80 port,

导致要关闭http服务时,也需要关闭80 port,

所以,尽量使用 port,而不要把service和port混用

 

十,一个生产环境中防火墙的zone文件例子:

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are acc
epted.</description>
  <port port="80" protocol="tcp"/>
  <rule family="ipv4">
    <source address="10.0.10.1"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="43.229.53.61"/>
    <drop/>
  </rule>
</zone>

 

说明:

1,生产环境中防火墙一定要做基于ip地址的限制,不能允许从公网随便访问

2,需要放开的端口越少越好,最好只放开一个有运行中业务的端口

Centos8 的系统内核已经支持BBR了。

安装安装ELRepo
导入公钥:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装ELRepo 8

yum install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

启用 ELRepo 源仓库:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装新内核:

yum --enablerepo=elrepo-kernel install kernel-ml

/etc/sysctl.conf,加入如下代码:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

保存,并执行 sysctl -p 即可。

或者

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

通过以下三条指令验证是否已经开启成功

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr

php7.4-Migration to pkg-config

A number of extensions have been migrated to exclusively use pkg-config for the detection of library dependencies. Generally, this means that instead of using –with-foo-dir=DIR or similar only –with-foo is used. Custom library paths can be specified either by adding additional directories to PKG_CONFIG_PATH or by explicitly specifying compilation options through FOO_CFLAGS and FOO_LIBS.

The following extensions and SAPIs are affected:

  • CURL:
    • –with-curl no longer accepts a directory.
  • Enchant:
    • –with-enchant no longer accepts a directory.
  • FPM:
    • –with-fpm-systemd now uses only pkg-config for libsystem checks. The libsystemd minimum required version is 209.
  • GD:
    • –with-gd becomes –enable-gd (whether to enable the extension at all) and –with-external-gd (to opt into using an external libgd, rather than the bundled one).
    • –with-png-dir has been removed. libpng is required.
    • –with-zlib-dir has been removed. zlib is required.
    • –with-freetype-dir becomes –with-freetype
    • –with-jpeg-dir becomes –with-jpeg
    • –with-webp-dir becomes –with-webp
    • –with-xpm-dir becomes –with-xpm
  • IMAP:
    • –with-kerberos-systemd no longer accepts a directory.
  • Intl:
    • –with-icu-dir has been removed. If –enable-intl is passed, then libicu is always required.
  • LDAP:
    • –with-ldap-sasl no longer accepts a directory.
  • Libxml:
    • –with-libxml-dir has been removed.
    • –enable-libxml becomes –with-libxml.
    • –with-libexpat-dir has been renamed to –with-expat and no longer accepts a directory.
  • Litespeed:
    • –with-litespeed becomes –enable-litespeed.
  • Mbstring:
    • –with-onig has been removed. Unless –disable-mbregex has been passed, libonig is required.
  • ODBC:
    • –with-iodbc no longer accepts a directory.
    • –with-unixODBC without a directory now uses pkg-config (preferred). Directory is still accepted for old versions without libodbc.pc.
  • OpenSSL:
    • –with-openssl no longer accepts a directory.
  • PCRE:
    • –with-pcre-regex has been removed. Instead –with-external-pcre is provided to opt into using an external PCRE library, rather than the bundled one.
  • PDO_SQLite:
    • –with-pdo-sqlite no longer accepts a directory.
  • Readline:
    • –with-libedit no longer accepts a directory.
  • Sodium:
    • –with-sodium no longer accepts a directory.
  • SQLite3:
    • –with-sqlite3 no longer accepts a directory.
  • XSL:
    • –with-xsl no longer accepts a directory.
  • Zip:
    • –with-libzip has been removed.
    • –enable-zip becomes –with-zip.

简单理解epel源和安装步骤

EPEL源-是什么?

EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.

使用很简单:
1. 首先我们需要安装一个叫”epel-release”的软件包,这个软件包会自动配置yum的软件仓库。当然你也可以不安装这个包,自己配置软件仓库也是一样的。

#用于RHEL5系列

wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm

#用于RHEL6系列

wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm

2. 安装完成之后你就可以直接使用yum来安装额外的软件包了

yum clean all
 
yum makecache
yum install nginx pure-ftpd

3.直接自己手工添加软件仓库配置文件

vi /etc/yum.repos.d/epel.repo
 
[epel]
name=epel
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-releasever&arch=releasever&arch=basearch
enabled=1
gpgcheck=0

CentOS6.5添加阿里云的EPEL源

yum localinstall --nogpgcheck http://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

安装阿里云Epel源

1、 首先卸载以前装的epel以免影响

rpm -e epel-release

2、 下载阿里提供的epel

wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo

3、yum clean all

4、yum makecache

阿里云源安装示例:

Epel安装很简单

1、备份(如有配置其他epel源)

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
 
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

2、下载新repo 到/etc/yum.repos.d/

epel(RHEL 7)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

epel源:rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

更新证书:yum –disablerepo=epel -y update ca-certificates

vim /etc/yum.repos.d/epel.repo

epel(RHEL 6)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

epel(RHEL 5)

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo