लार्वा नो सपोर्टेड एनक्रिप्टेड मिला। सिफर और / या कुंजी लंबाई अमान्य है


83

मैं लारवेल का उपयोग कर एक परियोजना का निर्माण कर रहा हूं। यह लोकलहोस्ट पर ठीक काम कर रहा था, लेकिन जब मैं इसे सर्वर पर अपलोड करता हूं (सर्वर में कोमोडो एसएसएल इंस्टॉल है), तो मुझे निम्न त्रुटि प्राप्त होती है:

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

किसी को भी इस त्रुटि को हल करने में मदद कर सकते हैं?


मैं भी इस मुद्दे को अब है, और अधिक खराब है stackoverflow.com/questions/37505809/...
udemethegrtman

जवाबों:


77

क्या आपके पास सर्वर पर सभी आवश्यक एक्सटेंशन स्थापित हैं?

  • PHP> = 5.5.9
  • OpenSSL PHP एक्सटेंशन
  • पीडीओ PHP एक्सटेंशन
  • Mbstring PHP एक्सटेंशन
  • टोकनर PHP एक्सटेंशन

यह हो सकता है कि आप ओपनएसएसएल एक्सटेंशन को याद कर रहे हैं। इसके अलावा, क्या आपके पास .envफ़ाइल में कुंजी सेट है ?


चलाने की कोशिश करें:

php artisan key:generate


उत्तर: 'cipher' => ''सेट नहीं किया गया था।


.env मूल्य: APP_ENV = स्थानीय APP_DEBUG = true APP_KEY = zK7sr9SzegGEDFClzJDs0vAkpO8NvjZA DB_HOST = स्थानीय होस्ट DB_DATABASE = रियासत DB_USERNAME = रियासत DB_PASSWORD = गुप्त CACHE_DRIVER = फ़ाइल SESSION_DRIVER = फ़ाइल QUEUE_DRIVER = सिंक MAIL_DRIVER = smtp MAIL_HOST = mailtrap.io MAIL_PORT = 2525 MAIL_USERNAME = अशक्त MAIL_PASSWORD = null MAIL_ENCRYPTION = null
रहमान ज़ा

2
है अपने 'cipher' => 'AES-256-CBC'मेंconfig/app.php
Salkz

34
और php artisan key:generateएक नई कुंजी उत्पन्न करने के लिए चलाते हैं ।
सल्कज़

@ रहमान्जा मेरे पास वे सभी एक्सटेंशन हैं, मेरे सिफर प्रकार को बदल दिया और php artisan key:generateसमस्या को ठीक करने की कोशिश करते थे लेकिन यह बनी रहती है। क्या मेरे मार्गों का इससे कोई लेना-देना हो सकता है: `` `रूट :: समूह (['मिडलवेयर' => ['वेब']], फ़ंक्शन () {रूट :: get ('/ लॉगिन', 'PublicController @ login' ); मार्ग :: पद ('/' लॉगिन ',' प्रमाणीकरणकंट्रोलर @ लॉगिन '); मार्ग :: समूह ([' उपसर्ग '=>' व्यवस्थापक ',' मध्यवर्गीय '=>' विशेषाधिकार '], कार्य () {मार्ग: : ('डैशबोर्ड', फंक्शन () {डैश में echo ';});});}); `` `
टॉम बर्ड

95

आप केवल कंसोल में टाइप करें:

php artisan key:generate

और यदि आपका app.php इस Key को नहीं बदलता है, तो मैन्युअल रूप से बदलें।


अगला यदि आपको तब यह त्रुटि संदेश प्राप्त करना चाहिए:

[ErrorException]
file_get_contents (/path/to/my/project/.env): स्ट्रीम खोलने में विफल: ऐसी कोई फ़ाइल या निर्देशिका नहीं

फिर .env.exampleफ़ाइल की एक प्रतिलिपि बनाएँ और पुनः प्रयास करें:

cp .env.example .env
php artisan key:generate

2
और जांचें कि क्या आपके पास सभी आवश्यक एक्सटेंशन स्थापित हैं।
राफेल बुगाजेव्स्की

2
कॉपी करने से पहले .env.example to .env
एलेक्स

9

मेरे पास पहले भी यही मुद्दा है और मैंने इसे इस तरह से तय किया है: config / app.php पर जाएं, बदल "cipher" => "anything"दें

'cipher' => MCRYPT_RIJNDAEL_128,

डिफ़ॉल्ट मान है, 'cipher' => 'AES-256-CBC',लेकिन यह बोली के बिना होना चाहिए !! अजीब।
वेबिनान

इससे मुझे भी मदद मिली, मैं AES-256-CBCसमर्थित सिफरों की सूची में नहीं था क्योंकि यह बाहर निकला थाphpinfo()
युरी डायचकोव

8

मैंने इसे चलाकर इसे ठीक किया:

php artisan config:cache

मेरे मामले में, मैं पहली बार डिप्लॉयर का उपयोग कर रहा था। जब मैं प्रोजेक्ट को / करंट फ़ोल्डर में सिम्प्लाइ कर रहा था, तो मुझे एन्क्रिप्शन त्रुटि मिली। कैश फ़ाइल बनाना इसे ठीक किया।
thomas_inckx

7

मैं सिर्फ त्रुटि ठीक करता हूं।

  1. Shift+Click सही माउस अपने रूट प्रोजेक्ट से "यहाँ सराहनीय विंडो खोलें"।
  2. कंसोल में लिखें "php artisan key:generate":।
  3. config/app.phpपसंद करने के लिए 32 वर्ण 'मार्क' प्राप्त करें 'key' => env('APP_KEY', 'insert get 32 char key'), // लाइन नंबर 81

5

मेरे मामले में, मुझे 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

5

रूट डायरेक्टरी में, अगर कोई .env.exampleफाइल है तो उसे बदल कर .envरन करें php artisan key:generate। इसने मेरे लिए काम किया।


4

सांत्वना में लिखें 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


क्षमा करें, मैं WAMP का उपयोग कर रहा हूं लेकिन मुझे नहीं पता कि config/app.phpफ़ाइल स्थित है । क्या आप मुझे इसे बता सकते हैं?
जूलियन मोरेनो

1
पहले, आप तुम जाओ project folderमें wamp serverऔर उसके बाद आप पाते हैं configफ़ोल्डर तो आप मिल जाएगा app.php। धन्यवाद
मोहम्मद शहादत हुसैन


3

यदि आप .env फ़ाइल से कुंजी पढ़ने के बजाय app.php कॉन्फ़िगरेशन फ़ाइल का उपयोग कर रहे हैं, तो आप कुंजी चर, पूर्व पर env () फ़ंक्शन को हटा सकते हैं:

'key' = env('someRandom36CharsString'),

सेवा

'key' = 'someRandom36CharsString',

2

मैं उबंटू सर्वर पर रहने के लिए तैनाती को हल करने में कामयाब रहा, यहां सभी चरण हैं

PHP> = 5.5.9 सुनिश्चित करें

सुनिश्चित करें, OpenSSL, Mbstring, Tokenizer और mcrypt स्थापित है।

PHP (Ubuntu) में mcrypt स्थापित करने के लिए:

sudo apt-get install php5-mcrypt,
sudo php5enmod mcrypt

भंडारण फ़ोल्डर को योग्य बनाएं:

chmod -R 0777 storage

अपाचे को घर के रूप में लैवल / सार्वजनिक फ़ोल्डर का उपयोग करें:

DocumentRoot /home/code2/public_html/Laravel-Project/public
    <Directory "/home/code2/public_html/Laravel-Project/public”> 
         AllowOverride all 
    </Directory>

मेरे लिए मेजर गोत्र एफ़टीपी डिफ़ॉल्ट रूप से छिपी हुई फ़ाइलों की प्रतिलिपि नहीं हो सकता है: .envऔर /public/.htaccessवहां रहने की आवश्यकता है!

उपरोक्त कार्यों को पूरा करने के बाद, इसने उबंटू सर्वर पर काम किया


1

मैं इस समस्या से कुछ ही घंटों से जूझ रहा था जब मुझे पता चला कि कुंजी बूटस्ट्रैप \ कैश \ config.php में कैश की जा रही थी। फ़ाइल डिलीट कर दी गई और मेरी साइट ठीक-ठाक लोड हो गई (यानी मेरे कॉन्फ़िगरेशन में कोई समस्या नहीं थी )।

मुझे यह पता लगाने के लिए कुछ डीपग आउटपुट को जोड़ने के लिए बूचड़खाना \ cache \ compiled.php बनाने के लिए इसे सिफर और की (कहीं लाइन 7010 के आसपास) थूक दिया जाए। फिर यह देखने के लिए चारों ओर खोदा गया कि यह कैसे विन्यास उठा रहा था और पाया कि यह एक कैश विन्यास फाइल का उपयोग करता है।


1

कृपया सुनिश्चित करें कि आपकी मशीन में यह आवश्यकताएं हैं

  1. PHP> = 5.6.4
  2. OpenSSL PHP एक्सटेंशन
  3. पीडीओ PHP एक्सटेंशन
  4. Mbstring PHP एक्सटेंशन
  5. टोकनर PHP एक्सटेंशन
  6. XML PHP एक्सटेंशन

फिर अपने प्रोजेक्ट को इनस्टॉल या अपडेट करने के बाद

संगीतकार अपडेट

इसके बाद आपके पास--

.env.example

एक डुप्लिकेट बनाएं और उसका नाम बदलकर--

.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 कारीगर कुंजी: उत्पन्न

किसी के लिए केवल अंतिम चरण ही काफी हो सकता है। लेकिन मुझे यह समस्या हर बार होती है जब मैं किसी लार्वा प्रोजेक्ट को क्लोन करता हूं। यह पूरा कदम किसी भी खतरे के साथ यह बनाता है।


0

"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.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.