运行环境
2025年3月31日大约 5 分钟
运行环境
重要说明
本文档详细说明系统运行所需的硬件与软件环境要求。正确的环境配置是确保系统高效稳定运行的前提,请务必认真阅读并满足相关要求。
1. 服务器硬件要求
系统对服务器硬件配置的要求如下:
| 配置项 | 最低要求 | 推荐配置 | 说明 |
|---|---|---|---|
| 操作系统 | CentOS 7.x / Ubuntu 18.04+ | CentOS 8.x / Ubuntu 20.04+ | 推荐使用最新稳定版本 |
| CPU | 2核 | 4核以上 | 影响系统并发处理能力 |
| 内存 | 4GB | 8GB以上 | 较大内存可提高缓存效率 |
| 硬盘 | 100GB | 200GB以上 SSD | SSD存储提升数据库性能 |
| IOPS | 3000 | 5000以上 | 影响数据读写速度 |
| 带宽 | 5Mbps | 10Mbps以上 | 影响系统访问速度 |
注意事项
- 生产环境强烈建议使用SSD存储,可显著提升系统性能
- 内存配置会直接影响缓存效率和系统并发能力
- 带宽需求随并发用户数增加而提高
2. 服务器管理
2.1 宝塔面板
推荐使用宝塔面板进行服务器环境管理:
安全配置:
- 安装后立即修改默认密码和访问端口
- 建议开启面板SSL和安全入口
- 设置面板访问IP白名单
性能优化:
- 定期清理系统日志和临时文件
- 监控系统资源使用情况
3. 软件环境要求
3.1 基础软件版本
系统依赖以下软件环境,请确保版本满足要求:
| 软件名称 | 最低版本 | 推荐版本 | 重要性 |
|---|---|---|---|
| Node.js | 16.x | 18.x LTS | 必需 |
| Nginx | 1.10 | 1.22 | 必需 |
| PHP | 8.1 | 8.2 | 必需 |
| MySQL | 5.7 | 8.0 | 必需 |
| Redis | 6.0 | 6.2 | 必需 |
3.2 PHP配置
3.2.1 必要扩展
PHP环境需安装以下扩展:
| 扩展名称 | 功能描述 | 必要性 |
|---|---|---|
| fileinfo | 文件MIME类型检测 | 必需 |
| redis | Redis缓存支持 | 必需 |
| sg11 | 数据加密 | 必需 |
| zstd | 数据压缩 | 必需 |
3.2.2 PHP函数配置
需要从php.ini中删除的禁用函数:
proc_open
pcntl_signal
pcntl_signal_dispatch
pcntl_fork
pcntl_wait
pcntl_alarm
exec安全提示
解除函数禁用可能带来安全风险,请确保只在可信环境中执行,并实施适当的安全防护措施。
3.2.3 PHP-FPM推荐配置
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| max_children | 50 | 最大子进程数 |
| max_requests | 1000 | 每个子进程处理的最大请求数 |
| request_terminate_timeout | 300 | 请求超时时间(秒) |
| memory_limit | 256M | 内存限制 |
3.3 MySQL配置
MySQL数据库推荐配置:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| innodb_buffer_pool_size | 系统内存的50% | 缓冲池大小 |
| max_connections | 500 | 最大连接数 |
| character_set_server | utf8mb4 | 字符集 |
| collation_server | utf8mb4_unicode_ci | 排序规则 |
| innodb_flush_log_at_trx_commit | 1 | 事务安全性设置 |
3.4 Redis配置
Redis缓存服务推荐配置:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| maxmemory-policy | allkeys-lru | 内存淘汰策略 |
| appendonly | yes | 持久化设置 |
| appendfsync | everysec | 同步频率 |
| protected-mode | yes | 保护模式 |
性能提示
Redis作为系统缓存核心,正确配置可显著提升系统性能。建议在专用服务器或容器中运行Redis服务。
3.5 Nginx配置
Nginx Web服务器推荐配置:
worker_processes auto;
worker_connections 1024;
client_max_body_size 50m;
# 开启gzip压缩
gzip on;
gzip_min_length 1k;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript;4. 进程管理
4.1 Supervisor配置
推荐使用Supervisor管理系统进程,确保服务稳定运行。
4.1.1 消息队列监听配置
[program:queue]
process_name=%(program_name)s_%(process_num)02d
command=php think queue:listen --queue
autostart=true
autorestart=true
user=www
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/supervisor/queue.log4.1.2 WebSocket服务配置
[program:gateway]
process_name=%(program_name)s_%(process_num)02d
command=php think gateway start
autostart=true
autorestart=true
user=www
numprocs=1
redirect_stderr=true
stdout_logfile=/var/log/supervisor/gateway.log5. 网络要求
5.1 基本要求
- 固定公网IP
- 稳定的网络连接
5.2 端口配置
| 端口 | 服务 | 必要性 | 访问控制建议 |
|---|---|---|---|
| 80 | HTTP服务 | 必需 | 允许所有IP访问 |
| 443 | HTTPS服务 | 必需 | 允许所有IP访问 |
| 2348 | WebSocket服务 | 必需 | 允许所有IP访问 |
| 3306 | MySQL服务 | 开发环境 | 限制特定IP访问 |
| 6379 | Redis服务 | 开发环境 | 限制特定IP访问 |
安全警告
MySQL和Redis端口(3306, 6379)不应在生产环境中暴露于公网,请务必设置访问限制!
6. 开发环境要求
6.1 版本控制
- Git 2.x 及以上
- 推荐图形化工具:
- SourceTree
- GitKraken
- GitHub Desktop
6.2 开发工具推荐
6.2.1 IDE
| IDE | 类型 | 必装插件/配置 |
|---|---|---|
| VSCode | 免费 | PHP Intelephense, ESLint, Prettier |
| PHPStorm | 付费 | 自带完整PHP开发环境 |
6.2.2 API测试工具
- Postman
- Apifox
- Insomnia
7. 浏览器兼容性
系统支持以下浏览器版本:
| 浏览器 | 最低版本 | 推荐版本 |
|---|---|---|
| Chrome | 80+ | 最新版 |
| Firefox | 72+ | 最新版 |
| Safari | 13+ | 最新版 |
| Edge | 80+ | 最新版 |
用户体验提示
推荐所有用户使用Chrome最新版浏览器访问系统,可获得最佳用户体验和性能表现。
8. 安全配置建议
8.1 服务器安全
- 启用防火墙,仅开放必要端口
- 禁用root远程登录
- 使用SSH密钥登录,禁用密码登录
- 定期更新系统安全补丁
- 安装安全监控软件
8.2 应用安全
- 配置SSL证书,强制HTTPS访问
- 启用CSP(Content Security Policy)
- 设置合理的Cookie安全策略
- 定期更新应用程序
8.3 数据安全
| 安全措施 | 建议频率 | 说明 |
|---|---|---|
| 数据备份 | 每日备份 | 包括数据库和上传文件 |
| 密码策略 | 90天更换一次 | 强制使用强密码 |
| 敏感信息 | 全程加密 | 加密存储所有敏感信息 |
| 密钥更新 | 每季度更新 | 定期更新各类密钥和Token |
数据安全警告
数据是系统最宝贵的资产,请务必实施完善的备份策略并定期测试备份恢复流程!
9. 后续步骤
完成环境准备后,请参考以下文档继续进行系统部署:
贡献者
Trenton
