我要安装php的mcrypt扩展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我要安装php的mcrypt扩展相关的知识,希望对你有一定的参考价值。

我要安装php的mcrypt扩展,我先编译安装了Libmcrypt,到安装mcrypt时,告诉我configure: error: *** libmcrypt was not found
什么原因啊?

[root@CentOStest mcrypt-2.6.8]# yum install libmcrypt libmcrypt-devel mcrypt mhash
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.esocc.com
* extras: mirror.esocc.com
* updates: mirror.esocc.com
Setting up Install Process
No package libmcrypt available.
No package libmcrypt-devel available.
No package mcrypt available.
No package mhash available.
Error: Nothing to do

yum源安装也装不上,编译的时候,也装不上啊
我找到答案啦;
方法一:

configure: error: *** libmcrypt was not found
找了相关资料,得出解决方法明明我安装了libmcrypt 2.5.8 ,可是竟然提示没有发现!然后在/usr/local/bin/找到了LIBMCRYPT_CONFIG ,这一步明确了是PATH变量的问题 !
方法是ln -s /usr/local/bin/libmcrypt_config /usr/bin/libmcrypt_config
之后继续进行./configure
方法二:
configure: error: *** libmcrypt was not found

继续查找,还是变量的问题
解决方法如下:运行 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
然后make ; make install
完成

参考技术A 用lamp+lnmp一键安装包phpstudy for linux。支持多个php版本一键切换。超级简单,phpstudy既有win版也有linux版本追问

我没有用过,感觉很神奇啊

追答

你试试就知道了

官方网站有安装步骤

参考技术B 赞一个,哈哈,刚想说的,结果你自己都解决了追问

谢谢啦,我谷歌到的,o(∩∩)o...哈哈

追答

是啊,一般,百度、谷歌一下,实在不行了,在问,会收获很大的

安装 Laravel 时出错:需要 Mcrypt PHP 扩展

【中文标题】安装 Laravel 时出错:需要 Mcrypt PHP 扩展【英文标题】:Error Installing Laravel: Mcrypt PHP extension required 【发布时间】:2014-09-20 07:36:23 【问题描述】:

我知道在 SO 上有很多关于此的问题,但没有一个能解决我的问题。我已经检查了他们提到的所有内容似乎都表明 mcrypt 没问题,除了安装 Laravel 时。显然我错过了一些东西。

按照指示 (composer create-project laravel/laravel myproj --prefer-dist) 安装 Laravel 时,我在安装快要结束时收到错误“需要 Mcrypt PHP 扩展”。

据我所知,mcrypt 安装并启用。

Composer 使用/usr/bin/env php

$ which composer       
/usr/local/bin/composer

$ cat /usr/local/bin/composer
#!/usr/bin/env bash
/usr/bin/env php -d allow_url_fopen=On -d detect_unicode=Off /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar $*%   

我的 PATH 上的 php 是来自 MAMP 的 5.5.10

$ php --version
PHP 5.5.10 (cli) (built: Apr 10 2014 17:49:22)

$ which php
/Applications/MAMP/bin/php/php5.5.10/bin/php   

Mcrypt 已安装并启用

$ php -m | grep mcrypt
mcrypt

$ php --info | grep mcrypt                  
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value

$ php --ini                                 
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.5.10/conf
Loaded Configuration File:         /Applications/MAMP/bin/php/php5.5.10/conf/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

$grep mcrypt /Applications/MAMP/bin/php/php5.5.10/conf/php.ini      
extension=mcrypt.so

我也可以通过 MAMP 在 phpinfo 页面中看到 mcrypt support enabled

我错过了什么?

编辑:我在.bash_profile 中有export PATH="/Applications/MAMP/bin/php/php5.5.10/bin:$PATH",可以通过echo $PATHwhich php 确认

更新:一条线索。

如果我将/usr/local/bin/composer 编辑为:

#!/usr/bin/env bash
echo $PATH
/usr/bin/env php --ini

然后运行 ​​composer 我明白了

/usr/bin:/bin:/usr/sbin:/sbin
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         (none)
Scan for additional .ini files in: /Library/Server/Web/Config/php
Additional .ini files parsed:      (none)

为什么那个 PATH 不一样?

【问题讨论】:

可能有点远,但mcrypt.so 文件是否在配置的extensions 目录中? 检查laravel.io/forum/…。 Composer 可能仍在使用系统 PHP 二进制文件(由于 /usr/bin/env php 是的,是的。我可以在 ini 中指定的目录中看到mcrypt.so,并且我的路径上有 MAMP php bin 文件夹(请参阅编辑) 等一下...您编辑上方的所有内容都使用/Applications/MAMP/bin/php/php5.5.10,但您的PATH 包含/Applications/MAMP/bin/php/php5.4.19。我会说那是你的问题。最近升级了 MAMP? 我完全不知所措。这就是我在 mac 上使用 Vagrant 的原因 【参考方案1】:

从您发布的内容来看,composer 使用的 PHP 安装似乎与您的 MAMP 版本不同。一种解决方法是改用 PHAR 版本:

wget https://getcomposer.org/composer.phar
php composer.phar create-project laravel/laravel myproj --prefer-dist

如果您的 CLI php 将 mcrypt 注册为已安装的模块,这将解决您的安装问题。

【讨论】:

你会这么认为,但即使这样也行不通(同样的错误)。 @Jake - 你安装了 libmcrypt 吗?您是否已验证您能够通过 CLI 运行 mcrypt 函数? @SamDufel 好主意。像php -r 'echo MCRYPT_ENCRYPT, PHP_EOL;' 这样的东西就足够了(结果应该是0【参考方案2】:

我能找到的唯一方法是编辑 /usr/local/bin/composer 并在其中设置 PATH,如下所示:

#!/usr/bin/env bash
export PATH="/Applications/MAMP/bin/php/php5.5.10/bin:$PATH"
/usr/bin/env php -d allow_url_fopen=On -d detect_unicode=Off /usr/local/Cellar/composer/1.0.0-alpha8/libexec/composer.phar $*

它很hacky,我仍然想知道我的环境发生了什么,但它可以工作!

【讨论】:

【参考方案3】:

让 Laravel 在 Apache 上工作

PHP 版本:PHP 5.5.9

Ubuntu 版本:14.04

经过大量的反复试验和搜索,这就是我发现的。我在 Windows 上有一个工作的 laravel 项目,我将它复制到 ubuntu 服务器并开始收到 mcrypt 错误。

让工匠命令发挥作用

我做了很多试验和错误,所以每次我之前运行 php5enmod 命令时,我都会收到错误消息。但是在全新安装时没有错误消息。在这一步之后,我得到了工匠命令的工作

sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

修复浏览器错误

sudo nano /etc/php5/apache2/php.ini

在 php ini 的动态编译扩展部分下添加以下行

extension=mcrypt.so

重启 apache 服务器,清除 laravel 缓存,一切正常

【讨论】:

如何“清除 laravel 缓存”?【参考方案4】:

我也遇到过类似的问题,下面的命令对我有用。

sudo apt-get install php5-mcrypt

希望它对你也有用。

【讨论】:

以上是关于我要安装php的mcrypt扩展的主要内容,如果未能解决你的问题,请参考以下文章

PHP安装扩展mcrypt以及相关依赖项 PHP安装PECL扩展的方法

ubuntu14php5.5安装mcrypt扩展

php7.2 安装mcrypt扩展

在 Mac OS X 10.5.8 上为 PHP 安装 Mcrypt 扩展

无法安装 php mcrypt 和 intl 扩展

用wampserver配置PHP环境,想使用PHP的mcrypt加密扩展库进行加密应该怎么安装扩展库?