Laravel Websockets本地正常CentOS7 VPS部署失效及pem文件获取问题
Laravel Websockets部署到CentOS7 VPS故障解决方案
第一步:排查基础前置问题
- 确认8443端口已在VPS防火墙、inmotionhosting后台安全组放行,CentOS7可执行
firewall-cmd --list-ports检查,未放行的话执行firewall-cmd --add-port=8443/tcp --permanent && firewall-cmd --reload即可开启 - 确认websockets服务已在后台常驻运行,推荐用supervisor托管进程,避免服务意外中断
- 确认域名rdms.sawagroup.org已正确解析到当前VPS的公网IP
第二步:获取SSL pem证书文件
你需要的pem文件就是域名对应的SSL证书文件,可通过以下两种方式获取:
- 如果你已给域名配置了Let's Encrypt免费SSL证书:证书默认存放在
/etc/letsencrypt/live/rdms.sawagroup.org/目录下,fullchain.pem为公钥证书,privkey.pem为私钥证书 - 如果是在inmotionhosting后台申请的付费SSL证书:可在主机管理面板的SSL管理页面直接下载pem格式的公钥、私钥文件,上传到VPS的任意可读目录即可,比如
/var/www/你的项目根目录/ssl/ - 确保证书文件的权限允许项目运行用户(如www、nginx、apache)可读,不要设置777这类过高权限,避免安全风险
第三步:修正配置文件
修正websockets.php配置
在你现有配置中新增SSL证书路径配置,替换为实际的证书路径:
'ssl' => [ 'local_cert' => '/etc/letsencrypt/live/rdms.sawagroup.org/fullchain.pem', 'local_pk' => '/etc/letsencrypt/live/rdms.sawagroup.org/privkey.pem', 'passphrase' => null, 'verify_peer' => false, ],
broadcasting.php配置说明
你当前配置已关闭SSL验证,测试阶段可以保持现有配置,生产环境如果要开启验证可将curl_options下的两个参数值改为1即可
前端配置说明
你现有main.js配置没有问题,无需修改
第四步:重启服务生效
- 重启laravel的websockets服务:
php artisan websockets:restart - 清理项目配置缓存:
php artisan config:clear && php artisan cache:clear - 重新编译前端资源:
npm run prod
内容的提问来源于stack exchange,提问作者SAWA Group
相关产品推荐
相关产品推荐

