跳转到正文

普通安装 ​

适用于直接管理 Linux、Nginx 和 MySQL 的部署。以下以 Ubuntu 24.04、源码目录 /srv/popoim、域名 example.com 为例。

1. 安装运行环境 ​

bash
sudo apt update
sudo apt install -y nginx mysql-server composer ffmpeg \
  php8.3-cli php8.3-mysql php8.3-mbstring php8.3-gd \
  php8.3-xml php8.3-curl php8.3-zip

使用其他发行版时安装同等版本和扩展。确认命令行实际使用的 PHP:

bash
php -v
php -m
ffmpeg -version
ffprobe -version

pcntl、posix、sockets 在这里的 Ubuntu CLI 软件包中可用。若使用自定义 PHP,需自行启用这些扩展。泡泡 IM 由常驻 PHP CLI 进程运行,不通过 PHP-FPM 执行业务请求。

2. 配置 MySQL ​

把源码中的 deploy/mysql-search.cnf 放入 MySQL 配置目录:

bash
sudo cp /srv/popoim/deploy/mysql-search.cnf /etc/mysql/mysql.conf.d/popoim.cnf
sudo systemctl restart mysql
sudo mysql

在 MySQL 控制台创建专用数据库和用户,将示例密码换成随机强密码:

sql
CREATE DATABASE popoim CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'popoim'@'localhost' IDENTIFIED BY 'replace-with-a-long-random-password';
GRANT ALL PRIVILEGES ON popoim.* TO 'popoim'@'localhost';
SHOW VARIABLES LIKE 'ngram_token_size';
EXIT;

检查输出中的 ngram_token_size 为 1。配置修改后必须重启 MySQL,单独执行 SQL 不能改变这个启动参数。

3. 放置源码并安装依赖 ​

将服务端源码内容放入 /srv/popoim,该目录下应直接包含 start.php、composer.json、public/:

bash
cd /srv/popoim
composer install --no-dev --prefer-dist --no-interaction
mkdir -p runtime public/uploads
sudo chown -R www-data:www-data runtime public/uploads config plugin/sdk/config

由部署用户执行 Composer,不用 root 下载依赖。安装向导需要写入数据库与 SDK 配置;运行期间需要写入 runtime 与资源目录。

4. 启动常驻服务 ​

源码提供的 systemd 配置使用 /usr/bin/php、www-data 和 /srv/popoim。路径不同时先修改 deploy/popoim.service:

bash
sudo cp deploy/popoim.service /etc/systemd/system/popoim.service
sudo systemctl daemon-reload
sudo systemctl enable --now popoim
sudo systemctl status popoim --no-pager

不要再同时运行一份 php start.php start -d。同一套程序只由一个进程管理器维护。

5. 配置站点 ​

修改 deploy/nginx.conf 的域名和根目录,再安装配置:

bash
sudo cp deploy/nginx.conf /etc/nginx/sites-available/popoim
sudo ln -s /etc/nginx/sites-available/popoim /etc/nginx/sites-enabled/popoim
sudo nginx -t
sudo systemctl reload nginx

配置同时代理 HTTP 到 127.0.0.1:8787、/ws 到 127.0.0.1:6060,保留公开资源访问,并阻止 PHP、隐藏文件与私有媒体原文件被直接读取。完整配置说明见 Nginx 与 HTTPS。

6. 完成向导 ​

将域名解析到服务器,访问 http://example.com/install,按照完成安装填写数据库与管理员。正式上线前为站点配置 HTTPS,并确认后台 WebSocket 公网地址使用 wss://example.com/ws。