作者 : tanyi 来源 : 我的笔记 浏览 : 507 次 时间 : 2019-08-21 18:02:37
我tp的版本是5.0.24,(在linux服务器上没有这种问题)。
首先建一个workkerman服务器处理类,到时我的备份数据库操作将放在这里面,这只是一个简单的示例文件。
<?php namespace app\worker\controller; use think\worker\Server; class Worker extends Server{ public function onWorkerStart($worker){ echo 'URL:'.request()->url().PHP_EOL; echo 'Module:'.request()->module(); } }
然后新建一个启动文件,server.php,和项目入口文件在同一级目录,即public下面。
<?php define('APP_PATH', __DIR__ . '/../application/'); define('BIND_MODULE','worker/Worker'); // 加载框架引导文件 require __DIR__ . '/../thinkphp/start.php';
正常情况我们打开命令窗口去执行这个server.php,会显示成功,即应该显示为这样
但是今天很坑爹,一直提示这个错误。
从这个错误可以看出程序去访问的不是Worker类,而是Index,但是worker下面压根没有Index类,自然会报错,但是为什么它会去找Index,我前面绑定了是Worker类的,就是这个问题卡了我一个多小时,最后发现是我定义了一个访问首页的路由,是这样。
'/' => 'index/index',
经过调试发现执行脚本的时候确实是走了这个路由,取消这个路由就可以启动成功,但是这个路由我确实需要。所以不能删除。没办法,只有继续想起他办。
最后解决方法是给执行的这个脚本文件任意传一个参数,但是这个参数不能和你设置的路由冲突,因为我截取到传的这个参数在框架里面是该请求的url。但是很奇怪,我传了一个 / 参数过去,程序并没有走我设置的首页路由。但是传其他的字母组合,比如这样:/article ,则会走路由,这样就启动不了,最后启动成功是这样,(我传的斜杠 /)。
所以以后如果遇到这种奇葩问题先在后面随便给个参数,避免跟设置的首页路由冲突导致启动不了,至少可以先排除这样的情况。
上一篇: 关于php ssh2_connect函数设置超时时间【原创】
下一篇: js中无法解析框架自身函数生成url和参数拼接问题【原创】
版权声明:原创文章,转载时请注明原始出处,作者等相关信息。
本文连接:https://ntbk8.cn/d-85.html
文章搜索
热门文章
最新文章
新闻头条
历史上的今天