由于建了两个laravel项目,test1 和 test2,当我在 test1 访问数据库时候访问到了test2的数据库,
经过排查,发现 test1 连接的数据库并不是 .env 中配置的。
然后各种百度,google,才发现 laravel 中通过 getenv() 和 putenv() 这两个函数来获取配置参数,但这两个函数是非线程安全的。
但自已安装的PHP7.3版本又是线程安全模式,所以就出问题了。
解决方案:
1、更改PHP版本为非线程安全( nts )版本。
2、在config/database.php中写死数据库连接配置,不用 env()。
3、如果使用 apache,可以将工作模式设置为 prefork 模式。