Thinkphp 报错 无法加载控制器 xxx 以及nginx报错 504
在nginx上面挑食thinkphp时, 这两个错误交替混杂出现, 解决了好久, 最后发现其实是小问题, 记在这里. 期望能够帮到同样遇到这个问题的同学.
thinkphp的报错: 无法加载控制器: xxx
如果url: xx.xxx.com/tbm/index.html
-
如果是上面的URL, 那么__必须__设置url模式为2.
-
controller要求首字母__必须__大写,
- 比如TbmController.class.php 是正确的
- tbmcontroller.class.php就是错误的.
-
cotroller里面的class__必须__和文件名一致.
namespace Erp\Controller; #必须声明namespace, 和目录结构一致. use Think\Controller; #必须引入基类. class TaobaomController extends Controller #这个类名必须和文件名一致
-
controller里面__必须__有相应的函数, 本例中函数必须是index(), 用来对应url尾部.
-
对应的view目录下, __必须__有个目录Tbm(对应controller)
-
目录里面__必须__有个文件, index.html, 对应cotroller的方法, 也对应url.
-
如果还不行, 那么需要代码了:
public function __construct() { parent::__construct(); /** 卧槽这个是解决控制器找不到的办法. Call to a member function assign() on null /ThinkPHP/Library/Think/Controller.class.php LINE: 122 */ Vendor('Taobao.TopSdk'); }
-
这个框架用着真心__必须__累.
-
其实还做了很多操作, 貌似没有用, 但是, 其实不能这么绝对, 列在下面, 如果上面这些都没有, 可以尝试下面这些:
- 重启服务器, 不行.
- 删除runtime, 还是不行.
- 修改nginx的fastcgi, 没有效果.
- 清除chrome缓存
- 切换服务器nginx<->apache
nginx报错: 504
- 一开始以为是设置问题, 检查各种设施.
- 网上搜索也都说是设置问题.
- 其实不是, 其实是使用了thinkphp之后, 不能用死循环去读取淘宝消息了.
- 因为死循环读取到淘宝消息, 导致的服务器崩溃. 唉. 估计是内存溢出了.
- 解决方案: 不用thinkphp.
- 其他尝试
- 清除chrome缓存
- 切换服务器nginx<->apache