gateway数据库问题

cjwjy007

程序是用聊天室的代码修改的,数据库使用mysql,配置与手册上相似(在config中使用DB类)。
在连接到gateway的时候,如果客户端连接使用ws = new WebSocket("ws://127.0.0.1:7272");并在本地开启gateway服务,则可以正常操作数据库。
但是同样的代码拷贝到阿里云ESC上,并在上面开启gateway,客户端连接改成ws = new WebSocket("ws://阿里云域名:7272");测试后发现可以连接到阿里云的gateway服务(登录与心跳均正常),但是数据库操作全部无效。
除了客户端的代码改成了连接到阿里云的gateway上了,其他代码一句没动,但是数据库就出现问题了,请问这是为什么?另外我不知道该如何进行调试,看不到错误代码。望告知,十分感谢!

6108 5 0
5个回答

walkor

启动的时候不加-d,就是以调试模式启动,可以看到具体的报错。估计是没装pdo_mysql扩展。

另外通过php start.php status也能看到服务统计信息,也能看到是有进程异常退出。

workerman具体调试方法参见手册:http://doc3.workerman.net/debug/base.html

status 命令说明参见手册:http://doc3.workerman.net/advanced/status.html

  • 暂无评论
cjwjy007

感谢walkor的及时回复!
pde_mysql扩展已经安装了。阿里云使用php start.php start会看到下面的错误。但是奇怪的是在本地上运行就不会有这个错误(完全相同的项目文件)请问我是不是要更改什么路径之类的东西?

PHP Fatal error:  Class 'Config\Db' not found in /root/ftp/Google-/www/lib/Workerman/GatewayWorker/Lib/Db.php on line 40

Fatal error: Class 'Config\Db' not found in /root/ftp/Google-/www/lib/Workerman/GatewayWorker/Lib/Db.php on line 40
WORKER EXIT UNEXPECTED E_ERROR Class 'Config\Db' not found in /root/ftp/Google-/www/lib/Workerman/GatewayWorker/Lib/Db.php on line 40
worker exit with status 65280

我的DB配置文件就如手册中说的,放在Applications/Chat/Config/Db.php
Db.php的内容也和手册差不多

<?php
namespace Config;
/**
 * mysql配置
 */
class Db
{
  public static $db1 = array(
    'host'    => '数据库地址',
    'port'    => 3306,
    'user'    => 'root',
    'password' => '密码',
    'dbname'  => 'chat',
    'charset'    => 'utf8',
  );
}
  • 暂无评论
walkor

正常都能加载到的,再检查下文件是否存在、大小写是否正确。可以在Autoloader.php里面打印下加载的文件路径看看加载到哪里去了

  • 暂无评论
edusdt

能加载,无错使用。 检查Server环境 和 Model的安装

  • 暂无评论
独孤一枝梅

楼主解决了吗?我也碰见这个问题,就是找不见这个文件
PHP Fatal error: Class 'Config\Db' not found in E:\work\GatewayWorker\vendor\wo
rkerman\gateway-worker-for-win\src\Lib\Db.php on line 42
-mysql.html for detail

  • 暂无评论
年代过于久远,无法发表回答
🔝