当前位置: 首页 > news >正文

DzzOffice 开发手册之系统的配置

系统安全注意事项

1、禁止长期放置phpinfo等探针,phpmyadmin等管理程序,需要的时候放置,并在使用完毕后移至非站点目录。
2、禁止在运行的站点内放置测试程序,备份目录如bak,old文件夹一律移到非站点目录。
3、禁止放置install文件夹,以及upgrade、index 相关安装和升级文件。
4、禁止目录下出现编辑器编辑后自动生成的备份文件。
5、打包站点得来的zip,tar.gz,tar文件,一律不能放到站点目录下。
6、除config/、data/目录外,其他目录设置成root权限,禁止其他用户组修改。
7、设置禁止访问config/、data/目录下的php文件。

系统的配置文件

文件:/config/config.php

  • [数据库密码问了怎么办?怎么修改数据库密码?]
    下面将为您介绍在 /config/config.php 文件中的各项配置,包括数据库、内存服务器优化、服务器、页面输出、站点安全等方面的设置。

数据库相关设置

  1. 数据库主服务器设置:支持多组服务器设置,根据分布式策略使用某个服务器,提高数据库的可用性和负载能力。
  2. 数据库从服务器设置:使用此方式连接时,dbhost 设置为 localhost,支持多组服务器设置,系统根据每次随机使用,提高数据库的读性能,同时保证数据的一致性。
  3. 启用从服务器的开关:在需要时启用从服务器,提高数据库的读性能。
  4. 数据库分布部署策略设置:通过设置不同的部署策略,可以实现数据库的负载均衡和高可用性。
  5. 数据库公共设置:此类设置通常针对每个部署的服务器,包括数据库的字符集、时区等公共配置,适用于所有部署的服务器。
  6. 禁用从数据库的数据表:表名字之间使用逗号分割,防止从数据库的表被误操作,保证数据的安全。
  7. 这两个表仅从主服务器读写:不使用从服务器,确保数据的一致性,同时避免从服务器的负载过高。
// CONFIG DB
// 数据库相关设置/*** 数据库主服务器设置, 支持多组服务器设置, 当设置多组服务器时, 则会根据分布式策略使用某个服务器。这样可以提高数据库的可用性和负载能力。* @example* $_config['db']['1']['dbhost'] = 'localhost'; // 服务器地址* $_config['db']['1']['dbuser'] = 'root'; // 用户* $_config['db']['1']['dbpw'] = '';// 密码* $_config['db']['1']['dbcharset'] = 'gbk';// 字符集* $_config['db']['1']['pconnect'] = '0';// 是否持续连接* $_config['db']['1']['dbname'] = 'x1';// 数据库* $_config['db']['1']['tablepre'] = 'pre_';// 表名前缀** $_config['db']['2']['dbhost'] = 'localhost';* ...*/
$_config['db'][1]['dbhost']         = 'localhost';//支持三种直接加端口如:127.0.0.1:3306或使用UNix socket 如:/tmp/mysql.sock
$_config['db'][1]['dbuser']         = 'root';
$_config['db'][1]['dbpw']           = 'root';
$_config['db'][1]['dbcharset']      = 'utf8';
$_config['db'][1]['pconnect']       = 0;
$_config['db'][1]['dbname']         = 'dzzoffice';
$_config['db'][1]['tablepre']       = 'dzz_';
$_config['db'][1]['port'] = '3306';//mysql端口
$_config['db'][1]['unix_socket'] = '';//使用此方式连接时 dbhost设置为localhost/*** 数据库从服务器设置( slave, 只读 ), 支持多组服务器设置, 当设置多组服务器时, 系统根据每次随机使用。这样可以提高数据库的读性能,同时保证数据的一致性。* @example* $_config['db']['1']['slave']['1']['dbhost'] = 'localhost';* $_config['db']['1']['slave']['1']['dbuser'] = 'root';* $_config['db']['1']['slave']['1']['dbpw'] = 'root';* $_config['db']['1']['slave']['1']['dbcharset'] = 'gbk';* $_config['db']['1']['slave']['1']['pconnect'] = '0';* $_config['db']['1']['slave']['1']['dbname'] = 'x1';* $_config['db']['1']['slave']['1']['tablepre'] = 'pre_';* $_config['db']['1']['slave']['1']['weight'] = '0'; //权重:数据越大权重越高** $_config['db']['1']['slave']['2']['dbhost'] = 'localhost';* ...**/
$_config['db']['1']['slave'] = array();//启用从服务器的开关。这样可以在需要时启用从服务器,提高数据库的读性能。
$_config['db']['slave'] = false;
/*** 数据库 分布部署策略设置。通过设置不同的部署策略,可以实现数据库的负载均衡和高可用性。** @example 将 user 部署到第二服务器, session 部署在第三服务器, 则设置为* $_config['db']['map']['user'] = 2;* $_config['db']['map']['session'] = 3;** 对于没有明确声明服务器的表, 则一律默认部署在第一服务器上。这样可以确保没有明确指定的表不会被遗漏,保证数据的一致性。**/
$_config['db']['map'] = array();/*** 数据库 公共设置, 此类设置通常对针对每个部署的服务器。这些设置包括数据库的字符集、时区等公共配置,适用于所有部署的服务器。*/
$_config['db']['common'] = array();/***  禁用从数据库的数据表, 表名字之间使用逗号分割。这样可以防止从数据库的表被误操作,保证数据的安全。** @example session, user 这两个表仅从主服务器读写, 不使用从服务器。这样可以确保数据的一致性,同时避免从服务器的负载过高。* $_config['db']['common']['slave_except_table'] = 'session, user';**/
$_config['db']['common']['slave_except_table'] = '';

内存服务器优化设置

  1. PHP扩展组件支持:确保内存服务器的优化设置生效,提高系统的性能。
  2. 内存变量前缀:可更改,避免同服务器中的程序引用错乱,保证系统的稳定性。
  3. Redis设置:需要 PHP 扩展组件支持,确保 Redis 缓存的正确配置,提高系统的性能。
  4. 是否使用 Redis::SERIALIZER_IGBINARY 选项:需要 igbinary 支持,确保 Redis 序列化的正确性,提高系统的稳定性。
  5. 支持以下选项:默认使用 PHP 的 serializer,确保数据序列化的正确性,提高系统的稳定性。
// CONFIG MEMORY
// 内存服务器优化设置
/*** 以下设置需要PHP扩展组件支持,其中 memcache 优先于其他设置,* 当 memcache 无法启用时,会自动开启另外的两种优化模式,* 这样可以确保内存服务器的优化设置生效,提高系统的性能。*///内存变量前缀, 可更改,避免同服务器中的程序引用错乱。这样可以避免内存变量被其他程序误引用,保证系统的稳定性。
$_config['memory']['prefix'] = 'dzzoffice_';/* reids设置, 需要PHP扩展组件支持, timeout参数的作用没有查证。这样可以确保 Redis 缓存的正确配置,提高系统的性能。*/
$_config['memory']['redis']['server'] = '';
$_config['memory']['redis']['port'] = 6379;
$_config['memory']['redis']['pconnect'] = 1;
$_config['memory']['redis']['timeout'] = 0;
$_config['memory']['redis']['requirepass'] = '';//如果redis需要密码,请填写redis密码
/*** 是否使用 Redis::SERIALIZER_IGBINARY选项,需要igbinary支持,windows下测试时请关闭,否则会出>现错误Reading from client: Connection reset by peer* 这样可以确保 Redis 序列化的正确性,提高系统的稳定性。* 支持以下选项,默认使用PHP的serializer* Redis::SERIALIZER_IGBINARY =2* Redis::SERIALIZER_PHP =1* Redis::SERIALIZER_NONE =0 //则不使用serialize,即无法保存array*/
$_config['memory']['redis']['serializer'] = 1;$_config['memory']['memcache']['server'] = '127.0.0.1'; // memcache 服务器地址
$_config['memory']['memcache']['port'] = 11211;         // memcache 服务器端口
$_config['memory']['memcache']['pconnect'] = 1;         // memcache 是否长久连接
$_config['memory']['memcache']['timeout'] = 1;          // memcache 服务器连接超时$_config['memory']['memcached']['server'] = '127.0.0.1'; // memcached 服务器地址
$_config['memory']['memcached']['port'] = 11211;        // memcached 服务器端口
$_config['memory']['memcached']['pconnect'] = 1;        // memcached 是否长久连接
$_config['memory']['memcached']['timeout'] = 1;         // memcached 服务器连接超时$_config['memory']['apc'] = 1;                          // 启动对 apc 的支持
$_config['memory']['xcache'] = 1;                       // 启动对 xcache 的支持
$_config['memory']['eaccelerator'] = 0;                 // 启动对 eaccelerator 的支持
$_config['memory']['wincache'] = 1;                     // 启动对 wincache 的支持

服务器相关设置

  1. 服务器编号:多 webserver 时,用于标识当前服务器的 ID,方便服务器管理,提高系统的可维护性。
  2. CONFIG CACHE 缓存类型:设置缓存类型,提高系统的性能。
// CONFIG SERVER
// 服务器相关设置
$_config['server']['id']        = 1;            // 服务器编号,多webserver的时候,用于标识当前服务器的ID。这样可以方便地进行服务器管理,提高系统的可维护性。

缓存设置

// CONFIG CACHE
// 缓存设置
$_config['cache']['type']           = 'sql';    // 缓存类型 file=文件缓存, sql=数据库缓存

页面输出设置

  1. 页面字符集:确保页面的字符集正确,避免乱码问题。
  2. 强制输出页面字符集:用于避免某些环境乱码,确保页面字符集的一致性,提高用户体验。
  3. 是否采用 Gzip 压缩输出:减少页面加载时间,提高用户体验。
  4. 模板自动刷新开关:确保模板的实时更新,提高系统的性能。
  5. 页面语言:设置页面语言,提高用户体验。
// CONFIG OUTPUT
// 页面输出设置
$_config['output']['charset']           = 'utf-8';  // 页面字符集。这样可以确保页面的字符集正确,避免乱码问题。
$_config['output']['forceheader']       = 1;        // 强制输出页面字符集,用于避免某些环境乱码。这样可以确保页面字符集的一致性,提高用户体验。
$_config['output']['gzip']              = 0;        // 是否采用 Gzip 压缩输出。这样可以减少页面加载时间,提高用户体验。
$_config['output']['tplrefresh']        = 1;        // 模板自动刷新开关 0=关闭, 1=打开$_config['output']['language']          = 'zh-cn';  // 页面语言 zh-cn/zh-tw。这样可以设置页面语言,提高用户体验。
$_config['output']['language_list']['zh-cn']='简体中文';    // 页面语言 zh-CN/en-US
$_config['output']['language_list']['en-US']='English'; // 页面语言 zh-CN/en-US$_config['output']['staticurl']         = 'static/';    // 站点静态文件路径,“/”结尾
$_config['output']['ajaxvalidate']      = 0;        // 是否严格验证 Ajax 页面的真实性 0=关闭,1=打开
$_config['output']['iecompatible']      = 0;        // 页面 IE 兼容模式

COOKIE 设置

//CONFIG COOKIE
// COOKIE 设置
$_config['cookie']['cookiepre']         = 'dzzoffice_';     // COOKIE前缀
$_config['cookie']['cookiedomain']      = '';       // COOKIE作用域
$_config['cookie']['cookiepath']        = '/';      // COOKIE作用路径

站点安全设置

  1. 站点加密密钥:确保站点的数据安全,防止数据泄露。
  2. 自身 URL XSS 防御:防止 XSS 攻击,提高站点的安全性。
  3. CC 攻击防御:防止 CC 攻击,提高站点的可用性。
  4. 是否开启 SQL 安全检测:自动预防 SQL 注入攻击,提高站点的安全性。
  5. 站点创始人:确保站点的安全管理,防止未经授权的访问和操作。
  6. 后台管理操作是否验证管理员的 IP:提高后台管理的安全性,防止非法访问。
  7. 是否允许后台运行 SQL 语句:确保后台操作的安全性,防止误操作导致的数据丢失或泄露。
  8. 是否允许后台恢复网站数据:确保站点数据的安全性,防止数据丢失或泄露。
  9. 用户登录错误验证 ip:防止恶意登录尝试,提高站点的安全性。
  10. 用户登录超时:确保用户登录的安全,防止未授权访问。
  11. 操作系统编码:确保操作系统的字符集设置正确,提高系统的稳定性。
// CONFIG SECURITY
// 站点安全设置
$_config['security']['authkey']             = 'dzzoffice';  // 站点加密密钥。这样可以确保站点的数据安全,防止数据泄露。
$_config['security']['urlxssdefend']        = true;     // 自身 URL XSS 防御。这样可以防止 XSS 攻击,提高站点的安全性。
$_config['security']['attackevasive']       = 0;        // CC 攻击防御 1|2|4|8。这样可以防止 CC 攻击,提高站点的可用性。0表示关闭此功能,1表示cookie刷新限制,2表示限制代理访问,4表示二次请求,8表示回答问题(第一次访问时需要回答问题)。$_config['security']['querysafe']['status'] = 1;        // 是否开启SQL安全检测,可自动预防SQL注入攻击。这样可以防止 SQL 注入攻击,提高站点的安全性。
$_config['security']['querysafe']['dfunction']  = array('load_file','hex','substring','if','ord','char');
$_config['security']['querysafe']['daction']    = array('@','intooutfile','intodumpfile','unionselect','(select', 'unionall', 'uniondistinct');
$_config['security']['querysafe']['dnote']  = array('/*','*/','#','--','"');
$_config['security']['querysafe']['dlikehex']   = 1;
$_config['security']['querysafe']['afullnote']  = 0;

站点创始人设置

// CONFIG ADMINCP
// 站点创始人设置
$_config['admincp']['founder']          = '1';      // 站点创始人:拥有站点管理后台的最高权限,每个站点可以设置 1名或多名创始人。这样可以确保站点的安全管理,防止未经授权的访问和操作。可以使用uid,也可以使用用户名;多个创始人之间请使用逗号“,”分开;

用户相关设置

// CONFIG USERLOGIN
// 用户相关设置
$_config['admincp']['checkip']          = 1;        // 后台管理操作是否验证管理员的 IP, 1=是[安全], 0=否。仅在管理员无法登录后台时设置 0。这样可以提高后台管理的安全性,防止非法访问。当值为0时可以避免IP频繁变动无法登录或者频繁退出。
$_config['admincp']['runquery']         = 0;        // 是否允许后台运行 SQL 语句 1=是 0=否[安全]。这样可以确保后台操作的安全性,防止误操作导致的数据丢失或泄露。
$_config['admincp']['dbimport']         = 0;        // 是否允许后台恢复网站数据  1=是 0=否[安全]。这样可以确保后台操作的安全性,防止误操作导致的数据丢失或泄露。
$_config['userlogin']['checkip']        = 1;        //用户登录错误验证ip,对于同一ip同时使用时建议设置为0,否则当有一位用户登录错误次数超过5次,该ip被锁定15分钟,导致其他的同IP用户无法登录。这样可以防止恶意登录尝试,提高站点的安全性。
//$_config['system_os'] = 'linux';      //windows,linux,mac,系统会自动判断。这样可以确保操作系统编码的正确设置,提高系统的稳定性。
//$_config['system_charset']='utf-8';   //操作系统编码,不设置系统将根据操作系统类型来判断linux:utf-8;windows:gbk。这样可以确保操作系统的字符集设置正确,提高系统的稳定性。

调试设置

//CONFIG DEBUG
$_config['debug'] = 1;

其中2表示全部错误都显示,1表示只显示致命的错误,0表示关闭调试。
当开启了调试时,当前页面会显示一些信息,如当前所涉及的文件、SQL语句、缓存、$_COOKIE、MySQL 进程列表、$_G等信息。

image.png

image.png

  • sql日志
//CONFIG DEBUG
$_config['sqllog'] = 1;// 1: 仅记录SQL, 2: 记录SQL和调用栈。在系统日志中查看
http://www.dtcms.com/a/332440.html

相关文章:

  • 短剧小程序系统开发:打造个性化娱乐新体验
  • 【反序列化基本介绍】
  • 25.Linux 聚合链路与软件网桥
  • 【中微半导体】BAT32G139GK48FA 定时器B输入捕获测速(寄存器TBSR/TBIER/TB/TBGRA/TBGRC)
  • Struts文件泄露漏洞分析与修复方案
  • 企业级Spring事务管理:从单体应用到微服务分布式事务完整方案
  • Baumer高防护相机如何通过YoloV8深度学习模型实现驾驶员疲劳的检测识别(C#代码UI界面版)
  • MySQL 主键详解:作用与使用方法
  • 搭建前端开发环境 安装nvm nodejs pnpm 配置环境变量
  • MySQL、PolarDB、PolarDB-X、TableStore、MongoDB、TiDB、ClickHouse选型
  • 融合开源AI智能名片与链动2+1模式的微商新零售转型研究——基于S2B2C商城小程序的实践探索
  • 戴永红×数图:重构零售空间价值,让陈列创造效益!
  • HTML5新增属性
  • 鸿蒙任务调度机制深度解析:优先级、时间片、多核与分布式的流畅秘密
  • 什么是国产化防爆平板?有哪些功能特点?应用在什么场景?
  • 【iOS】多线程原理
  • AI生成内容版权争议:当算法创作撞上法律边界
  • Python入门第2课:变量、数据类型与输入输出
  • Java Maven更换国内源
  • 企业网盘、NAS、移动硬盘、同步盘都是什么意思?
  • 个人博客系统测试文档
  • Python复杂元素排序:从基础到高阶
  • 以太网转换器实现:S7-300通过MPI转以太网连接多类工业设备
  • Java锁机制深度解析:从synchronized到StampedLock
  • Linux网络基础(一)
  • 嵌入式开发学习———Linux环境下网络编程学习(二)
  • 开始回溯的学习
  • OpenSCA开源社区每日安全漏洞及投毒情报资讯|14th Aug. , 2025
  • hex文件结构速查
  • Flutter 以模块化方案 适配 HarmonyOS 的实现方法