从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
2019-03-20 19:47
2016-06-08 15:30