Heroku环境下如何启动PHP服务器文件?
在Heroku上运行Ratchet WebSocket服务的解决方案
创建Procfile定义启动进程
在项目根目录新建无后缀的Procfile文件,写入以下内容:worker: php bin/server.phpHeroku通过该文件识别需启动的后台worker进程,Ratchet服务属于非Web类worker进程,不能用默认web进程配置。
启动worker进程
代码部署到Heroku后,执行命令开启worker实例:heroku ps:scale worker=1默认情况下Heroku仅启动web进程,必须手动指定启动worker进程才能运行WebSocket服务。
修正端口配置
Heroku使用动态分配的端口,不能在代码中硬编码端口。在bin/server.php中读取环境变量替换硬编码端口:$port = getenv('PORT') ?: 8080; $server = IoServer::factory( new HttpServer(new WsServer(new YourWebSocketHandler())), $port );验证运行状态
检查进程是否正常运行:heroku ps若进程异常,通过日志排查问题:
heroku logs --tail
内容的提问来源于stack exchange,提问作者NoobSailboat
相关产品推荐
相关产品推荐

