2016-04-21 21 views
4

我已經在debian 7.5,apache2,php7上部署了一個laravel站點。在我的Mac網站是好的,但部署,現場報告以下錯誤後:PHP文件都是UTF-8編碼,並在php.ini顯示PHP7的默認chareter集爲UTF-8爲好,請幫我在那裏, 提前致謝。laravel php7 debian 7.5站點部署有非法的chareters,不知道爲什麼

ErrorException在Mbstring.php線351: iconv_strpos():在檢測到輸入字符串

在Mbstring.php線

非法字符351 在HandleExceptions->的HandleError( '8',「iconv_strpos():檢測到輸入字符串','/var/www/stockhit/vendor/symfony/polyfill-mbstring/Mbstring.php','351',array('haystack'=>' J ` I '''','needle'=>'base64:','offset'=>'0','encoding'=>'UTF-8'))

+0

一種方法來解決,這將是使用'mb_strpos()'代替。上述情況通常發生在輸入和輸出字符集設置爲相同並且輸入中傳遞了非法字符的情況下。你可以發佈'iconv_strpos()'的用法嗎? – Jeemusu

+0

我不使用它,但laravel 5的供應商的確,從下面報告非法charet:在EncryptionServiceProvider-> getEncrypterForKeyAndCipher('J'I3؉W¯¯「L 」,‘AES-256-CBC’)在EncryptionServiceProvider.php線25 – alextre

+0

轉到工匠CLI您的Debian的服務器上做'鍵:generate'得到一個新的應用程序鍵 – Mysteryos

回答

3

終於把它弄下來,不知何故,無邊無際,關鍵的生成會產生一個字符串開頭:Base64:........和'ci AES-256-CBC',它不允許這種格式,解決方案是手動切割base64andsomechar,仍然是32長度字符串,然後問題解決〜

3

Alextre的解決方案(雖然我不確定它的安全後果)事實上也適用於我。我從我的.env文件的APP_KEY設置的開頭刪除了「base64:」,然後將剩餘的關鍵字修剪爲32個字符(通過從行末尾簡單地刪除它們)。

我的設置是Ubuntu的16.04LTS Xenial用的Nginx和PHP 7

+0

該解決方案爲我工作太..但問心無愧會這樣突然出藍色的?我的網站是前幾天做工精細..然後突然作曲家更新開始做這個?...這種東西很討厭! – vesperknight

相關問題