我有一个使用 mcrypt_decrypt() 函数的脚本,但出现以下错误
致命错误:调用未定义函数 mcrypt_decrypt()
我需要包含哪些模块/库才能使用此功能?还是我收到错误的另一个原因?
谢谢
sudo apt-get install php5-mcrypt
在 ubuntu 上工作。
使用 php5-fpm (Ubuntu 14.04) 配置 php5-mcrypt
我假设您已经安装并运行了 nginx 和 php-fpm。
php5-mcrypt 应该已经安装(它与 php5-fpm 捆绑在一起)。只是为了安全,apt-get install php5-mcrypt
创建指向 mods-available 的符号链接,ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
启用它。php5enmod mcrypt
重启php-fpm,服务php5-fpm重启
重启nginx,服务nginx重启
完毕!
从手册:
您需要使用 --with-mcrypt[=DIR] 参数编译 PHP 以启用此扩展。DIR 是 mcrypt 安装目录。确保使用选项 --disable-posix-threads 编译 libmcrypt。
通常如果 PHP 说一个函数是未定义的,这意味着你需要在某个库中编译。
我上面的不起作用,你可以试试这个:
在 /etc/php5/conf.d 中创建带有内容的 mcrypt.ini 文件
extension=mcrypt.so
我通过http://php-osx.liip.ch/将 PHP 升级到 5.4 ,它工作正常。
对于 php 5.3.X
取决于 yum mcrypt 包的可用性,您可以使用 yum 包
像这样: yum install php53-mcrypt 并重新启动 httpd
并注意 phpinfo 页面中的文件夹:“扫描此目录以获取其他 .ini 文件”和下一个:“已解析的其他 .ini 文件”。
升级到 php 5.4 运行后(Works)
sudo php5enmod mcrypt
sudo service apache2 restart