记一次解决问题的过程

最近在测试建行的一个接口,在本地(PHPStudy2016+PHP5.4)测试好后,传到线上服务器,发现一片空白。

后来,一路排查,找到问题所在:

function des_encrypt($data,$deskey){
		$blocksize = mcrypt_get_block_size(MCRYPT_DES,MCRYPT_MODE_ECB);
		$pad = $blocksize - (strlen($data) % $blocksize);
		$data1 = $data. str_repeat(chr($pad),$pad);

		$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_DES,MCRYPT_MODE_ECB),MCRYPT_RAND); //初始化向量
		@$data_encrypt  = mcrypt_encrypt(MCRYPT_DES,$deskey,$data1,MCRYPT_MODE_ECB);//加密函数
		$datastr = bin2hex($data_encrypt);
		return $datastr;
	}

到这一步,发现了一堆的常量,其中出现了MCRYPT,这不就是php的一个扩展嘛?于是赶紧phpinfo,对比本地和线上,发现本地是有mcrypt扩展的,线上的没有,于是赶紧给线上的安装了mcrypt扩展( 委屈我记得之前是装有的啊,之前用nginx,最近改用了apache,看见程序跑起来了也没细看,也不太确定是不是换apache后一直没有开mcrypt扩展...)

#yum install libmcrypt libmcrypt-devel mcrypt mhash php-mcrypt

大笑然后再看,mcrypt出来了。程序恢复正常了。


从这里可以知道一件事,不懂测试的运维不是好的PHP程序猿可怜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值