[英]Notice: Undefined property: User / Fatal error: Call to undefined function mcrypt_create_iv()
[英]can't find mcrypt => Call to undefined function Laravel\mcrypt_create_iv()
試圖設置Laravel並繼續遇到此錯誤。 我通過brew安裝了mcrypt,它位於/ usr / local / Cellar。 有什么想法嗎? ..它沒有出現在終端命令php -m中,如果這很重要。 我正在使用macs本地Web服務器運行Mountaion Lion。
Ubuntu或任何基於Debian的Linux用戶都可以使用apt-get
安裝所需的包:
sudo apt-get install php5-mcrypt
請記住以后重新啟動Web服務器:
sudo service apache2 restart
如果仍然不起作用,請嘗試將配置文件鏈接到Web服務器的相應配置文件夾。 感謝dave1010在評論中的這個暗示。
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/ # for Apache
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cli/conf.d/ # for CLI
再次,重新啟動Web服務器:
sudo service apache2 restart
也許,如果還沒有工作,你還需要@RahulPrasad用php5enmod mcrypt
顯示的行。
您還需要在php.ini
文件中啟用它,並可能重啟Apache。
在php.ini
你會發現;mcrypt.so
並刪除;
從中。
或者,如果它不在那里,只需在某處添加mcrypt.so
。
從PHP 7.0.0開始,salt選項也已被棄用。 現在優選簡單地使用默認生成的鹽。
試試sudo php5enmod mcrypt && sudo service apache2 restart
當你真正想要php56-mcrypt
php模塊時,你已經安裝了mcrypt
。
您在問題中說明您可以在/usr/local/Cellar
看到mcrypt
,並且您正在使用OSX
。 因此,使用Homebrew在OSX上安裝mcrypt PHP模塊的最簡單方法是:
// assuming you have php56
brew install php56-mcrypt
如果自制軟件找不到正確的軟件包,您可能需要點擊GitHub上的PHP存儲庫 :
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
現在,當您發出命令brew search mcrypt
,您應該看到如下內容:
libtomcrypt mcrypt php53-mcrypt php54-mcrypt php55-mcrypt php56-mcrypt
其他幾個海報都提到了編輯php.ini
文件的必要性。 這是不必要的,因為自制軟件將負責為您激活模塊。 它將配置文件放在/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini
您可能已經安裝了mycrypt但沒有安裝/啟用php_mcrypt模塊。
轉到php instalation中的CLI文件夾,在那里找到php.ini並啟用mcrypt。 終端有時使用另一個php.ini,它通常位於CLI文件夾中。
我用Homebrew安裝了php和mcrypt,但是在做了幾次brew update
后我仍然遇到了這個錯誤。 我認為我的設置隨着時間的推移而變得有點不穩定。
事實證明我的php是從/private/etc/php.ini配置的, 而不是 /usr/local/etc/php/5.4/php.ini,正如Homebrew建議的那樣。 Mcrypt甚至沒有包含在/usr/local/etc/php/5.4/ext-mcrypt.ini中 ,考慮到php -i
為我生成這個內容並沒有多大意義:
Configuration File (php.ini) Path => /usr/local/etc/php/5.4
Loaded Configuration File => /usr/local/etc/php/5.4/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/5.4/conf.d
Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini
我的解決方案
/private/etc/php.ini
extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so"
並保存 sudo apachectl restart
啟動Apache 這最終對我有用:
brew reinstall --with-homebrew-curl --with-httpd php56
brew reinstall --build-from-source php56-mcrypt
我還必須做sudo chmod 777 /usr/local/etc/php/5.6/conf.d
因為我在第二次brew reinstall
嘗試將ext-mcrypt.ini
添加到該目錄時ext-mcrypt.ini
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.