外观
宝塔安装
适用于已经使用宝塔管理服务器的环境。泡泡 IM 运行在 PHP CLI 常驻进程中,站点通过 Nginx 代理到该进程。
1. 检查环境
在宝塔“软件商店”中准备 Nginx、MySQL 8.0 或以上、PHP 8.3。PHP 8.1 及以上也可运行,完整要求见选择安装方式。
PHP 设置中安装或启用 pdo_mysql、mbstring、GD 的 JPEG / WebP、pcntl、posix、sockets。这里要检查实际运行的 CLI 配置,不能只看 PHP-FPM 的扩展列表。
在终端确认:
bash
/www/server/php/83/bin/php -v
/www/server/php/83/bin/php -mWorkerman 需要进程与信号函数。若在 PHP 禁用函数中存在 pcntl_fork、pcntl_signal、pcntl_wait、pcntl_alarm、posix_getpid、posix_kill、stream_socket_server 等,应从运行泡泡 IM 的 CLI 配置中移除。通话和媒体相关功能也需要 FFmpeg / FFprobe。
2. 创建数据库
在“数据库”中创建 popoim,字符集使用 utf8mb4,记录专用用户名和随机密码。
进入 MySQL 配置,在 [mysqld] 段增加:
ini
ngram_token_size=1
innodb_ft_enable_stopword=OFF保存并重启 MySQL。安装向导检查 ngram_token_size,不满足时不能继续。
3. 创建站点并上传源码
在“网站”中添加 example.com,源码目录使用 /www/wwwroot/example.com。不创建 FTP;使用已有数据库。PHP 版本可选“纯静态”,因为业务请求由独立的 CLI 进程处理。

将服务端源码内容上传到站点目录,保证 start.php 与 public 直接位于其中。打开站点“网站目录”,将运行目录设置为 /public。

在终端安装依赖,确保 Composer 使用相同的 PHP 版本:
bash
cd /www/wwwroot/example.com
export PATH=/www/server/php/83/bin:$PATH
composer install --no-dev --prefer-dist --no-interaction
mkdir -p runtime public/uploads
chown -R www:www runtime public/uploads config plugin/sdk/config若面板环境没有 Composer,先配置 Composer 2 并确认 composer --version。安装生成的配置、运行目录和资源目录需要让项目运行用户 www 可写。
4. 管理常驻进程
使用宝塔的项目管理或进程守护功能创建一个进程,填写:
| 项目 | 值 |
|---|---|
| 名称 | popoim |
| 工作目录 | /www/wwwroot/example.com |
| 启动命令 | /www/server/php/83/bin/php start.php start |
| 运行用户 | www |
| 自动重启 | 开启 |
启动命令保持前台运行,不加 -d;不要同时用另一个守护器启动第二份。没有安装进程守护插件时,也可按普通安装使用 systemd,将 PHP、目录和运行用户替换为上述宝塔路径。
5. 设置反向代理
打开站点“配置文件”,保留面板管理的日志与证书设置,删除把业务交给 PHP-FPM 的配置,使用如下路由。已有同名 location 先替换,不叠加两份:
nginx
client_max_body_size 128m;
location = /ws {
proxy_pass http://127.0.0.1:6060;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 3600s;
proxy_buffering off;
}
location ~* \.php(?:/|$) { return 404; }
location ~ "^/uploads/resources/[0-9]{4}/[0-9]{2}/[a-f0-9]{32}[.]bin$" { return 404; }
location / { try_files $uri @popoim; }
location @popoim {
proxy_pass http://127.0.0.1:8787;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection "";
}保留站点对隐藏文件的拒绝规则。泡泡 IM 不需要 ThinkPHP 等框架的伪静态规则,选择“无”,由上面的 try_files 转给服务端。

6. 完成安装与 HTTPS
在宝塔“SSL”中为实际域名配置有效证书,验证配置后重载 Nginx。访问 /install,按完成安装填写数据库和管理员。
安装后检查 wss://example.com/ws。公网只需 HTTP / HTTPS;PHP HTTP 端口和 Gateway / Register 内部端口不需要对外开放。
