🎥 OmeTV Clone 安装教程

宝塔面板 Windows 版 · 完整部署指南

📁 项目路径: /storage/emulated/0/ometv
1 建站
2 数据库
3 配置
4 依赖
5 启动
1

创建网站

⏱ 约2分钟

宝塔面板 →「网站」→「添加站点

域名你的域名或IP(本地测试用 127.0.0.1
根目录/storage/emulated/0/ometv
PHP版本7.4 / 8.0 / 8.1 / 8.2 均可
数据库先选「不创建」,后面手动建
域名:your-domain.com
根目录:/storage/emulated/0/ometv
PHP:PHP-74 ✓
⚡ 务必勾选 HTTPS 证书(Let's Encrypt),WebRTC 需要 HTTPS
⚠️
WebRTC 必须 HTTPS!
浏览器要求摄像头权限只能在 localhost 或 HTTPS 下使用。仅本地测试可用 http://127.0.0.1
2

创建数据库 & 导入表结构

⏱ 约3分钟

宝塔面板 →「数据库」→「添加数据库

数据库名ometv
用户名ometv
密码自定义(如 OmeTV@2024)← 记下来
字符集utf8mb4

初始化表结构(二选一):

方法A — 浏览器访问:

浏览器打开:https://你的域名/config/init_db.php

看到 ✅ 数据库表创建成功! 即可。

🔒
完成后删除 config/init_db.php,防止被他人访问!

方法B — 命令行:

cmd
cd /d D:\BtSoft\wwwroot\ometv
php config\init_db.php
3

修改配置文件

⏱ 约2分钟

编辑 📄 config/database.php

php
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'ometv');
define('DB_USER', 'ometv');
define('DB_PASS', '你设置的密码');   // ← 改为第2步的密码
define('SITE_URL', 'https://你的域名.com');

再编辑 📄 js/app.js,修改第8行 WebSocket 地址:

javascript
WS_URL: 'wss://你的域名:8282',  // ← 改为你的域名
💡
两种写法:① wss://域名:8282(需放行端口)② wss://域名/ws/(Nginx代理,推荐)
4

安装 PHP 依赖 + 放行端口

⏱ 约5分钟

安装 Composer 依赖:

宝塔面板 → 软件商店 → 安装「Composer」→ 然后打开命令行:

cmd
:: 进入项目目录
cd /d D:\BtSoft\wwwroot\ometv
:: 安装依赖
composer install

看到 Generating autoload files 即成功,此时项目下会出现 vendor/ 文件夹。

放行端口 8282:

宝塔面板安全 → 防火墙 → 添加 8282 TCP
Windows 防火墙控制面板 → 防火墙 → 高级设置 → 入站规则 → 端口 8282 TCP
云服务器安全组 → 添加入方向规则 → 8282 TCP
💡
如果使用 Nginx 反向代理(见第6步),则无需放行 8282 端口。
5

启动 WebSocket 服务器

⏱ 约2分钟

前台启动(调试用):

cmd
cd /d D:\BtSoft\wwwroot\ometv
php server.php start

成功输出:

----------------------- WORKERMAN -----------------------
Workerman version:4.1.x          PHP version:7.4.x
------------------------ WORKERS ------------------------
worker            listen                    processes status
OmeTV-WebSocket   websocket://0.0.0.0:8282     2      [OK]

看到 [OK] 即启动成功。Ctrl+C 停止。

后台运行:

cmd
php server.php start -d    // 启动
php server.php status      // 查看状态
php server.php stop        // 停止
php server.php restart     // 重启
⚠️
Windows 下 -d 可能不生效,推荐用 nssm 注册为 Windows 服务。
6

Nginx 反向代理(可选但推荐)

⏱ 约3分钟

通过 Nginx 代理 WebSocket,复用 443 端口,无需额外开放 8282

宝塔 → 网站 → 你的站点 →「配置文件」→ 在 server { } 中添加:

nginx
# WebSocket 代理
location /ws/ {
    proxy_pass http://127.0.0.1:8282;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_read_timeout 86400s;
}

然后 js/app.js 中改为:WS_URL: 'wss://你的域名/ws/'

最后 重载 Nginx:宝塔首页 → Nginx → 重载配置。

验证测试

① 网页打开 https://你的域名/,看到毛玻璃欢迎页
② API访问 /api/index.php?action=online_count,返回 JSON
③ WebSocketF12 → Network → WS,点击匹配应有连接
④ 视频两个浏览器窗口同时打开,点击匹配,能互见视频
🎉
全部通过即部署成功!
?

常见问题排查

摄像头没有画面?

① 检查是否使用 HTTPS(非 localhost 必须)
② 浏览器是否允许摄像头权限
③ 摄像头是否被其他应用占用

匹配一直转圈连不上?

php server.php status 确认 WS 服务运行中
② 检查防火墙是否放行 8282
③ F12 → Console 查看 WebSocket 连接错误
④ 确认 js/app.js 中 WS_URL 正确

匹配成功但看不到对方视频?

① 双方 NAT 可能对称型,需 TURN 服务器中转
② 检查 peerConnection 的 ICE 状态(F12 → Console)
③ 生产环境建议部署 coturn TURN 服务器

数据库连接失败?

① 确认 MySQL 服务已启动
② 检查 config/database.php 中密码是否正确
③ 宝塔面板中检查数据库用户权限

composer 命令找不到?

① 宝塔软件商店安装 Composer
② 或用完整路径:D:\BtSoft\composer\composer.phar install

📐

技术架构速览

前端原生 HTML5 + CSS3(毛玻璃) + JavaScript(WebRTC API)
信令服务PHP Workerman WebSocket(端口 8282)
视频传输WebRTC P2P(浏览器直连,不经过服务器)
NAT 穿透Google STUN(开发用)/ 自建 TURN(生产用)
数据库MySQL(用户、匹配记录、举报、消息)
运行环境宝塔 Windows 版 + Nginx + PHP 7.4+