问题描述
ubuntu 14.04上的php mcrypt扩展表明它已正确安装,但phpmyadmin说:
The mcrypt extension is missing. Please check your PHP configuration.
我目前的PHP配置是here。如果您需要更多信息,请通过评论与我联系。
$ sudo apt-get install php5-mcrypt
Reading package lists... Done
Building dependency tree
Reading state information... Done
php5-mcrypt is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
最佳解决方法
尝试这个:
sudo updatedb
locate mcrypt.ini
应该显示它位于/etc /php5 /mods-available
locate mcrypt.so
编辑mcrypt.ini并更改扩展名以匹配mcrypt.so的路径,例如:
extension=/usr/lib/php5/20121212/mcrypt.so
现在这个:
sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)
确认这里存在新文件(它们应该根据上述问题自动创建)
ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini
否则,执行以下操作
现在创建符号链接
sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/cli/conf.d/20-mcrypt.ini
sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
重新启动Apache
sudo service apache2 restart
重新启动php5或php5-fpm
sudo service php5 restart
次佳解决方法
试试这样做:
sudo php5enmod mcrypt
接着:
sudo service apache2 restart
我已将新鲜的Ubuntu 14.04(桌面版)安装到我的电脑上。这种方式适用于启用已经安装的mcrypt。
第三种解决方法
为PHP安装mcrypt
扩展,启用它并重新启动Apache。以下是要执行的命令:
sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
第四种方法
php5-mcrypt Ubuntu软件包将配置文件mcrypt.ini
安装到旧的PHP配置目录布局/etc/php5/conf.d/
中。
目前在PHP5中启用模块的工作方式是将ini文件放入/etc/php5/mods-available
目录中。然后,要在PHP5中启用该模块,必须创建一个到/etc/php5/apache2/conf.d
目录中的相关ini文件的符号链接,以便在Apache或/和/etc/php5/cli/conf.d
下使用PHP时启用该模块(如果您希望在使用该模块时启用该模块在Apache之外的PHP中,在命令行或crontab中运行的脚本中。
另请注意,在conf.d
目录中,您可以通过在其前面放置一个数字来创建指向ini文件的链接,以便按特定顺序加载模块。需要根据另一个模块加载模块时有用。
当然,如果你为Apache启用了这个模块,别忘了重启Apache:
sudo service apache2 restart
第五种方法
我的14.04服务器安装只需要(安装php5-mcrypt后)
sudo php5enmod mcrypt
sudo service apache2 restart
第六种方法
如果问题仍然存在,
通过添加:extension=mcrypt.so
来启用该模块
/etc/php5/cli/php.ini
和
/etc/php5/apache2/php.ini