Lumen 微框架 => php artisan key:generate
Lumen Micro Framework => php artisan key:generate
我正在试用 PHP 微型框架 Lumen(来自 Laravel)。
我的第一步是查看 .env.example
文件并制作一份副本以得到我的 .env
文件。有一个变量 APP_KEY 就像 Laravel 中的一样。现在我尝试了简单的命令 php artisan key:generate
来获取我的新密钥但是我 运行 进入以下错误消息:
[InvalidArgumentException] There are no commands defined in the "key"
namespace.
有人知道如何为 Lumen 生成密钥吗?
更新解决方案
所以我找到了我最喜欢的这个问题的解决方案。在命令行 (Linux) 我 运行 php -r "echo md5(uniqid()).\"\n\";"
是什么给了我这样的东西 7142720170cef01171fd4af26ef17c93
.
如果您打算更频繁地使用 Lumen,您可能需要在您的 .bashrc
中创建一个别名,它位于您的主目录 /home/USERNAME
中。为此,您可以使用 nano ~/.bashrc
或 vi ~/.bashrc
打开文件并在文件末尾复制以下别名 alias phpkey='php -r "echo md5(uniqid()).\"\n\";"'
。现在你可以使用命令 phpkey
,它会给你一个 32 个字符长的 运行dom 字符串 :)
Laravel 命令相当简单。它只是生成一个随机的 32 个字符长的字符串。你可以在 Lumen 中做同样的事情。只是临时添加这样一条路线:
$router->get('/key', function() {
return \Illuminate\Support\Str::random(32);
});
然后在您的浏览器中转到 /key
并将密钥复制粘贴到您的 .env
文件中。
然后删除路由。
显然您也可以在线使用一些随机字符串生成器。 Like this one
首先,你必须注册你的密钥生成器命令,把这个Lumen Key Generator Commands放到app/Console/Commands/KeyGenerateCommand.php
。要使此命令在 artisan
中可用,请更改 app\Console\Kernel.php
:
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
'App\Console\Commands\KeyGenerateCommand',
];
之后,配置您的应用程序,使 Illuminate\Config\Repository
实例具有 app.key
值。为此,更改 bootstrap/app.php
:
<?php
require_once __DIR__.'/../vendor/autoload.php';
Dotenv::load(__DIR__.'/../');
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/
$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);
$app->configure('app');
之后,将您的 .env.example
文件复制到 .env
:
cp .env.example .env
Ignore this step if you already use .env
file.
享受你 key:generate
命令通过:
php artisan key:generate
编辑
您可以使用 Lumen Generator。它涵盖了您在 Laravel.
中遗漏的许多命令
APP_KEY生成是开发过程的一个步骤(我不认为创建临时路由是一种实用的方法)。 str_random
函数可以帮助我们,但是这个函数是 Laravel/Lunmen 框架的一部分。
我推荐运行ning tinker
php artisan tinker
然后运行函数
>>> str_random(32)
结果就是您要查找的密钥。
=> "y3DLxnEczGWGN4CKUdk1S5GbMumU2dfH"
这个答案的灵感来自@thomas-venturini 对问题的更新。这是一个 bash 脚本,它负责创建 .env
并使用上述 PHP 命令和 UNIX sed
命令用 APP_KEY
更新它:
#!/usr/bin/env bash
function generate_app_key {
php -r "echo md5(uniqid()).\"\n\";"
}
APP_KEY=$(generate_app_key)
sed -e s/APP_KEY=.*$/APP_KEY=${APP_KEY}/g .env.example > .env
希望有人觉得这有用。
一个简单的解决方案就是来自终端的 运行 PHP 代码(不使用 tinker
,因为这不适用于 Lumen):
php -r "require 'vendor/autoload.php'; echo str_random(32).PHP_EOL;"
它使用 Laravel 的 Str::random()
函数,该函数利用了安全 random_bytes()
函数。
对我来说,生成 Lumen 密钥的最简单方法是在控制台上输入以下命令之一:
date | md5
date | md5sum
或
openssl rand -base64 24
取决于您的环境。就我而言,我在 mac
上使用 date | md5
我使用过这些命令:
php -r \"copy('.env.example', '.env');\"
php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).\"\n\";"
命令生成的密钥类似于:
y$jb3kw/vUANyzZ4ncMa4rwuR09qldQ2OjX8PGrVB5dIlSnUAPCGjFe
我在 mac 上所做的就是在终端中执行此命令:
date | md5 | pbcopy
这会将值复制到剪贴板,因此您可以轻松地将密钥粘贴到 .env
文件中。
要生成密钥并使用laravel 命令,您需要安装一个软件包。详情如下:
- 您必须安装软件包
composer require flipbox/lumen-generator
- 您必须将
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
添加到 bootstrap/app.php
文件中。
运行 php -a
启动交互式 php playground。
然后运行echo substr(md5(rand()), 0, 32);
生成32个字符的字符串。
然后您可以 copy/paste 进入 .env
文件。
1.Open 您的终端设置文件:
vim ~/.zshrc
2.Create 生成随机字符串的别名:
# Lumen Key Generate
alias lumen-key="php -r \"require 'vendor/autoload.php'; echo base64_encode(str_random(32)).PHP_EOL;\""
3.Get一键随手:
~/your-lumen-project via v7.3.0
➜ lumen-key
VkxTYWZZSnhVNVEzRThXelBGZVJDVGZVYTNTcm9peHY=
You can also remove the third step by adding the key directly in .env
using PHP.
只需使用 PHP CLI。 运行 从您的本地或远程命令行生成一个随机的 32 个字符的 Lumen APP_KEY:
php -r "echo bin2hex(random_bytes(16));"
输出:bae48aba23b3e4395b7f1b484dd25192
在 Mac 和 Windows 上与 PHP 7.x 一起工作。
[Flipbox\LumenGenerator]
修复错误:没有定义命令...
[boostrap/app] 检查您是否在 return $app 之后注册了 Flipbox\LumenGenerator。如果是这样,请在 return app...
之前移动服务提供商注册
/**
* Configure extra LARAVEL commands to a lumen app
* Check avaliable commands in git: flipboxstudio lumen-generator
*/
if($app->environment() !== 'production'){
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
}
return $app;
流明 8.0 / flipbox/lumen-generator 8.2
100% 有效
只需安装 flipbox/lumen-generator 包
composer require flipbox/lumen-generator
.
在您的 bootstrap/app.php 文件中,添加:
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
然后你就可以运行 php artisan 命令了,
更多信息:https://github.com/flipboxstudio/lumen-generator
我正在试用 PHP 微型框架 Lumen(来自 Laravel)。
我的第一步是查看 .env.example
文件并制作一份副本以得到我的 .env
文件。有一个变量 APP_KEY 就像 Laravel 中的一样。现在我尝试了简单的命令 php artisan key:generate
来获取我的新密钥但是我 运行 进入以下错误消息:
[InvalidArgumentException] There are no commands defined in the "key" namespace.
有人知道如何为 Lumen 生成密钥吗?
更新解决方案
所以我找到了我最喜欢的这个问题的解决方案。在命令行 (Linux) 我 运行 php -r "echo md5(uniqid()).\"\n\";"
是什么给了我这样的东西 7142720170cef01171fd4af26ef17c93
.
如果您打算更频繁地使用 Lumen,您可能需要在您的 .bashrc
中创建一个别名,它位于您的主目录 /home/USERNAME
中。为此,您可以使用 nano ~/.bashrc
或 vi ~/.bashrc
打开文件并在文件末尾复制以下别名 alias phpkey='php -r "echo md5(uniqid()).\"\n\";"'
。现在你可以使用命令 phpkey
,它会给你一个 32 个字符长的 运行dom 字符串 :)
Laravel 命令相当简单。它只是生成一个随机的 32 个字符长的字符串。你可以在 Lumen 中做同样的事情。只是临时添加这样一条路线:
$router->get('/key', function() {
return \Illuminate\Support\Str::random(32);
});
然后在您的浏览器中转到 /key
并将密钥复制粘贴到您的 .env
文件中。
然后删除路由。
显然您也可以在线使用一些随机字符串生成器。 Like this one
首先,你必须注册你的密钥生成器命令,把这个Lumen Key Generator Commands放到app/Console/Commands/KeyGenerateCommand.php
。要使此命令在 artisan
中可用,请更改 app\Console\Kernel.php
:
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
'App\Console\Commands\KeyGenerateCommand',
];
之后,配置您的应用程序,使 Illuminate\Config\Repository
实例具有 app.key
值。为此,更改 bootstrap/app.php
:
<?php
require_once __DIR__.'/../vendor/autoload.php';
Dotenv::load(__DIR__.'/../');
/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/
$app = new Laravel\Lumen\Application(
realpath(__DIR__.'/../')
);
$app->configure('app');
之后,将您的 .env.example
文件复制到 .env
:
cp .env.example .env
Ignore this step if you already use
.env
file.
享受你 key:generate
命令通过:
php artisan key:generate
编辑
您可以使用 Lumen Generator。它涵盖了您在 Laravel.
中遗漏的许多命令APP_KEY生成是开发过程的一个步骤(我不认为创建临时路由是一种实用的方法)。 str_random
函数可以帮助我们,但是这个函数是 Laravel/Lunmen 框架的一部分。
我推荐运行ning tinker
php artisan tinker
然后运行函数
>>> str_random(32)
结果就是您要查找的密钥。
=> "y3DLxnEczGWGN4CKUdk1S5GbMumU2dfH"
这个答案的灵感来自@thomas-venturini 对问题的更新。这是一个 bash 脚本,它负责创建 .env
并使用上述 PHP 命令和 UNIX sed
命令用 APP_KEY
更新它:
#!/usr/bin/env bash
function generate_app_key {
php -r "echo md5(uniqid()).\"\n\";"
}
APP_KEY=$(generate_app_key)
sed -e s/APP_KEY=.*$/APP_KEY=${APP_KEY}/g .env.example > .env
希望有人觉得这有用。
一个简单的解决方案就是来自终端的 运行 PHP 代码(不使用 tinker
,因为这不适用于 Lumen):
php -r "require 'vendor/autoload.php'; echo str_random(32).PHP_EOL;"
它使用 Laravel 的 Str::random()
函数,该函数利用了安全 random_bytes()
函数。
对我来说,生成 Lumen 密钥的最简单方法是在控制台上输入以下命令之一:
date | md5
date | md5sum
或
openssl rand -base64 24
取决于您的环境。就我而言,我在 mac
上使用date | md5
我使用过这些命令:
php -r \"copy('.env.example', '.env');\"
php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).\"\n\";"
命令生成的密钥类似于:
y$jb3kw/vUANyzZ4ncMa4rwuR09qldQ2OjX8PGrVB5dIlSnUAPCGjFe
我在 mac 上所做的就是在终端中执行此命令:
date | md5 | pbcopy
这会将值复制到剪贴板,因此您可以轻松地将密钥粘贴到 .env
文件中。
要生成密钥并使用laravel 命令,您需要安装一个软件包。详情如下:
- 您必须安装软件包
composer require flipbox/lumen-generator
- 您必须将
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
添加到bootstrap/app.php
文件中。
运行 php -a
启动交互式 php playground。
然后运行echo substr(md5(rand()), 0, 32);
生成32个字符的字符串。
然后您可以 copy/paste 进入 .env
文件。
1.Open 您的终端设置文件:
vim ~/.zshrc
2.Create 生成随机字符串的别名:
# Lumen Key Generate
alias lumen-key="php -r \"require 'vendor/autoload.php'; echo base64_encode(str_random(32)).PHP_EOL;\""
3.Get一键随手:
~/your-lumen-project via v7.3.0
➜ lumen-key
VkxTYWZZSnhVNVEzRThXelBGZVJDVGZVYTNTcm9peHY=
You can also remove the third step by adding the key directly in
.env
using PHP.
只需使用 PHP CLI。 运行 从您的本地或远程命令行生成一个随机的 32 个字符的 Lumen APP_KEY:
php -r "echo bin2hex(random_bytes(16));"
输出:bae48aba23b3e4395b7f1b484dd25192
在 Mac 和 Windows 上与 PHP 7.x 一起工作。
[Flipbox\LumenGenerator]
修复错误:没有定义命令...
[boostrap/app] 检查您是否在 return $app 之后注册了 Flipbox\LumenGenerator。如果是这样,请在 return app...
之前移动服务提供商注册/**
* Configure extra LARAVEL commands to a lumen app
* Check avaliable commands in git: flipboxstudio lumen-generator
*/
if($app->environment() !== 'production'){
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
}
return $app;
流明 8.0 / flipbox/lumen-generator 8.2
100% 有效
只需安装 flipbox/lumen-generator 包
composer require flipbox/lumen-generator
.
在您的 bootstrap/app.php 文件中,添加:
$app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);
然后你就可以运行 php artisan 命令了, 更多信息:https://github.com/flipboxstudio/lumen-generator