我试图安装在我的Ubuntu 10.04 LTS上的Web应用程序需要mcrypt,并且正在生成此错误:致命错误:调用未定义的函数mcrypt_module_open()。 我知道这是同一个问题: 安装php-mcrypt,但它不显示在phpinfo() ,但我尝试了几件事情,没有一个工作,并有其他问题。 我会评论最初的主题,但没有足够的声望去做; 原谅我的重复的问题。
我的版本的PHP和mcrypt(都通过apt-get安装):
php: 5.3.2-1ubuntu4.10 mcrypt: 5.3.2-0ubuntu
做一个php -m
显示安装了mcrypt
模块。 我通过apt-get
安装了mcrypt
和php5-mcrypt
。
另外,我使用nginx
作为我的web服务器。 我已经尝试重新安装mcrypt并重新启动nginx,但仍然无法让mcrypt显示在phpinfo()上,并且对mcrypt的调用仍然中断。
这里是一些更多的信息:
$ php -i | grep "mcrypt" /etc/php5/cli/conf.d/mcrypt.ini, mcrypt mcrypt support => enabled mcrypt.algorithms_dir => no value => no value mcrypt.modes_dir => no value => no value
我还检查了/etc/php5/cli/conf.d/mcrypt.ini
和/etc/php5/cgi/conf.d/mcrypt.ini
中的mcrypt。
最后,我用nginx使用fastCGI。 我search了一下,看到了重新启动php5-fpm的build议。 我无法在apt-get中findphp5-fpm,因为我已经有了fastCGI,所以我不确定是否还需要php5-fpm。
还有什么我失踪?
PHP-FPM是fastcgi进程pipe理器(或类似的东西); 这是保持PHP进程在nginx重启时保持活跃状态的常用方式。
从命令行ps aux
会告诉你什么在运行, 如果这是一个私人/testing服务器, sudo kill <process id>
任何有名字的PHP sudo kill <process id>
,直到所有的旧进程都死了(或上面评论,重新启动整个框); 如果它是一个公共/活的服务器,你可能不想这么鲁莽…
另外, /etc/php/cgi/...
/etc/php5/cli/conf.d/mcrypt.ini
/etc/php/cgi/...
/etc/php5/cli/conf.d/mcrypt.ini
– /etc/php/cgi/...
如果存在?