根据服务器配置自动优化php和mysql


server_hardening.zip
根据碰到的实际情况,让gpt写了一份根据服务器配置和环境自动优化的脚本

功能概览

1)自动优化(安全 + PHP + MySQL)

执行后脚本会一次性完成以下几类优化:

安全增强

  • 关闭 UFW / firewalld 的过度日志输出,降低 journalctl 写入压力。
  • 添加基础 iptables 防护规则,限制 SYN / UDP flood 等简单攻击流量。
  • 安装并启用 fail2ban,开启常用的 SSH / Nginx / Apache 防爆破规则。

PHP-FPM 自动优化

  • 自动检测所有 PHP-FPM 版本(同时支持系统原生、宝塔、aaPanel 安装路径)。
  • 根据服务器 CPU 核数与内存大小,自动计算合适的 pm.max_children
  • 将 PHP-FPM 的进程管理模式调整为 pm = ondemand,并设置空闲超时(默认 10s)。
  • 在修改 www.conf / php-fpm.conf 之前自动备份原配置,方便回滚。

MySQL / MariaDB 自动优化

  • 智能识别 MySQL / MariaDB 配置路径,兼容系统原生与宝塔 / aaPanel 环境。
  • 写入一组低内存友好的调优参数,包括:
    • innodb_buffer_pool_size
    • innodb_log_buffer_size
    • max_connections
    • table_open_cache
    • innodb_buffer_pool_instances
    • 禁用 query_cachequery_cache_size / query_cache_type
  • 在使用 conf.d 的系统中,单独生成 zz-autotune.cnf;否则在主配置文件中插入带标记的配置块。
  • 自动重启 MySQL / MariaDB 服务使配置生效。

2)恢复默认(回滚)

回滚功能会尽量撤销由本脚本带来的所有变更,不影响你原先的站点环境和面板。

恢复安全相关设置

  • UFW / firewalld 日志行为恢复为更常规的默认设置。
  • 删除脚本添加的 SYN / UDP 相关 iptables 防护规则,并保存规则。
  • 停用 fail2ban 服务(不卸载软件包,以避免依赖问题或与面板冲突)。

恢复 PHP-FPM 配置

  • 扫描所有 PHP-FPM 配置文件(包含系统原生路径与 /www/server/php/ 下的宝塔 / aaPanel 安装)。
  • 自动从 /root/server_hardening_backups/ 中匹配对应备份文件,并恢复到原路径。
  • 按配置来源重启对应 PHP-FPM 服务(例如 php8.2-fpmphp-fpm-82php-fpm 等)。

恢复 MySQL / MariaDB 配置

  • 优先尝试从备份中还原 MySQL / MariaDB 配置文件。
  • 若使用独立 zz-autotune.cnf 文件,则删除该文件。
  • 若是在主配置文件中插入了自动调优块,则只清理带有 # BEGIN server_hardening_autotune / # END server_hardening_autotune 标记的片段。
  • 重启 MySQL / MariaDB 服务,使回滚后的配置生效。

0)退出脚本

直接退出,不进行任何改动。

脚本

curl -fsSL https://www.185858.xyz/script/server_hardening.sh -o server_hardening.sh
chmod +x server_hardening.sh
./server_hardening.sh

请勿直接在生产环境下测试,本人概不负责

声明:Windows 10 专业版|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 根据服务器配置自动优化php和mysql


Carpe Diem and Do what I like