在共享主机上运行Laravel artisan命令

4
我已经在http://000webhostapp.com上托管了一个网站,最近它一直正常运行,但现在出现了以下错误信息:"production.ERROR: No application encryption key has been specified"。
我发现我需要运行这个artisan命令:
"php artisan key:generate"

是否有办法在不下载我的文件并在我的机器上运行它的情况下,找出问题所在?


只需编辑您的 .env 文件并将 APP_KEY= 更新为类似于 base64:Gab61jKoEy3BldoePE6nTGLLjPve+9viG7yolLTW+Co= 的内容(我刚在我的电脑上运行了它)。 - Ohgodwhy
4个回答

6

在您的路由文件中。

Route::get('/key', function(){
     artisan::call('key:generate');
});

然后在浏览器中运行路由。

但这在000webhost中不起作用。

因为出于安全原因,.env已被禁用。 您需要将密钥放入Config/app文件中,找到该行。

'key' = env(APP_KEY);

用它来替换。
'key' = 'your key'

记得添加更多必要的配置。


0
这对某些人可能很有帮助,
因为出于安全原因,.env被禁用。你可以在本地环境中生成一个密钥,并将其放入你的config/app.php中。
'key' => env(APP_KEY, base64_decode('your-key-without-base64:'));

请参考this的答案。


0

你需要拥有SSH访问权限来生成密钥,如果没有,可以向你的托管提供商请求运行此命令。


怎么做?我不了解共享主机。 - Othmane Boumediane
你应该查看你的托管面板以获取SSH访问。 - kozan

0

在共享主机上运行命令并不是一个好的方式,因为这可能存在风险。你应该遵循标准流程,在本地机器上开发项目,然后将其部署到生产环境中。

以下是可以用来运行基本命令的链接,你可以根据自己的需求进行进一步配置,在共享主机上运行命令的代码片段

根据此代码片段,你只需要在路由文件中创建两个路由,并添加逻辑以编程方式运行命令,如Laravel官方文档所述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接