2014-02-25 47 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