Buduję projekt przy użyciu Laravel. Na localhost działało dobrze, ale kiedy przesyłam go na serwer (na serwerze jest zainstalowany comodo ssl), pojawia się następujący błąd:
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
Czy ktoś może pomóc rozwiązać ten błąd?
Odpowiedzi:
Czy masz zainstalowane wszystkie niezbędne rozszerzenia na serwerze?
Możliwe, że brakuje Ci rozszerzenia OpenSSL. Czy masz ustawiony klucz w
.env
pliku?Spróbuj biegać:
php artisan key:generate
Odpowiedź:
'cipher' => ''
nie został ustawiony.źródło
'cipher' => 'AES-256-CBC'
wconfig/app.php
php artisan key:generate
aby wygenerować nowy klucz.php artisan key:generate
próbowałem naprawić problem, ale nadal występuje. Czy moje trasy mogą mieć z tym coś wspólnego: `` Route :: group (['middleware' => ['web']], function () {Route :: get ('/ login', 'PublicController @ login' ); Route :: post ('/ login', 'AuthenticationController @ login'); Route :: group (['prefix' => 'admin', 'middleware' => 'auth'], function () {route: : get ('dashboard', function () {echo 'in dash';});});}); ``W konsoli wpisujesz tylko:
A jeśli twój app.php nie zmienia tego klucza, zmień go ręcznie.
Następnie, jeśli powinieneś otrzymać ten komunikat o błędzie:
Następnie wykonaj kopię
.env.example
pliku i spróbuj ponownie:źródło
Mam ten sam problem wcześniej i naprawiłem go w następujący sposób: Przejdź do config / app.php, zmień
"cipher" => "anything"
na'cipher' => MCRYPT_RIJNDAEL_128,
źródło
'cipher' => 'AES-256-CBC',
ale powinna być bez cudzysłowu !! Dziwne.AES-256-CBC
na liście obsługiwanych szyfrów, jak się okazałophpinfo()
Naprawiłem to, uruchamiając to:
źródło
Po prostu naprawiam błąd.
Shift+Click
prawym przyciskiem myszy, aby „otworzyć tutaj okno poleceń” z projektu głównego."php artisan key:generate"
.config/app.php
polubienia'key' => env('APP_KEY', 'insert get 32 char key')
// linia numer 81źródło
W moim przypadku muszę włączyć rozszerzenie mcrypt.
Ale najpierw sprawdź, czy już go masz:
Sprawdź, czy moduł mcrypt jest załadowany:
jeśli nic się nie wyświetla, to dlatego, że nie jest załadowany, ale masz już zainstalowany powyżej, prawda? Więc zrób to:
Sprawdź ponownie, a zamiast niczego powinieneś zobaczyć mcrypt. To dobry znak, załaduj ponownie aplikację i napraw następny błąd;)
źródło
W katalogu głównym, jeśli istnieje
.env.example
plik, zmień go na,.env
a następnie uruchomphp artisan key:generate
. To zadziałało dla mnie.źródło
napisz w konsoli
php artisan key:generate
otrzymasz wiadomość taką jak:
Application key [get 32 char key] set successfully.
zamień klucz aplikacji na
config/app.php
podobny'key' => env('APP_KEY', 'insert get 32 char key'),//line number 81
źródło
config/app.php
plik. Czy możesz mi to powiedzieć?project folder
sięwamp server
, a następnie znaleźćconfig
folder, a następnie dostanieszapp.php
. dziękujęrozwiązany:
klucz php artisan: generuj
źródło
jeśli używasz pliku konfiguracyjnego app.php zamiast czytać klucz z pliku .env, możesz usunąć funkcję env () ze zmiennej klucza, np .:
'key' = env('someRandom36CharsString'),
do
'key' = 'someRandom36CharsString',
źródło
Udało mi się rozwiązać wdrożenie na serwer Ubuntu na żywo, oto wszystkie kroki
Upewnij się, że PHP> = 5.5.9
Upewnij się, że zainstalowano OpenSSL, Mbstring, Tokenizer i mcrypt.
Aby zainstalować mcrypt w PHP (Ubuntu):
Udostępnij folder pamięci do zapisu:
chmod -R 0777 storage
Spraw, aby Apache używał folderu Lavarel / public jako katalogu domowego:
DocumentRoot /home/code2/public_html/Laravel-Project/public <Directory "/home/code2/public_html/Laravel-Project/public”> AllowOverride all </Directory>
Najważniejsze dla mnie jest to, że FTP może domyślnie nie kopiować ukrytych plików:
.env
i/public/.htaccess
musi tam być!Po wykonaniu powyższych zadań działał na serwerze Ubuntu
źródło
Cierpiałem z tym problemem przez kilka godzin za dużo, zanim odkryłem, że klucz był buforowany w pliku bootstrap \ cache \ config.php. Usunąłem plik, a moja witryna została załadowana poprawnie (tj. W przeciwnym razie nie było problem z moim config).
Odkryłem to, dodając dane wyjściowe debugowania do pliku boostrap \ cache \ compiled.php, aby wypluł szyfr i klucz (gdzieś w okolicach linii 7010). Następnie rozejrzał się, aby zobaczyć, jak zbierał konfigurację i odkrył, że używa pliku konfiguracyjnego pamięci podręcznej.
źródło
Upewnij się, że masz te wymagania w swojej maszynie.
Następnie po zainstalowaniu lub zaktualizowaniu projektu przez
Po tym masz ...
Utwórz duplikat i zmień jego nazwę na ...
i wprowadź zmiany zgodnie z konfiguracją bazy danych lub innymi potrzebnymi modyfikacjami.
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
Na koniec wygeneruj klucz aplikacji przez:
Dla Kogoś może wystarczy tylko ostatni krok. Ale mam ten problem za każdym razem, gdy klonuję jakikolwiek projekt laravel. Cały ten krok sprawia, że jest to niebezpieczne.
źródło
Dodaj
"illuminate/html": "~5.0"
do wymaganej sekcjicomposer.json
pliku. Takie jak to:... "require": { ... "illuminate/html": "~5.0" ... }, ...
Następnie uruchom
composer install
polecenie. Gdycomposer install
się skończy. biegaćphp artisan key:generate
. Otrzymasz taką wiadomość:Application key [get 32 char key] set successfully.
źródło