设为首页 收藏本站
查看: 808|回复: 0

[经验分享] 缺少mcrypt 扩展。请检查 PHP 配置。(源码方式安装php扩展mcrypt)

[复制链接]

尚未签到

发表于 2018-12-21 11:05:10 | 显示全部楼层 |阅读模式
  今天在安装phpmyadmin,打开页面后出现错误"缺少mcrypt 扩展。请检查 PHP 配置。"
  在网上找了很久找到如下文章,按照操作后解决(原文:http://koda.iteye.com/blog/420991)
  本文实际上是在CentOS下进行的,原理和在Ubuntu下源码安装一样,下图首先示例mcrypt和php的依赖关系

  基本原理是:首先使mcrypt软件能够运行,然后安装php扩展模块,并在php.ini配置。
  这里注意的是mcrypt软件依赖libmcrypt和mhash两个库,所以安装配置顺序从右至左
  I 下载安装mcrypt
  1.先去http://www.sourceforge.net下载Libmcrypt,mhash,mcrypt安装包,下面是我找到的链接
  Libmcrypt(libmcrypt-2.5.8.tar.gz):http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459
  mcrypt(mcrypt-2.6.8.tar.gz ):http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101
  mhash(mhash-0.9.9.9.tar.gz):http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636
  2.先安装Libmcrypt
  #tar -zxvf libmcrypt-2.5.8.tar.gz
  #cd libmcrypt-2.5.8
  #./configure
  #make
  #make install
  说明:libmcript默认安装在/usr/local
  3.安装mhash
  #tar -zxvf mhash-0.9.9.9.tar.gz
  #cd mhash-0.9.9.9
  #./configure
  #make
  #make install
  4.安装mcrypt
  #tar -zxvf mcrypt-2.6.8.tar.gz
  #cd mcrypt-2.6.8
  #LD_LIBRARY_PATH=/usr/local ./configure
  ----------------------------------------------
  报错:
  *** Could not run libmcrypt test program, checking why…
  *** The test program compiled, but did not run. This usually means
  *** that the run-time linker is not finding LIBMCRYPT or finding the wrong
  *** version of LIBMCRYPT. If it is not finding LIBMCRYPT, you’ll need to set your
  *** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
  *** to the installed location Also, make sure you have run ldconfig if that
  *** is required on your system
  ***

  *** If you have an old version installed, it is best to remove it,>  *** you may also be able to get things to work by modifying LD_LIBRARY_PATH
  ***configure: error: *** libmcrypt was not found
  --------------
  解决方法:
  ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
  ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
  ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
  ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
  ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
  export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
  ./configure
  ---------------------------------------------
  #make
  #make install
  说明:由于在配置Mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库在/usr/local/文件夹下。因些在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local导入键接库
  II. 安装PHP扩展模块
  接着就要为PHP添加mcrypt模块了
  1. 静态编译
  在任意PHP文件中加入函数 phpinfo(),即可取得目前PHP的配置
  在这些配置后面新增需要加入的配置:’–with-mcrypt=/usr/local/include’
  然后进入php源代码目录,执行这条完整的configure命令
  配置完成,下面进行源码包的制作和安装
  make clean (一定需要)
  make
  make install
  2. 动态加载
  使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,于是可以采用phpize。方法是:
  要有与现有php完全相同的php压缩包。我用的是php-5.2.6.tar.gz。 展开后进入里面的ext/mcrypt目录(里面是mcrypt的php扩展),然后执行/usr/local/php/bin/phpize。phpize是安装php时安装好的一个工具,如果你的机器没有安装phpize工具,那么可能还是要make,make install php,仅仅为了得到phpize.
  执行完后,会发现当前目录下多了一些configure文件, 如果没报错,则根据提示运行
  ./configure --with-php-config=/usr/local/php/bin/php-config
  注意要先确保/usr/local/php/bin/php-config存在。
  make
  make install
Php代码:./configure --with-php-config=/usr/local/php/bin/php-config  make install 之后系统会提示你mcrypt.so文件所在的目录。
  在php.ini中添加extension_dir指向的目录(上述make install后出现的目录), 将其复制过去。并添加extension=mcrypt.so
  最后重启APACHE服务,万事OK。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-653962-1-1.html 上篇帖子: php验证省份证类 下篇帖子: 开玩笑利器:php短信轰炸源码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表