一、开启fileinfo
1、进入lnmp安装文件夹根目录:/root/lnmp1.5/src/
2、解压php安装包:tar -jxvf php-7.0.30.tar.bz2
3、进入php安装文件目录:cd php-7.0.30
4、进入fileinfo文件夹:cd ext/fileinfo
5、执行:/usr/local/php/bin/phpize
6、执行:./configure --with-php-config=/usr/local/php/bin/php-config
7、执行:make && make install
8、更改php.ini加入so文件
打开/usr/local/php/etc/php.ini
在末尾加入:extension = fileinfo.so
9、重启lnmp
执行:lnmp restart
10、phpinfo()检查是否开启
二、手动安装、开启mcrypt
1 | ErrorException: Function mcrypt_enc_get_key_size() is deprecated in /home/wwwroot/··· |
升php之后,出现上述错误,因为从php7.1+ 开始,php默认不安装mcrypt,但是php包中还是会有mcrypt代码提供编译安装,可以自行手动编译打包安装;
但从php7.2开始,mcrypt已经从安装包中移除,只能使用pecl安装
1、PHP7.1+安装
1)编译打包安装,以php7.1.26为例(7.2+参考步骤2):
1 | cd /php-7.1.26/ext/mcrypt |
2、PHP7.2安装过程
1)下载、安装必要插件
1 | yum install libmcrypt libmcrypt-devel mcrypt mhash //安装必要的工具 |
2) 开始安装
1 | /usr/local/php/bin/phpize |
3、编辑php.ini
PHP7.1,将
;mcrypt.modes_dir=
改为mcrypt.modes_dir=/usr/lib64/php/modules
PHP7.2,需要手动加入
1
2
3 > extension = mcrypt.so
> mcrypt.modes_dir=/usr/lib64/php/modules
>
4、检查是否已安装完毕
重启php、apache、nginx等
运行php -m
查看是否已经加载mcrypt模块1
2
3
4
5
6
7
8
9
10
11# php -m
[PHP Modules]
bcmath
//前后省略···
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
//前后省略···
5、修改代码
mcrypt_enc_get_key_size()
需要改为@mcrypt_enc_get_key_size()
通过@
符号使代码强制运行起来,不然还是会报deprecated错误