本地开发是win环境,使用tp6发现速度很慢,访问一个只有hello wordk的控制器,都需要1-2秒(这个耗时是从代码第一行开始计时的,所以和nginx无关)。
肯定不会就是这么慢,否则TP也不用混了
找了个linux,发现很快没问题
再回到自己的windows,逐句排查,最后发现,和TP无关,只运行一些很简单的php代码,比如define几个变量,判断文件是否存在等,都会用几毫秒。框架嘛,在控制器前要经过几千句代码,所以自然就出现了开始说需要1-2秒才到控制器的现象。
这么看似乎是php的问题,但是一想又不对,php如果这么慢,也就不用混了
又灵机一动,在cmd环境下运行php看看,发现果然很快,刚才耗时几毫秒的文件,只需要0毫秒
那就是nginx的问题?换了apache还是一样,那是宝塔的问题(我本地用宝塔作为测试开发)?装了phpstudy也是一样
到现在为止,完全没招了,然后用tp启动网站的模式,这样就用不到nginx,速度正常
php -S localhost:8888 router.php(适用thinkphp5)
php think run(适用thinkphp6)
几天后发现这样tp下有小bug,测试的时候切换会nginx,发现速度又正常了,真是心塞
最终发现,应该是根目录如果有.user.ini这个东西,就会导致速度慢