最近将phpcmsV9升级至php7.1,中间踩过一些坑,这里列出来给大家参考下。

1. 迁移至php7.1+mysql5.6+nginx的修改项目

已修改 : /phpcms/libs/classes/checkcode.class.php

已修改 : /phpcms/libs/classes/db_factory.class.php

已增加 : /phpcms/libs/classes/db_mysqli.class.php

已修改 : /phpcms/libs/classes/model.class.php

已修改 : /phpcms/libs/classes/template_cache.class.php

已修改 : /phpcms/libs/classes/update.class.php

已修改 : /phpcms/libs/functions/global.func.php

已修改 : /phpcms/modules/admin/cache_all.php

已修改 : /phpcms/modules/content/fields/editor/output.inc.php

已修改 : /phpcms/modules/content/fields/title/output.inc.php

2. 函数htmlspecialchars()在php7下严格校验编码,导致空白,修改为new_html_special_chars()方法:

已修改 : /phpcms/modules/content/fields/content_form.class.php

已修改 : /phpcms/modules/content/fields/omnipotent/field_edit_form.inc.php

已修改 : /phpcms/modules/content/fields/textarea/field_edit_form.inc.php

已修改 : /phpcms/modules/yp/fields/omnipotent/field_edit_form.inc.php

已修改 : /phpcms/modules/yp/fields/textarea/field_edit_form.inc.php

已修改 : /phpcms/modules/yp/fields/title/output.inc.php

已修改 : /phpcms/modules/yp/fields/yp_form.class.php

所有以上修改/增加的文件,均在下面压缩包中,建议下载后对比查看,不建议直接替换;

其中global.func.php仅修改不可替换,请自行对比文件改动的地方;

3.修改database.php的type值为mysqli;

注意事项:

A.php7.1对函数参数个数严格校验,对函数形参一定要赋默认值,否则直接Fatal error: Uncaught ArgumentCountError: Too few arguments to function;

B.htmlspecialchars严格编码,以前在php5.2下正常使用的,需要修改为 new_html_special_chars() 具体函数定义见 global.func.php;

C.数据库5.6对老版本5.0的listorder-1问题,将字段设置为有符号即可;

D.伪静态规则升级,与httpd.ini变化不太大,需要逐条测试;

E.MySQL函数mysql_在php7中废弃,代之以mysqli_函数;

伪静态rewrite规则而升级遇到一个坑,就是中文url的问题,我是这么解决的:

#tags

rewrite ^(.*)/tags/?([A-Za-z]?)/(?:page([0-9]+))?/?$ $1/index.php?m=tags&c=index&a=init&letter=$2&page=$3 last;

rewrite ^(.*)/tags/?(?:page([0-9]+))?/?$ $1/index.php?m=tags&c=index&a=init&page=$2 last;

rewrite ^(.*)/tags/([^/.]+)/?(?:page([0-9]+))?/?$ $1/index.php?m=tags&c=index&a=init&tag=$2&page=$3 last;

重点看第三条,直接匹配tags/后的所有字符,然后让前两条规则优先,解决冲突的问题;经过GET打印测试,匹配完美。

本文由久久博客www.99xq.cn原创,转载请注明出处。

phpcmsv9mysql扩展_phpcmsV9升级到php7.1+mysql5.6+nginx1.9迁移步骤nginx中文伪静态rewrite配置...相关推荐

  1. mac php7 mysql 扩展_升级到php7和安装拓展(mac centos)

    Mac升级到php7 使用homebrew安装php7 brew update #更新源 brew search php #查找源中的php,发现有php7.1版本,安装最新的php7.1 brew ...

  2. centos6.8 编译安装lnmp php7.2 mysql5.6 nginx1.1.4

    编译操作参考版,没有每一步详细操作,慎入 关闭selinux和防火墙 service iptables stop chkconfig iptables off vi /etc/selinux/conf ...

  3. linux php环境升级,php5.6升级到php7.1.10(Linux环境)

    环境说明:nginx+php 无需删除旧的php5版本,升级步骤如下: 0.,关闭php-fpm(如果有) service php-fpm stop 1.拉取php7.1.10 tar包 $wget ...

  4. CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7

    2019独角兽企业重金招聘Python工程师标准>>> CentOS 7 + nginx-1.12 + php-7.2 + MySQL-5.7 使用 Netkiller OSCM 一 ...

  5. php7 php5.6 array,[转]php5.6 升级到php7及变化

    不向后兼容的变更 错误和异常处理相关的变更 在 PHP 7 中,很多致命错误以及可恢复的致命错误,都被转换为异常来处理了. 这些异常继承自 Error 类,此类实现了 Throwable 接口 (所有 ...

  6. Ubuntu 平滑升级到PHP7

    2019独角兽企业重金招聘Python工程师标准>>> 基本上算是平滑升级,当然前提是要保证代码可以兼容 php7 #添加源 apt-get install python-softw ...

  7. 有必要升级到php7,升级到 PHP 7.4

    人们期待已久的 PHP 7.4最新版本于2019年11月28日发布. 它有很多新功能,例如 类型属性 箭头函数 有限返回类型协变与参数类型逆变 打包内部数组 数值文字分隔符 弱引用 允许从 __toS ...

  8. 如何简单的在阿里云centos7.6 64位操作系统上手动搭建LNMP环境(Nginx1.14.2+PHP7.x+mysql5.7)

    步骤如下: 开通云服务器 建站首先要有服务器和域名,对于个人使用的小型网站,一台1核CPU|2G内存|1M带宽|40G系统盘的云服务器ECS实例即可满足需要.目前国内主流云服务提供商为阿里云.腾讯云. ...

  9. 升级到php7和安装拓展(mac centos)

    Mac升级到php7 使用homebrew安装php7 brew update #更新源 brew search php #查找源中的php,发现有php7.1版本,安装最新的php7.1 brew ...

最新文章

  1. python三维图形渲染-基于VTK/numpy的三维图像渲染与可视化
  2. linux 内存日志,性能优化:使用ramlog将日志文件转移到内存中
  3. POJ3263-Tallest Cow【前缀和】
  4. 全国土壤湿度数据集/土壤水分数据
  5. [HTML] Prettify 代码高亮使用总结
  6. D4 数据分析实例:分析movielens电影数据+pandas核心数据结构
  7. 普中51单片机开发板笔记
  8. 用于目标检测的细粒度动态头
  9. 一年级古诗《画》知识点心田花开汇总
  10. 百度EasyDL图像分类的使用
  11. h2o java,R H2O与32位java
  12. 第五章第二十八题(显示每月第一天是星期几)(Display the first days of each month)
  13. Babylon.js 第28章 多面体
  14. Linux学习笔记(1)----配通网络
  15. systemd工具介绍
  16. linux学习篇 之 复制、黏贴、删除、撤销
  17. html发展时间轴纵向插件,jquery响应式垂直时间轴插件vertical-timeline
  18. 海康威视web插件层级遮挡问题,仅供参考
  19. Content Delivery Networks CDN 内容分发网络
  20. uni-app小程序滑动到顶部固定

热门文章

  1. linux文件的定义变量的值,linux $变量含义($0,$1,$2,$#,$@) ----linux 基础
  2. Java 必知必会的 20 种常用类库和 API
  3. SpringBoot 2.0 教程实战 MySQL 读写分离
  4. 数据结构值排序算法(三)-快速排序
  5. CSS阴影box-shodow总结
  6. 连接池Connection Pool 单例设计
  7. Java常用类之【八种基本数据类型】
  8. vs2017c语言程序添加图标,笔试编程必备技巧——Visual Studio 2017添加自定义代码片段...
  9. Android JNI的第一步——从HelloWorld开始
  10. linux 日志监控工具,详解 Linux系统常用监控工具