我有一个生产站点,该站点使用Amazon Server上的数据库,我在同一服务器上还有两个站点,而且两个站点都没有问题。
在这个特定站点上,与mysql的连接无法正常工作,我以为laravel应用缺少或没有看到env文件,但在运行dotnet --list-runtimes
并尝试执行任何命令时情况并非如此作品:
for (let index = 0; index < obj.recommendedRoutes.length; index++) {
console.log('Pushed: ' + index);
promiseArr.push(
User.find({
_id: obj.recommendedRoutes[index].userId,
}).then((data) => {
obj.recommendedRoutes[index].userObj = data[0].toObject();
console.log('Completed: ' + index)
}, err => console.log('Database error: ' + err))
);
}
App :: environment()方法也有效:
php artisan tinker
env文件清楚地显示了DB::table('categories')->get();
=> Illuminate\Support\Collection {#842
all: [
{#828
+"id": 1,
+"parent_id": null,
+"order": 1,
+"name": "Noticias",
+"slug": "noticias",
+"created_at": "2018-01-09 19:26:32",
+"updated_at": "2018-01-09 19:26:32",
},
],
}
,但是它返回了很多调试信息,就像Web服务器除了工匠之外没有读取env文件一样。
这让我发疯,因为它本身就开始失败,服务器或代码上没有任何更改,这是唯一失败的项目。
我还能检查什么?
>>> App::environment();
=> "production"
答案 0 :(得分:1)
您应该验证您是否拥有bootstrap/cache/config.php
文件。如果是,则表示您的配置已缓存。比您可以运行:
php artisan config:cache
刷新配置并同步您在.env
或
php artisan config:clear
如果您不想使用缓存的配置(请记住,建议在生产时缓存配置)
答案 1 :(得分:0)
我遇到了类似的问题,在安装了其他所有内容之后,我安装了php7.2-mysql。修补匠工作正常,但我的应用程序无法连接。
我花了2个小时尝试调试,直到简单的apache重新启动才解决了问题。
答案 2 :(得分:0)
对我来说,解决方案是重新启动laravel开发服务器,即:再次运行php artisan serve
。
最初运行开发服务器后,我更改了数据库配置。