Php5打不开php7网站,从php5切换php7成功

博主分享了在Ubuntu14环境下升级PHP7的详细步骤,包括停用PHP5、启用PHP7和重启Apache2。在升级过程中遇到Mcrypt模块缺失的问题,通过安装mcrypt和php7.0-mcrypt解决了此问题。另外,还发现PHP7的密码函数存在兼容性问题,并给出了相应的解决办法。此外,由于缺少gd库导致验证码无法显示,安装php7.0-gd后成功修复。
摘要由CSDN通过智能技术生成

看到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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值