2014-09-30 123 views
7

我在线上关于在Ubuntu上安装magento的教程,但我在配置中得到这个错误:php extension mcrypt must be loaded。我已经尝试过了:sudo apt-get install php5-mcrypt但这对我没有用。我与curl有同样的问题,但当我尝试:sudo apt-get install php5-curl它确实为我工作。我如何解决这个与mcrypt?我已经尝试重新启动网络服务器。必须加载php扩展mcrypt

+0

“没有工作”究竟意味着什么?它尝试安装和错误?它安装了,但mcrypt在PHP中不可见?它是否自发地燃烧你的服务器? – 2014-09-30 08:51:56

+0

@MarkBaker显然我的意思是删除错误... – Loko 2014-09-30 08:54:17

+0

这不是显而易见的,但仍然不明显.....当sudo apt-get install php5-mcrypt'时会显示什么输出?是否显示任何错误消息?我当然无法分辨mcrypt或curl的安装是否失败,或者如果您只是没有正确配置PHP来使用它们 – 2014-09-30 09:01:33

回答

31

希望你的系统是Ubuntu的,因为你添加了标签。

在Ubuntu上运行sudo apt-get install php5-mcrypt时,它实际上并没有将扩展安装到mods-available中。你需要将它符号链接起来。

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini 

然后启用扩展并重新启动Apache。

sudo php5enmod mcrypt 
sudo service apache2 reload 
+2

我不确定你需要符号链接步骤,因为当我调用'php5enmod'时,它总是放在正确的位置。另外,你可能会在Apache上使用'reload'而不是'restart'。 – Treffynnon 2014-09-30 08:57:24

+2

@Treffynnon,正确的,只是php5enmod会在这里工作。是的,我们可以重新加载而不是重新启动。编辑相同。谢谢... – 2014-09-30 09:07:14

+0

在Ubuntu 14.04中,只需启用扩展并重新启动apache即可。另见http://magento.stackexchange.com/q/36954/26260和http://askubuntu.com/q/380280/18928。 – user272735 2015-05-14 17:43:08

0

您应该编辑php.ini并删除;在加载extension = php_mcrypt的行之前(你应该在之后重新启动apache)。

+0

在什么地图是php.ini使用apache btw时? – Loko 2014-09-30 08:54:58

+0

run'<?php phpinfo(); ?>'并搜索'Loaded configuration file' – giorgio 2014-09-30 08:55:41

1

我不知道为什么你的PHP.INI与我的略有不同。或者为什么我不需要使用PHP5ENMOD。

这是我如何解决同样的问题:

1)确保它是安装在我的分布,这是不是大多数人所遇到的问题。

2)检查PHP配置,确保它已加载(不是)。以下是PHP配置信息页的代码:

<?php 
phpinfo(); 
?> 

在浏览器中运行它。如果这个Mcrypt启用(这是),你会看到专门为它simmilar信息的整个表(你会看到这个版本):

mcrypt 
mcrypt support enabled 
mcrypt_filter support enabled 
Version  2.5.8 
Api No 20021217 
Supported ciphers cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes 
Supported modes  cbc cfb ctr ecb ncfb nofb ofb stream 

Directive Local Value Master Value 
mcrypt.algorithms_dir no value no value 
mcrypt.modes_dir no value no value 

3)在同一页上找位置你的PHP.INI文件。例如:

Configuration File (php.ini) Path /etc/php5/apache2 
Loaded Configuration File /etc/php5/apache2/php.ini 

我的分布具有不同的位置这个文件,但对Linux只需添加或去掉注释让您有:

extension=mcrypt.so 

重新启动Apache服务器,以确保。您现在应该检查您的配置页并查看MCRYPT已加载。

+0

'extension = mcrypt.so'做了这个工作 – turson 2016-03-24 09:24:27

0

嗨只是复制此CMD线和终端粘贴

sudo apt-get install php5-intl 
sudo apt-get install php5-xsl 
sudo php5enmod xsl 
sudo service apache2 restart 
0

在我的情况下,使用Nginx的和PHP-FPM,一旦启用进一步扩展通过这个命令:sudo php5enmod mcrypt我需要重新启动php5- fpm使用这个命令:sudo service php5-fpm restart