Skip to content

常见问题解答 (FAQ)

本文档回答 Yuan-ICP 系统用户最常遇到的问题。

🔧 安装与部署

Q: Yuan-ICP 支持哪些操作系统?

A: Yuan-ICP 支持所有主流操作系统:

  • Linux: Ubuntu、CentOS、Debian、Red Hat 等
  • Windows: Windows Server、Windows 10/11
  • macOS: macOS 10.14 及以上版本
  • 容器: Docker、LXC 等容器环境

Q: 系统的最低要求是什么?

A: 最低系统要求:

  • PHP: 7.4 或更高版本
  • 内存: 512MB RAM(推荐 1GB+)
  • 存储: 100MB 可用空间
  • 数据库: SQLite 3.8+ / MySQL 5.7+ / PostgreSQL 9.5+
  • Web服务器: Apache 2.4+ / Nginx 1.18+

Q: 如何选择数据库类型?

A: 数据库选择建议:

  • SQLite: 适合小型部署、测试环境,零配置
  • MySQL: 适合生产环境、高并发场景
  • PostgreSQL: 适合复杂查询、数据完整性要求高的场景

Q: 安装过程中遇到权限问题怎么办?

A: 常见权限问题解决方案:

bash
# 设置目录权限
sudo chown -R www-data:www-data /var/www/yuan-icp
sudo chmod -R 755 /var/www/yuan-icp
sudo chmod -R 777 /var/www/yuan-icp/uploads
sudo chmod -R 777 /var/www/yuan-icp/data

# 检查 SELinux 状态(CentOS/RHEL)
sudo sestatus
sudo setsebool -P httpd_can_network_connect 1

📧 邮件配置

Q: 支持哪些邮件服务商?

A: 支持所有标准 SMTP 服务商:

  • 国内: QQ邮箱、163邮箱、126邮箱、新浪邮箱
  • 国外: Gmail、Outlook、Yahoo、ProtonMail
  • 企业: 自建邮件服务器、Exchange 服务器

Q: 邮件发送失败怎么办?

A: 邮件发送失败排查步骤:

  1. 检查 SMTP 配置参数
  2. 验证邮箱账号和密码
  3. 确认端口和加密方式
  4. 检查网络连接和防火墙
  5. 查看系统错误日志

Q: 如何测试邮件配置?

A: 邮件配置测试方法:

php
<?php
require_once 'includes/functions.php';

$result = send_email(
    'test@example.com',
    '测试邮件',
    '这是一封测试邮件',
    'noreply@example.com'
);

if ($result) {
    echo "邮件发送成功";
} else {
    echo "邮件发送失败";
}
?>

🗄️ 数据库管理

Q: 如何备份数据库?

A: 数据库备份方法:

bash
# SQLite 备份
cp data/database.sqlite backup/database_$(date +%Y%m%d).sqlite

# MySQL 备份
mysqldump -u username -p database_name > backup/database_$(date +%Y%m%d).sql

# PostgreSQL 备份
pg_dump -U username -h hostname database_name > backup/database_$(date +%Y%m%d).sql

Q: 数据库性能优化建议?

A: 性能优化建议:

  1. 添加索引:为常用查询字段添加索引
  2. 查询优化:使用 LIMIT 分页,避免 SELECT *
  3. 连接池:配置数据库连接池
  4. 定期维护:定期清理日志和临时数据

Q: 如何迁移到其他数据库?

A: 数据库迁移步骤:

  1. 备份当前数据库
  2. 安装目标数据库驱动
  3. 修改配置文件
  4. 导入数据
  5. 测试功能完整性

🌐 网站配置

Q: 如何配置 HTTPS?

A: HTTPS 配置步骤:

  1. 获取 SSL 证书(Let's Encrypt 免费)
  2. 配置 Web 服务器
  3. 设置强制 HTTPS 重定向
  4. 更新系统配置中的 URL

Q: 如何设置自定义域名?

A: 域名配置步骤:

  1. 修改 DNS 记录指向服务器
  2. 配置 Web 服务器虚拟主机
  3. 更新系统设置中的网站 URL
  4. 配置 SSL 证书

Q: 如何优化网站性能?

A: 性能优化建议:

  1. 启用缓存:配置系统缓存
  2. 压缩资源:启用 Gzip 压缩
  3. CDN 加速:使用 CDN 加速静态资源
  4. 图片优化:压缩和优化图片

🔐 安全与权限

Q: 如何保护管理员账号?

A: 安全建议:

  1. 使用强密码(字母+数字+特殊字符)
  2. 定期更换密码
  3. 限制登录 IP 地址
  4. 启用双因素认证(如果支持)
  5. 监控登录日志

Q: 如何防止 SQL 注入?

A: 系统已内置防护:

  1. 使用 PDO 预处理语句
  2. 输入验证和过滤
  3. 参数绑定
  4. 错误信息隐藏

Q: 如何配置防火墙?

A: 防火墙配置建议:

bash
# UFW (Ubuntu)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 22/tcp
sudo ufw enable

# firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

📱 主题与界面

Q: 如何自定义主题?

A: 主题自定义步骤:

  1. 复制默认主题到新目录
  2. 修改 CSS 样式文件
  3. 调整 HTML 模板
  4. 更新主题配置文件
  5. 在后台切换主题

Q: 主题不显示怎么办?

A: 主题问题排查:

  1. 检查主题文件完整性
  2. 验证文件权限
  3. 清理系统缓存
  4. 检查主题配置
  5. 查看错误日志

Q: 如何添加自定义 CSS?

A: 添加自定义 CSS 方法:

  1. 在主题目录创建 custom.css
  2. 在模板中引入文件
  3. 使用钩子系统添加样式
  4. 通过插件系统扩展

🔌 插件系统

Q: 如何安装插件?

A: 插件安装方法:

  1. 上传安装:通过后台界面上传 ZIP 文件
  2. 手动安装:将插件目录复制到 plugins/ 目录
  3. Git 安装:克隆插件仓库到 plugins/ 目录

Q: 插件冲突怎么办?

A: 插件冲突解决:

  1. 禁用所有插件
  2. 逐个启用插件测试
  3. 检查插件依赖关系
  4. 更新插件到最新版本
  5. 联系插件开发者

Q: 如何开发自定义插件?

A: 插件开发步骤:

  1. 创建插件目录结构
  2. 编写 plugin.php 主文件
  3. 注册钩子和功能
  4. 测试插件功能
  5. 打包分发

📊 数据管理

Q: 如何批量导入号码?

A: 批量导入方法:

  1. 准备号码列表文件(每行一个号码)
  2. 在后台"号码池设置"中粘贴
  3. 选择是否为靓号
  4. 点击"添加到号码池"

Q: 如何导出备案数据?

A: 数据导出方法:

  1. 在后台"备案管理"页面
  2. 使用筛选和搜索功能
  3. 选择需要导出的数据
  4. 点击"导出"按钮

Q: 如何清理过期数据?

A: 数据清理建议:

  1. 定期清理日志文件
  2. 删除过期的临时文件
  3. 清理未使用的上传文件
  4. 优化数据库表结构

🚀 性能优化

Q: 系统响应慢怎么办?

A: 性能优化步骤:

  1. 检查数据库查询性能
  2. 优化 PHP 配置
  3. 启用 OPcache
  4. 使用 Redis 缓存
  5. 配置 CDN 加速

Q: 如何监控系统性能?

A: 性能监控方法:

  1. 查看系统日志
  2. 监控数据库性能
  3. 使用系统监控工具
  4. 分析访问日志
  5. 定期性能测试

Q: 高并发场景如何优化?

A: 高并发优化建议:

  1. 使用负载均衡
  2. 配置数据库读写分离
  3. 启用缓存系统
  4. 优化代码逻辑
  5. 使用队列处理任务

🔄 升级与维护

Q: 如何升级系统?

A: 系统升级步骤:

  1. 备份当前系统和数据
  2. 下载新版本源码
  3. 替换系统文件
  4. 运行升级脚本
  5. 测试功能完整性

Q: 升级失败怎么办?

A: 升级失败处理:

  1. 恢复备份数据
  2. 检查错误日志
  3. 验证系统要求
  4. 手动修复问题
  5. 重新执行升级

Q: 如何回滚到旧版本?

A: 版本回滚方法:

  1. 停止 Web 服务
  2. 恢复旧版本文件
  3. 恢复数据库备份
  4. 重启 Web 服务
  5. 验证系统功能

📞 技术支持

Q: 如何获取技术支持?

A: 技术支持渠道:

  1. GitHub Issues: 报告 Bug 和功能请求
  2. 社区论坛: 用户交流和问题解答
  3. 官方文档: 详细的使用说明
  4. 邮件支持: 重要问题直接联系

Q: 如何贡献代码?

A: 代码贡献流程:

  1. Fork 项目仓库
  2. 创建功能分支
  3. 编写代码和测试
  4. 提交 Pull Request
  5. 等待代码审查

Q: 如何报告 Bug?

A: Bug 报告要求:

  1. 详细描述问题现象
  2. 提供复现步骤
  3. 包含系统环境信息
  4. 附加错误日志
  5. 说明期望行为

🎯 最佳实践

Q: 生产环境部署建议?

A: 生产环境建议:

  1. 使用 HTTPS 加密
  2. 配置防火墙和入侵检测
  3. 定期备份数据
  4. 监控系统性能
  5. 制定应急预案

Q: 如何制定备份策略?

A: 备份策略建议:

  1. 全量备份: 每周一次完整备份
  2. 增量备份: 每日增量备份
  3. 异地备份: 重要数据异地存储
  4. 定期测试: 验证备份可恢复性

Q: 安全最佳实践?

A: 安全实践建议:

  1. 定期更新系统和依赖
  2. 使用强密码策略
  3. 限制管理员访问
  4. 监控异常活动
  5. 定期安全审计

如果您的问题未在本 FAQ 中找到答案,请:

  1. 搜索文档: 使用文档搜索功能
  2. 查看日志: 检查系统错误日志
  3. 社区求助: 在 GitHub Issues 中提问
  4. 联系支持: 发送邮件获取帮助

我们会在收到问题后及时更新 FAQ 内容,帮助更多用户解决问题。

基于 MIT 协议发布