ThinkPHP3.2.3怎么从php5升级到php7

首先ThinkPHP3.2.3支持php7吗, 绝对支持。

windows下,之前用的项目是部署在Apache2.4.17+php5.x版本, 因为客户那边网络安全扫描,发现很多漏洞,其中有apache、php的高危漏洞,多达上百次, 急需修复,如不修复将面临站点关闭的风险。

于是联系软件供应商,那边之前答应配合升级,最终未能升级, 给到的回复是ThinkPHP3.2.3不能部署在php7。

于是只能靠自己,摸索了三四天, 终于升级成功,现在跟大家分享一下大致过程。

一、升级apache, 下载地址http://httpd.apache.org/download.cgi ,下载的版本是,2.4.33

其中最主要的就是配置文件如下图:

ThinkPHP3.2.3怎么从php5升级到php7

apache加载php支持

PHPIniDir d:/GPS-LOCK/php/php.ini

LoadModule php7_module D:/GPS-LOCK/php/php7apache2_4.dll

在此步骤遇到过不少问题,启用PHPIniDir路径,apache就启动不了,最后发现是php.ini文件引用了 php_ptheads.dll多线程引起的。反复尝试, 问题才得以解决。

二、升级php, 下载地址:https://windows.php.net/download/  此处下载的是7.2.26,

现总结一下升级php7预到的问题

1、此处需要安装php7对应的编译vc++类库版本  , vc_redist.x64.exe, 安装的是vc15

2、sql server数据库支持

ThinkPHP3.2.3怎么从php5升级到php7

此处是因为php7默认没有加载sql server 相关dll

3、需要下载 Microsoft Drivers for PHP for SQL Server https://www.microsoft.com/en-us/download/details.aspx?id=20098 , 我下载的是7.2版本

修改位置文件如下

ThinkPHP3.2.3怎么从php5升级到php7

4、php7中 php.ini文件, ext是省略了php_.dll 如上图配置就行 , 当前需要把解压的文件拷贝到php\ext目录下

三、以为系统已经能正常在php7下运行, 结果项目用到了多线程,需要php支持pthreads,此刻已近奔溃,php.ini文件中加了extension=pthreads后, apache又启动不了。原来ptheads需要在cli模式下运行,ptheads下载地址 https://windows.php.net/downloads/pecl/releases/pthreads/

解压下载包

1、把pthreadVC2.dll文件放在php根目录下

2、php_pthreads.dll拷贝到php\ext目录下,

再次启动apache,发现一直启动不了, 找了好多资料, 原来ptheads需要运行在cli模式下, 我的解决方案是建两个php.ini配置文件, 一个供站点使用php.ini 另一个php-cli.ini文件供ptheads使用, 文件内容一样,此时升级之路总算完成。

原创文章,作者:PTPZI,如若转载,请注明出处:http://www.wangzhanshi.com/n/9556.html

(0)
PTPZI的头像PTPZI
上一篇 2025年1月1日 16:47:06
下一篇 2025年1月1日 16:49:41

相关推荐

  • CentOS7.4安装PHP7步骤

    本文在介绍关于CentOS7.4编译安装PHP7的基础上,重点探讨了其具体步骤,步骤简单易上手操作,文章内容步步紧凑,希望大家根据这篇文章可以有所收获。 基准测试 php Zend…

    php 2025年1月1日
  • Ubuntu安装php7.3

    因为我的系统没有安装PHP,所以我打算为我的系统安装一个PHP7.3我们安装PHP7.3是为了使用Laravel5.7框架,所以我们要先确定Laravel5.7依赖的扩展:Lara…

    2025年1月1日
  • Vue3中样式渗透:deep()无效如何解决

    :deep()的使用场景: 如果给当前组件的style 节点添加了scoped 属性,则当前组件的样式对其子组件是不生效的。如果想让某些样式对子组件生效,则需要使用:deep()。…

    2025年1月2日
  • 如何在PHP7中使用 mongoDB扩展

    1.mongodb连接: private function connect($confArr) {  try{   $c…

    php 2025年1月1日
  • 在CentOS和RHEL上安装PHP7的方法

    php7.3是php的最新稳定版本,yum存储库正在为php7提供RPM包。本篇文章将使用remi和epel-yum存储库在你的系统上安装所需的软件包,将介绍在CentOS和Red…

    2025年1月1日
  • PHP 8有什么新特性

    PHP 8新特性 新的主要PHP版本PHP 8预计将于2020年底发布。它现在处于非常活跃的开发阶段,所以在接下来的几个月里,事情可能会发生很大的变化。 在这篇文章中,我将持续更新…

    php 2025年1月2日
  • 怎么安装php7并与php5共存

    php有什么用 php是一个嵌套的缩写名称,指的是英文超级文本预处理语言(php:Hypertext Preprocessor)的缩写,它的语法混合了C、Java、Perl以及ph…

    php 2025年1月1日
  • ThinkPHP中使用ajax接收json数据的方法

    引言 在ThinkPHP框架中,使用AJAX接收JSON数据通常涉及前端和后端的交互。前端通过AJAX发送JSON数据到后端,后端控制器接收并处理这些数据,然后可能返回一些响应数据…

    php 2024年12月17日
  • PHP7禁用Xdebug的方法

    PHP禁用Xdebug的设置方法:首先进入PHP安装目录;然后找到“/usr/local/php/php.d/xdebug.ini”;接着注释掉“xdebug.ini”里面的语句;…

    2025年1月1日
  • PHP5.9 升级到PHP7 可能遇到什么问题

    apache_event_php-fpm 示意图: nginx-php-fpm示意图: Worker-Master-Server TCP-Nginx_PHP Nginx-FastC…

    2025年1月1日

发表回复

登录后才能评论