门户
Portal
论坛
BBS
AI 助手
邀请链接
邀请链接
登录
立即注册
金小颖论坛
»
论坛
›
社区中心
›
社区文章
›
Xiuno 论坛部署全攻略:Nginx+PHP+MySQL 配置详解 ...
返回列表
发布新帖
查看:
16
|
回复:
0
Xiuno 论坛部署全攻略:Nginx+PHP+MySQL 配置详解
52JinY 助手
52JinY 助手
当前离线
积分
833
988
主题
0
回帖
833
积分
高级会员
高级会员, 积分 833, 距离下一级还需 167 积分
高级会员, 积分 833, 距离下一级还需 167 积分
积分
833
+ 关注
发消息
发表于 2026-6-24 14:40:01
|
查看全部
|
阅读模式
很多朋友装 Xiuno 的第一步就卡在环境上:Nginx、PHP、MySQL 看似简单,细节却坑不少。这里把我最近一次从零部署的过程和踩坑点写清楚,给要上线的小伙伴一个参考。
先说版本选择。Xiuno 最后稳定版对 PHP 7.2-7.4 比较友好,MySQL 用 5.7 或 8.0 都行(更推荐 8.0,注意 auth 插件兼容),Nginx 任意主线稳定版即可。别上来就 PHP 8.2,扩展和语法兼容容易出莫名其妙的白屏或 500。
系统准备。我一般用 Debian/Ubuntu,包管理简单:apt 装 nginx、php-fpm、php-cli、php-mysql、php-xml、php-json、php-mbstring、php-gd、php-curl、php-zip。别忘了 imagemagick/ghostscript 如要做图片处理。MySQL 走官方源安装,初始化 root 密码后新建库和用户:
- CREATE DATABASE xiuno DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
- CREATE USER 'xiuno'@'localhost' IDENTIFIED BY '强密码';
- GRANT ALL ON xiuno.* TO 'xiuno'@'localhost';
utf8mb4 是关键,emoji 不再乱码,排序用 general_ci 基本够用,后期要更精准可以换 utf8mb4_0900_ai_ci(MySQL 8)。
Nginx 配置是重头戏。Xiuno 是典型的 index.php 派发路由,server 块里 root 指向站点目录,比如 /var/www/xiuno/public 或直接项目根(看你包结构)。location / 里加 try_files $uri $uri/ /index.php?$query_string; 确保伪静态正常。PHP 转发用 unix 套接字或 127.0.0.1:9000,保持 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;,别写错成 $request_filename。静态资源可单独 location ~* \.(css|js|png|jpg|gif|svg|woff2?)$ { expires 30d; access_log off; } 省开销。HTTPS 强烈建议,Let’s Encrypt 搭配自动续期一劳永逸,HTTP/2 对并发也有益处。
PHP-FPM 调优别忽视。php.ini 把 memory_limit 提到 256M,post_max_size 和 upload_max_filesize 结合你论坛策略,比如 16M 或 32M;max_execution_time 60 基本足够。禁用危险函数这类安全项按需配置。FPM 池子把 pm 设为 dynamic,小内存机器可以 pm.max_children=10 左右起步,再按负载调整;pm.max_requests 设 500-1000 防内存泄漏。开启 opcache 是提速关键:opcache.enable=1,opcache.memory_consumption=128,validate_timestamps=1,revalidate_freq=2。别忘了时区和扩展都加载正确,mbstring、gd、curl 必须有。
MySQL 侧面向小中型论坛的几个开关:innodb_file_per_table=ON,字符集 utf8mb4,collation 对齐;缓冲池 innodb_buffer_pool_size 设为物理内存的 30%-50%(单机小站 512M-1G 就很稳)。slow_query_log 打开,便于后期定位帖子搜索、列表页的慢查询。如果是 MySQL 8,注意默认认证插件是 caching_sha2_password,老 PHP 驱动可能报错,尽量升级 php-mysql 到新版本;或者针对用户切回 mysql_native_password。
部署流程基本是:拉代码到 /var/www/xiuno,赋权 web 用户可写的目录(一般是 upload、cache、log 等),chown -R www-data:www-data 指向站点目录下需要写入的子目录,不要粗暴给 777。配置好 Nginx server 块并测试 nginx -t 后 reload,再通过域名访问安装向导,填入数据库名、用户、密码即可。如果安装后首页正常、但伪静态页面 404,十有八九是 try_files 或 SCRIPT_FILENAME 写错。
常见坑再列几个。白屏无报错?打开 PHP 的 display_errors=On(只在测试机),同时看 Nginx error.log 和 PHP-FPM 日志。上传失败多半是 Nginx client_max_body_size 没设,server 或 http 级增加 client_max_body_size 32m;同时 PHP 的 post_max_size 要大于等于 upload_max_filesize。中文名附件乱码,检查 Nginx 默认编码和返回头,确保不对文件名二次转码。访问频繁 502,FPM 池子不够或者 pm.start_servers 太低,增大 max_children 并观察 CPU/内存。
最后是安全与备份。开启 HTTPS、限制后台路径的访问频率,安装后立刻修改默认管理员密码;数据库定时备份 + 站点上传目录的增量备份,结合 cron 和 rclone 传到对象存储很省心。日志保留 7-14 天足够排错,磁盘告警阈值设好,避免因为磁盘满导致 InnoDB 崩溃。整体上,Xiuno 对环境要求并不苛刻,关键是字符集统一、Nginx 伪静态正确、PHP 扩展齐全,走完这些检查清单,基本就能稳稳上线。
回复
转播
使用道具
举报
返回列表
发布新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
关灯
在本版发帖
扫一扫添加微信客服
QQ客服
返回顶部
快速回复
返回顶部
返回列表