从php5切换php7成功

看到3.1.9官方正式注释了php版本检测代码,看起来是有较大把握了。 今天开始升级php。
 
我的环境:ubuntu 14, apache2
 
教程参考:http://askubuntu.com/questions/760907/upgrade-to-16-04-php7-not-working-in-browser
 
简单来说有以下步骤:
1,先安装php7,这个自己搜索了。
2,这是停Php5
sudo a2dismod php5 
3,这是开php7
sudo a2enmod php7.0 
4,重启apache2:
sudo service apache2 restart
 
然后发现错误:Error: Mcrypt Module not support
搜索WC代码,发现在
UPLOAD\system\core\crypt.php 中 有一句: if (!function_exists('mcrypt_module_open'))
表示,不存在mcrypt_module_open函数,去到万能的SO,
http://stackoverflow.com/questions/34083470/php7-laravel-mcrypt-issue
然后输入以下命令:
sudo apt-get update 
sudo apt-get install mcrypt php7.0-mcrypt 
sudo apt-get upgrade
sudo service apache2 restart
 
有惊无险。要知道我是在线上直接更新的(虽然没什么用户在访问)。性能方面的提升还没有观察。
 
欢迎交流。
 
---------------------
补充,php7这逼自带的密码函数有问题
参考 http://stackoverflow.com/questions/30475946/mcrypt-encrypt-not-working-properly-on-php-5-6-9  第二个回答:

$ivSize = 8; 
$iv = str_repeat("\0", $ivSize); 
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_3DES, $key, $padded, MCRYPT_MODE_CBC, $iv));
 
就是说,我们要手动根据密钥的长度传入这个iv长度。而以前的版本是自动填的。好坑。
 
----------------------
第二个坑:无法显示验证码
解决,加上gd库。。
sudo apt-get install php7.0-gd
sudo service apache2 restart
参考网页:http://stackoverflow.com/questions/34367917/install-php70-gd-on-ubuntu

1 个评论

Stack Overflow 这逼做的问答网站不错啊

要回复文章请先登录注册