多个laravel项目数据库连接错乱原因和解决方法
问题描述:
我在服务器部署了两个laravel项目,项目A 和 项目B,当我访问项目B的URL时,有时返回的却是项目A 数据库的数据。
然后各种百度,google,才发现 laravel 中通过 getenv() 和 putenv() 这两个函数来获取配置参数,但这两个函数是非线程安全的。
但自已安装的PHP7.2版本又是线程安全模式(ts版),所以就出问题了。
解决方案:
1、更改PHP版本为非线程安全( nts )版本。
2、在config/database.php中写死数据库连接配置,不用 env()。
3、如果使用 apache,可以将工作模式设置为 prefork 模式。