«php artisan key: generate» выдает «Ключ шифрования приложения не указан».ошибка - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть клонированное приложение laravel, но когда я пытаюсь сгенерировать APP_KEY через php artisan key: генерировать, это выдает мне ошибку:

In EncryptionServiceProvider.php line 42:
No application encryption key has been specified.

Что очевидно, потому что это именно то, что я пытаюсьсоздавать.Кто-нибудь знает, как отладить эту команду?

обновление: вид исправления с этим сообщением laravel 4: ключ не генерируется с artisan

Если я заполняю APP_KEY вмой .env файл php artisan key:generate работает.Но недавно созданное приложение через laravel new с удаленным APP_KEY может без проблем запускать php artisan key:generate по какой-то причине.

По какой-то причине php artisan key: generate думает, что ему нужен app_key, когда это не так.Другие команды также не выполняются, все они выдают ошибку «Не указан ключ шифрования приложения».

Ответы [ 4 ]

0 голосов
/ 24 сентября 2018

Если у вас нет папки vendor,

1) Установите зависимости компоновщика

composer install

2) С помощью команды * необходимо сгенерировать ключ приложения APP_KEY1007 *

php artisan key:generate

3) Откройте Project в редакторе кода, переименуйте .env.example в .env и измените имя БД, имя пользователя, пароль в вашей среде.

4) php artisan config:cache, чтобы выполнитьизменения.

0 голосов
/ 24 сентября 2018

php artisan key:generate нужен существующий ключ для работы.Заполните APP_KEY 32 символами и еще раз введите команду, чтобы она заработала.

Редактировать: Недавно созданное приложение через laravel, новое с удаленным APP_KEY, может запускать php artisan key: генерировать без проблем по какой-то причине.

Изменить год спустя: реальные проблемы заключаются в 2 добавленных услуг поставщика.Функции boot () плохо написаны, что вызывает проблему.Все еще не совсем уверен, почему это не работает, но я постараюсь выяснить это для кого-то, у кого может быть такая же проблема позже.

Два рассматриваемых файла

<?php

namespace App\Providers;

use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Routing\ResponseFactory;

class ResponseServiceProvider extends ServiceProvider
{
    public function boot(ResponseFactory $factory){
        parent::boot();
        $factory->macro('api', function ($data=null, $code=null, $message=null) use ($factory) {
            $customFormat = [
                'status' => 'ok',
                'code' => $code ? $code : 200,
                'message' => $message ? $message : null,
                'data' => $data
            ];

            if ($data instanceof LengthAwarePaginator){
                $paginationData = $data->toArray();
                $pagination = isset($paginationData['current_page']) ? [
                    "total" => $paginationData['total'],
                    "per_page" => (int) $paginationData['per_page'],
                    "current_page" => $paginationData['current_page'],
                    "last_page" => $paginationData['last_page'],
                    "next_page_url" => $paginationData['next_page_url'],
                    "prev_page_url" => $paginationData['prev_page_url'],
                    "from" => $paginationData['from'],
                    "to" => $paginationData['to']
                ] : null;

                if ($pagination){
                    $customFormat['pagination'] = $pagination;
                    $customFormat['data'] = $paginationData['data'];
                }
            }

            return $factory->make($customFormat);
        });
    }

    public function register(){
        //
    }
}
<?php

namespace App\Providers;

use App\Http\Controllers\Auth\SocialTokenGrant;
use Laravel\Passport\Bridge\RefreshTokenRepository;
use Laravel\Passport\Bridge\UserRepository;
use Laravel\Passport\Passport;
use Laravel\Passport\PassportServiceProvider;
use League\OAuth2\Server\AuthorizationServer;

/**
 * Class CustomQueueServiceProvider
 *
 * @package App\Providers
 */
class SocialGrantProvider extends PassportServiceProvider{
    /**
//     * Bootstrap any application services.
//     *
//     * @return void
//     */
    public function boot(){
        parent::boot();
        app(AuthorizationServer::class)->enableGrantType($this->makeSocialRequestGrant(), Passport::tokensExpireIn());
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register(){
    }

    /**
     * Create and configure a SocialTokenGrant based on Password grant instance.
     *
     * @return SocialTokenGrant
     */
    protected function makeSocialRequestGrant(){
        $grant = new SocialTokenGrant(
            $this->app->make(UserRepository::class),
            $this->app->make(RefreshTokenRepository::class)
        );
        $grant->setRefreshTokenTTL(Passport::refreshTokensExpireIn());
        return $grant;
    }
}
0 голосов
/ 24 сентября 2018

php artisan key: generate - это команда, которая создает значение APP_KEY в вашем файле .env.

Когда вы запускаете команду composer create-project laravel / laravel, она генерирует APP_Key в файле .env, ноКогда вы извлекаете новую ветку с помощью git или клонируете новый проект, файл .env не будет включать, поэтому вам нужно запустить ключ ремесленника: сгенерировать для создания нового APP_KEY.

Вы изменили свой вопрос.В этом случае вы можете попробовать это.php artisan key: сгенерировать php artisan config: cache

0 голосов
/ 24 сентября 2018

проверьте ваш .env файл.Это существует?

...