我在 Cent OS 6.5 上安装 php/apache 时遇到了问题,我使用的是 vagrant box,并在其中安装了 php-mcrypt,它似乎在命令行上运行良好
php -r 'echo extension_loaded('mcrypt'), PHP_EOL;'
返回 1(真)
但是当我尝试使用 Laravel 时,它会退出并显示“需要 Mcrypt PHP 扩展”。
在 start.php 中使用 extension_loaded('mcrypt') 的检查返回 false
当我创建一个 phpinfo() 页面时,我只能在“模块作者”中看到 mcrypt 条目,但在页面上的任何其他地方都看不到。
当我检查我的 /etc/php.d/ 文件夹时,我看到有一个 20-mcrypt.ini 文件引用了 mcrypt.so,但是这个初始化文件在 phpinfo() 页面的“解析的其他 .ini 文件”中不可用。
我该如何解决这个问题?
编辑:似乎命令行使用的 php 版本 (5.5.20) 与 apache 服务器 (5.5.16) 不同
我必须更新这个 php 版本才能安装 mcrypt,我使用了以下命令:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y update php55u
yum -y install php55u-mcrypt
执行过程没有错误,但也许这还不够?
答案1
好的,我找到了问题,确实是没有重新启动的服务(正如 etagenklo 所说)。我重新启动了 httpd 服务,但这不是必须重新启动的服务(服务 php-fpm)。这是一个没有文档的 vagrant box,所以我不知道我也必须重新启动此服务