由於在本地建了兩個laravel項目,test.me 和 api-test.me,當我在 test.me 中調用 curl 去請求 api-test.me 的方法,試圖獲取數據時,
接口一直返回沒有找到對應的表,經過排查,發現 api-test.me 連接的數據庫並不是 .env 中配置的。
然后各種百度,google,才發現 laravel 中通過 getenv() 和 putenv() 這兩個函數來獲取配置參數,但這兩個函數是非線程安全的。
但自已安裝的PHP7.2版本又是線程安全模式,所以就出問題了。
解決方案:
1、更改PHP版本為非線程安全( nts )版本。
2、在config/database.php中寫死數據庫連接配置,不用 env()。
3、如果使用 apache,可以將工作模式設置為 prefork 模式。