laravel не найден поддерживаемый шифратор. Длина шифра и / или ключа недопустима
Я строю проект с помощью 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->IlluminateEncryption{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('IlluminateContractsEncryptionEncrypter') 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('SahraSalonHttpMiddlewareEncryptCookies', array()) in Container.php line 626
at Container->make('SahraSalonHttpMiddlewareEncryptCookies', array()) in Application.php line 674
at Application->make('SahraSalonHttpMiddlewareEncryptCookies') in Pipeline.php line 123
at Pipeline->IlluminatePipeline{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->IlluminatePipeline{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
может кто-нибудь помочь решить эту ошибку?
14 ответов:
у вас есть все необходимые расширения, установленные на сервере?
- PHP > = 5.5.9
- расширение OpenSSL PHP
- PDO PHP расширение
- mbstring PHP Extension
- расширение PHP Tokenizer
возможно, Вам не хватает расширения OpenSSL. Кроме того, у вас есть ключ, установленный в ?
попробуйте запустить:
php artisan key:generate
ответ: the
'cipher' => ''
не был установлен.
вы только вводите в консоли:
php artisan key:generate
и если ваше приложение.php не изменяет этот ключ, изменяет вручную.
далее, Если вы должны затем получить это сообщение об ошибке:
[ErrorException]
file_get_contents (/path/to/my/project/.ЕНВ): не удалось открыть поток: нет такого файла или каталогазатем сделайте копию
.env.example
файл и повторите попытку:cp .env.example .env php artisan key:generate
у меня такая же проблема раньше, и я исправил ее следующим образом: Перейдите в config / app.РНР, изменить
"cipher" => "anything"
to'cipher' => MCRYPT_RIJNDAEL_128,
Я просто исправить ошибку.
Shift+Click
правая мышь ,чтобы" открыть окно похвалы здесь " из вашего корневого проекта.- в консоли пишем:
"php artisan key:generate"
.- получить 32 символа 'Mark' в
config/app.php
как'key' => env('APP_KEY', 'insert get 32 char key')
,//номер строки 81
в корневом каталоге, если есть
.env.example
файл затем изменить его на.env
и затем запуститьphp artisan key:generate
. Это сработало для меня.
в моем случае, мне нужно включить расширение mcrypt.
но сначала, проверьте, если у вас уже есть:
$ sudo apt-get install -y mcrypt php5-mcrypt
Проверьте, загружен ли модуль mcrypt:
$ php -m | grep mcrypt
если ничего не показывает, потому что не загружается, но вы уже установили выше права? Так сделайте это:
$ php5enmod mcrypt $ sudo service apache2 restart
проверьте еще раз, и вы должны увидеть mcrypt вместо ничего. Это хороший знак, перезагрузите приложение и исправьте свою следующую ошибку;)
$ php -m | grep mcrypt mcrypt
пишешь в консоли
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
мне удалось решить развертывание для live Ubuntu server, вот все шаги
обеспечить PHP >= 5.5.9
убедитесь, что установлены OpenSSL, Mbstring, Tokenizer и mcrypt.
чтобы установить mcrypt в PHP (Ubuntu):
sudo apt-get install php5-mcrypt, sudo php5enmod mcrypt
сделать папку хранения доступной для записи:
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>
майор gotcha для меня FTP может не копировать скрытые файлы по умолчанию:
.env
и/public/.htaccess
нужно быть там!после выполнения задач выше, он работал на Ubuntu server
Если вы используете приложение.PHP конфигурационный файл вместо чтения ключа из .env файл, то вы можете удалить функцию env () на ключевой переменной, например:
'key' = env('someRandom36CharsString'),
до
'key' = 'someRandom36CharsString',
Я страдал с этой проблемой в течение нескольких слишком много часов, прежде чем я обнаружил, что ключ кэшируется в bootstrap\cache\config.РНР. Удалил файл и мой сайт загрузился нормально (т. е. было иначе нет проблема с моей конфигурации).
Я обнаружил это, добавив некоторые выходные данные отладки в boostrap\cache\compiled.php, чтобы заставить его выплюнуть шифр и ключ (где-то около строки 7010). Затем покопался, чтобы посмотреть, как он собирал конфигурацию и нашел ее использует конфигурационный файл кэша.
добавить
"illuminate/html": "~5.0"
требовать раздела . Вот так:... "require": { ... "illuminate/html": "~5.0" ... }, ...
затем запустите . Когда
composer install
получает полный. бегиphp artisan key:generate
. Вы получите такое сообщение:Application key [get 32 char key] set successfully.
пожалуйста, убедитесь, что у вас есть это требования в вашей машине.
- PHP > = 5.6.4
- расширение OpenSSL PHP
- PDO PHP расширение
- mbstring PHP Extension
- расширение PHP Tokenizer
- XML PHP расширение
после установки или обновления вашего проекта
композитор обновление
после этого вы есть...
.ОКР.пример
сделать дубликат и переименуйте его в...
.env
и внести изменения в соответствии с конфигурацией базы данных или любые другие изменения, которые вам нужны.
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
наконец сгенерируйте ключ приложения с помощью--
php artisan key: generate
для кого-то может быть достаточно только последнего шага. Но у меня есть эта проблема каждый время клонировать любой проект laravel. Весь этот шаг делает это с любой опасностью.