web-dev-qa-db-ja.com

Lumen Micro Framework => php artisan key:generate

PHP micro Framework Lumen(Laravel製)を試しています。

私の最初のステップの1つは、.env.exampleファイルを調べ、そのコピーを作成して.envファイルを作成することでした。 Laravelにあるような変数APP_KEYがあります。今、新しいキーを取得するためにphp artisan key:generateという単純なコマンドを試してみましたが、次のエラーメッセージが表示されました。

[InvalidArgumentException]「キー」名前空間にコマンドが定義されていません。

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文字のランダムな文字列が得られます:)

54

Laravelコマンドは非常に簡単です。ランダムな32文字の長い文字列を生成するだけです。ルーメンでも同じことができます。このようなルートを一時的に追加するだけです:

$router->get('/key', function() {
    return str_random(32);
});

次に、ブラウザの/keyに移動し、キーをコピーして.envファイルに貼り付けます。
その後、ルートを削除します。

もちろん、ランダムな文字列ジェネレーターをオンラインで使用することもできます。 これと同じ

93
lukasgeiter

まず、キージェネレーターコマンドを登録し、これ Lumen Key Generator Commandsapp/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

既に.envファイルを使用している場合は、このステップを無視してください。

key:generateコマンドをお楽しみください:

php artisan key:generate

編集

Lumen Generator を使用できます。 Laravelに欠けているコマンドがたくさんあります。

31
krisanalfa

簡単な解決策は、ターミナルからPHPコードを実行することです(tinkerを使用せず、Lumenでは使用できないため):

php -r "require 'vendor/autoload.php'; echo str_random(32).PHP_EOL;"

安全なStr::random()関数を利用するLaravelのrandom_bytes()関数を使用します。

26
Jeroen Noten

私にとって、Lumenキーを生成する最も簡単な方法は、次のコマンドのいずれかをコンソールで入力することです。

date | md5
date | md5sum

または

openssl Rand -base64 24

環境によって異なります。私の場合、Macではdate | md5を使用しています

11
Fábio N Lima

APP_KEY生成は、開発プロセスのステップです(一時的にルートを作成することが実際的な方法であるとは思いません)。関数str_randomは役に立ちますが、この関数はLaravel/Lunmenフレームワークの一部です。ティンカーを実行することをお勧めします

php artisan tinker

そして、関数を実行します

>>> str_random(32)

結果はあなたが探している鍵です。

=> "y3DLxnEczGWGN4CKUdk1S5GbMumU2dfH"

9
Cosmitar

単にPHP CLIを使用します。これをローカルまたはリモートコマンドラインから実行して、ランダムな32文字のLumen APP_KEYを生成します。

php -r "echo bin2hex(random_bytes(16));"

出力:bae48aba23b3e4395b7f1b484dd25192

MacおよびWindows上のPHP 7.xで動作します。

6
Chad Kieffer

キーを生成してlaravelコマンドを使用するには、1つのパッケージをインストールする必要があります。詳細は次のとおりです。

  1. パッケージcomposer require flipbox/Lumen-generatorをインストールする必要があります
  2. $app->register(Flipbox\LumenGenerator\LumenGeneratorServiceProvider::class);bootstrap/app.phpファイルに追加する必要があります。

リンク: https://github.com/flipboxstudio/Lumen-generator

3
Umang Soni

Macで行うことは、ターミナルで次のコマンドを実行することだけです。

date | md5 | pbcopy

これにより、値がクリップボードにコピーされるため、.envファイルにキーを簡単に貼り付けることができます。

2
ubuntugod

php -aを実行して、インタラクティブなPHPプレイグラウンドを起動します。

次にecho substr(md5(Rand()), 0, 32);を実行して、32文字の文字列を生成します。

その後、.envファイルにコピー/貼り付けできます。

1
roerjo

私はこれらのコマンドを使用しました:

php -r \"copy('.env.example', '.env');\"

php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).\"\n\";"

このコマンドは、次のようなキーを生成します。

$ 2y $ 10 $ jb3kw/vUANyzZ4ncMa4rwuR09qldQ2OjX8PGrVB5dIlSnUAPCGjFe

1
Juan Martínez

この回答は、質問に対する@ thomas-venturiniの更新に触発されました。上記のPHPコマンドとUNIX sedコマンドを使用して、.envを作成し、APP_KEYで更新するbashスクリプトを次に示します。

#!/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

誰かがこれが役に立つと思ってほしい。

0
DuffJ

1.端末セットアップファイルを開きます。

vim ~/.zshrc

2.ランダムな文字列を生成するためのエイリアスを作成します。

# Lumen Key Generate
alias Lumen-key="php -r \"require 'vendor/autoload.php'; echo base64_encode(str_random(32)).PHP_EOL;\""

3.必要なときにいつでもキーを取得します:

~/your-Lumen-project via ???? v7.3.0
➜ Lumen-key
VkxTYWZZSnhVNVEzRThXelBGZVJDVGZVYTNTcm9peHY=

PHPを使用して.envにキーを直接追加することで、3番目の手順を削除することもできます。

0