2014-02-25 46 views
1

我正在嘗試安裝magento,它一直拋出錯誤「PHP擴展mcrypt必須加載」。當我嘗試安裝mcrypt時,我收到一條消息,說它已經安裝。不同版本的php正在使用

所以我在命令行運行php -vwhich phpphp -i | grep mcrypt和回來

PHP 5.4.23 (cli).... 

/usr/local/bin/php 

mcrypt 
mcrypt support => enabled 
mcrypt_filter support => enabled 
mcrypt.algorithms_dir => no value => no value 
mcrypt.modes_dir => no value => no value 

因此,我增加phpinfo(); die();到我的索引。 PHP magento文件,並返回

版本 5.4.17

配置文件(php.ini中)路徑 /等

加載的配置文件 /etc/php.ini中

,但沒有提及這個Mcrypt

我是否正確閱讀,因爲magento是使用不同版本的PHP來命令線是?如果是的話,我該如何解決這種情況?

我正在運行Magento的其他安裝,因此當我考慮嘗試刪除/ etc並讓Magento自動選擇正確的版本時,我決定不要這樣做,因爲我不希望其他安裝停止工作。

回答

0

回聲您的phpinfo()。通過cmd可以接收其他需要的信息。您將看到使用哪個PHP版本以及您的php.ini所在的位置。

打開php.ini並搜索;php_mcrypt.dll。刪除分號並重新啓動Apache。

編輯:Linux的版本:

  • apt-get install php5-mcrypt
  • service apache2 restart - 重新啓動Apache

如果你得到了 '已安裝' 的消息,你可以使用:

apt-get --reinstall install php5-mcrypt

請確保在php.ini中刪除分號:extension=mcrypt.so

+0

我試圖使用'apt-get install php5-mcrypt',但是我得到一個錯誤'command not found:'。我試圖安裝使用自制軟件的mcrypt,但它似乎默認爲'/ usr/local/bin/php',所以它告訴我mcrypt已經安裝 – tony09uk

+0

您使用哪種Linux發行版? 'apt-get'是Ubuntu的。你可以嘗試重新安裝'mcrypt'。 – GuyT

+0

我在Maverick版本上使用了一個mac。我的問題是,當我嘗試安裝mcrypt時,它似乎默認爲'/ usr/local/bin/php',這反過來告訴我'mcrypt'已經安裝 – tony09uk

0

當你說magento使用不同的php版本(儘管只是顛覆)時,你是對的。這很可能是您的cli .ini與apache不同.ini

您可以嘗試的是將extension = mcrypt.so添加到/ etc/php。ini並重新啓動apache

+0

感謝您的建議,但添加了'extension = mcrypt.so'並重新啓動沒有奏效。我找不到任何'.so'文件,所以我將它添加到'; extension = php_pspell.dll ; extension = php_shmop.dll',將位置有所作爲? – tony09uk