2015-12-14 188 views
0

很多人都有同樣的問題。但是,我的問題是不同的,這不是StackOverFlow上的任何重複問題。找不到支持的加密器。密碼和/或密鑰長度無效

My Laravel 5.1應用程序在我的本地主機上運行良好。但是,當我在生產服務器上設置它時,我得到的第一個錯誤是找不到支持的加密器。但是,如果我運行php artisan key:generate那麼一切都很好。但這是我不想做的,因爲其他人可能沒有使用命令行界面的技能。所以,我將'cipher' => 'AES-256-CBC',更換爲MCRYPT_RIJNDAEL_128,其中config/app.php解決了這個問題。但是,我不知道這樣做的消極方式是什麼。有沒有建議我以標準的方式實現我想要的目標?

+1

你只需要運行'php artisan key:generate'一次,只有當你設置一個新的環境。我不知道我是否會關注其他人不知道如何使用CLI的問題。你能否讓你的問題更清楚一點? –

+0

我只想給應用程序文件夾我想要的人,他們只能將其上傳到他們的服務器,一切都應該需要很好去。這就是我想要的。 –

+0

嗯......我明白了。您是否在使用'git'或其他SCM來管理這個項目? –

回答

2

需要手動調用php artisan key:generate的唯一時間是將此項目移動到新環境,例如開發或生產服務器。你必須這樣做的原因是,這是顯示的默認.gitignore文件的內容:

/vendor 
/node_modules 
.env 

這個項目被推向了一個新的環境的副本將不包括.env,它具有伴隨着鑰匙APP_KEY=YourRandomKeyDB_PASSWORD,MAIL_PASSWORD等。基本上所有的東西,你會保持私密,並允許新的環境管理器通過編輯.env.example文件推送配置。

如果你想用你的項目的每一個副本推送這些配置變量,你可以,但我會高度推薦這個。

如果您移除了.gitignore文件.env,該.env文件將被推向資源庫,並列入任何git clone編項目。

從本質上講,你的項目的每一個副本也有同樣的APP_KEY變量,但它也暴露你的DB_PASSWORD,在.env發現的所有其他敏感數據一起。基本上,有一種方法可以完成您使用Laravel獲得的安全級別,但爲了實現這一目標,您需要將安全性從窗口中移除...

希望能夠提供一些見解。

+2

我得到了同樣的錯誤,嘗試了一切原始海報,但它沒有解決問題。我在每臺服務器上單獨處理所有配置文件和.env變量,並使用'php artisan key:generate'來代替.env和config/app.php,但仍然無法爲我解決它。你會碰巧有其他想法嗎?我正在亞馬遜EC2實例上運行Ubuntu,並且我一直陷在這個問題上 –

相關問題