Я создаю проект с использованием Laravel. Он работал нормально на localhost, но когда я загружаю его на сервер (на сервере установлен comodo ssl), я получаю следующую ошибку:
RuntimeException in EncryptionServiceProvider.php line 29:
No supported encrypter found. The cipher and / or key length are invalid
in EncryptionServiceProvider.php line 29
at EncryptionServiceProvider->Illuminate\Encryption\{closure}(object(Application), array()) in Container.php line 733
at Container->build(object(Closure), array()) in Container.php line 626
at Container->make('encrypter', array()) in Application.php line 674
at Application->make('Illuminate\Contracts\Encryption\Encrypter') in Container.php line 837
at Container->resolveClass(object(ReflectionParameter)) in Container.php line 800
at Container->getDependencies(array(object(ReflectionParameter)), array()) in Container.php line 771
at Container->build('SahraSalon\Http\Middleware\EncryptCookies', array()) in Container.php line 626
at Container->make('SahraSalon\Http\Middleware\EncryptCookies', array()) in Application.php line 674
at Application->make('SahraSalon\Http\Middleware\EncryptCookies') in Pipeline.php line 123
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 118
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 86
at Kernel->handle(object(Request)) in index.php line 54
Может ли кто-нибудь помочь решить эту ошибку?
Ответы:
Установлены ли на сервере все необходимые расширения?
Возможно, вам не хватает расширения OpenSSL. Кроме того, у вас есть ключ в
.env
файле?Попробуйте запустить:
php artisan key:generate
Ответ:
'cipher' => ''
не ставился.источник
'cipher' => 'AES-256-CBC'
inconfig/app.php
php artisan key:generate
чтобы сгенерировать новый ключ.php artisan key:generate
пытался решить проблему, но она не исчезла. Могут ли мои маршруты иметь какое-либо отношение к этому: `` `Route :: group (['middleware' => ['web']]], function () {Route :: get ('/ login', 'PublicController @ login' ); Route :: post ('/ login', 'AuthenticationController @ login'); Route :: group (['prefix' => 'admin', 'middleware' => 'auth'], function () {route: : get ('приборная панель', function () {echo 'в тире';});});}); ``Вы вводите только в консоли:
И если ваш app.php не меняет этот ключ, измените его вручную.
Далее, если вы должны получить это сообщение об ошибке:
Затем сделайте копию
.env.example
файла и попробуйте еще раз:источник
У меня была такая же проблема раньше, и я исправил ее следующим образом: перейдите в config / app.php, измените
"cipher" => "anything"
на'cipher' => MCRYPT_RIJNDAEL_128,
источник
'cipher' => 'AES-256-CBC',
но это не должно быть кавычек !! Странный.AES-256-CBC
в списке поддерживаемых шифров, как выяснилосьphpinfo()
Я исправил это, запустив это:
источник
Я просто исправляю ошибку.
Shift+Click
правой кнопкой мыши "открыть окно одобрения здесь" из корневого проекта."php artisan key:generate"
.config/app.php
нравится'key' => env('APP_KEY', 'insert get 32 char key')
, // номер строки 81источник
В моем случае мне нужно включить расширение mcrypt.
Но сначала проверьте, есть ли он у вас:
Проверьте, загружен ли модуль mcrypt:
если ничего не отображается, это потому, что он не загружен, но вы уже установили его, верно? Итак, сделайте это:
Проверьте еще раз, и вы должны увидеть mcrypt вместо ничего. Это хороший знак, перезагрузите приложение и исправьте следующую ошибку;)
источник
В корневом каталоге, если есть
.env.example
файл, измените его на.env
и запуститеphp artisan key:generate
. Это сработало для меня.источник
написать в консоли
php artisan key:generate
вы получите сообщение вроде:
Application key [get 32 char key] set successfully.
заменить ключ приложения на
config/app.php
лайк'key' => env('APP_KEY', 'insert get 32 char key'),//line number 81
источник
config/app.php
файл. Не могли бы вы сообщить мне об этом?project folder
в ,wamp server
а затем вы найдетеconfig
папку , то вы получитеapp.php
. спасиборешено с помощью:
php artisan key: генерировать
источник
если вы используете файл конфигурации app.php вместо чтения ключа из файла .env, вы можете удалить функцию env () для ключевой переменной, например:
'key' = env('someRandom36CharsString'),
к
'key' = 'someRandom36CharsString',
источник
Мне удалось решить развертывание на живом сервере Ubuntu, вот все шаги
Убедитесь, что PHP> = 5.5.9
Убедитесь, что OpenSSL, Mbstring, Tokenizer и mcrypt установлены.
Чтобы установить mcrypt в PHP (Ubuntu):
Сделайте папку хранилища доступной для записи:
chmod -R 0777 storage
Сделайте так, чтобы Apache использовал папку Lavarel / public в качестве домашней:
DocumentRoot /home/code2/public_html/Laravel-Project/public <Directory "/home/code2/public_html/Laravel-Project/public”> AllowOverride all </Directory>
Основная проблема для меня заключается в том, что FTP может не копировать скрытые файлы по умолчанию:
.env
и он/public/.htaccess
должен быть там!После выполнения вышеуказанных задач он работал на сервере Ubuntu.
источник
Я мучился с этой проблемой в течение нескольких часов, прежде чем я обнаружил, что ключ кэшируется в bootstrap \ cache \ config.php. Удаляются файл и мой сайт загружается нормально (т.е. не были в противном случае нет проблем с моей конфигурацией).
Я обнаружил это, добавив некоторые отладочные данные в boostrap \ cache \ compiled.php, чтобы заставить его выдавать шифр и ключ (где-то около строки 7010). Затем покопался, чтобы увидеть, как он собирает конфигурацию, и обнаружил, что он использует файл конфигурации кеша.
источник
Убедитесь, что ваша машина соответствует этим требованиям .
Затем после установки или обновления вашего проекта с помощью
После этого у вас есть ...
Сделайте дубликат и переименуйте его в ...
и внесите изменения в соответствии с конфигурацией вашей базы данных или любыми другими необходимыми изменениями.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your db name DB_USERNAME=username if any otherwise root DB_PASSWORD= your password if not set leave blank
Наконец, сгенерируйте ключ приложения:
Кому-то может хватить только последнего шага. Но у меня эта проблема возникает каждый раз, когда я клонирую какой-либо проект laravel. Весь этот шаг делает это с любой опасностью.
источник
Добавьте
"illuminate/html": "~5.0"
в требуемый раздел вашегоcomposer.json
файла. Именно так:... "require": { ... "illuminate/html": "~5.0" ... }, ...
Затем запустите
composer install
команду. Когдаcomposer install
будет завершено. бегиphp artisan key:generate
. Вы получите такое сообщение:Application key [get 32 char key] set successfully.
источник