最近打算上个小程序新项目,后端使用Java和Python,内存占用大概400多M,无奈云服务器只有2G内存(实际1.7G),常常内存爆满,而升级到4G内存又没必要,毕竟公益项目能省则省。想了想,服务器里面有PHP7.4和PHP8.0两个版本,于是决定将所有PHP网站全部迁移到PHP8.0环境。记录一下过程,可作参考。
一、常见错误
Warning: Undefined array key “type”
未定义的数组,常见于if判断条件语句里引用数组元素,解决办法:利用isset()函数和三元运算赋值
$url = isset($_GET['url']) ? $_GET['url'] : null;
// 或者
$url = isset($_GET['url']) ? $_GET['url'] : "";
Notice: Undefined offset: param
$array[param],其中param被认为是变量,解决办法:param加引号
Fatal error: Array and string offset access syntax with curly braces is no longer supported
不能使用花括号来访问数组或者字符串的偏移,解决办法:将{}修改成[]
二、常用技巧
遇到实在找到解决办法的,直接加上忽略报错
error_reporting(0);
三、性能优化
为避免内存溢出死机,建议定时重启php和redis,对于宝塔面板可以使用命令
/etc/init.d/php-fpm-80 restart
/etc/init.d/redis restart