CodeIgnter 报错 The Encrypt library requires the Mcrypt extension.

An Error Was Encountered
The Encrypt library requires the Mcrypt extension.

CI 框架 缺少 mcrypt 扩展

yum 安装 mcrypt

yum install libmcrypt libmcrypt-devel mcrypt mhash

源码编译没试,可参考这篇文章 

https://www.cnblogs.com/huangzhen/archive/2012/09/12/2681861.html

安装 php 的 mcrypt 扩展

扩展在 php 安装包的 ext 目录下

[root@instance-jewlel2q ~]# cd php-5.6.30/
[root@instance-jewlel2q php-5.6.30]# cd ext/mcrypt/
[root@instance-jewlel2q mcrypt]# /usr/local/php5/bin/phpize 

返回

Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
[root@instance-jewlel2q mcrypt]# ./configure --with-php-config=/usr/local/php5/bin/php-config

返回

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h

编译

[root@instance-jewlel2q mcrypt]# make
[root@instance-jewlel2q mcrypt]# make install
Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/

查看扩展目录

[root@instance-jewlel2q mcrypt]# cd  /usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/
[root@instance-jewlel2q no-debug-non-zts-20131226]# ll
total 2092
-rwxr-xr-x 1 root root  170080 Nov  1 17:02 mcrypt.so
-rwxr-xr-x 1 root root 1340288 Nov  1 14:59 opcache.a
-rwxr-xr-x 1 root root  623648 Nov  1 14:59 opcache.so

安装成功

向 php.ini 写入扩展目录

vim /usr/local/php5/lib/php.ini

重启,查看 phpinfo

采坑记录

php 的配置文件应放在 lib 目录下,自己在 ext 目录下一直不生效,换到 lib 目录下重载后生效了

CI CodeIgniter 添加打印 dump 公共函数(自定义函数)

CodeIgniter 公共函数通过 helper 辅助函数实现。

创建 common_helper.php 文件,定义所需公共函数,存放至 application/helpers 目录中。

<?php
  function dump($arr){
    echo "<pre>";
    var_dump($arr);
    echo "</pre>";
  }
  function dd($arr){
    echo "<pre>";
    print_r($arr);
    echo "</pre>";
  }
?>

在 application/config/autoload.php 中配置 $autoload[‘helper’] = array(‘common’);