phpStudy Docker 环境升级 PHP 和 MySQL 完整教程

爱搜学习网的头像 爱搜学习网 · · 回复 0 看回复 回复本帖
只看楼主 倒序浏览 共 0 楼 第 1 / 1 页
楼主 2026-11-09 03:39 67 阅读 1#

在Docker中升级phpStudy开发环境的时候, 最核心的操作步骤就是去替换容器镜像的版本号, 然后要利用 volume 这种方式来保证数据被保留住, 最后再重启容器把升级这个过程给完成掉, 整块操作下来, 你根本不需要去执行卸载又重新安装这样的动作。

phpStudy Docker 环境升级 PHP 和 MySQL 完整教程 核心结论

升级前准备

1. 确认当前的版本情况, 进入容器里面执行 php -v 这个命令, 同时也执行 mysql –version 这个命令, 把正在使用的 PHP 版本号记录下来, 还要把 MySQL 的版本号也记录下来。

2. 把当前的这个数据给保存下来。

数据库:docker exec 容器名 mysqldump -u root -p --all-databases > backup_$(date +%F).sql

网站文件的情况是这么的, 要是已经挂载到宿主机的直接备份目录那里去了的话, 就直接备份就行, 要是是在容器里面的这个情况的话, 那就需要先弄那个docker cp命令把它给拷出来。

3. 记录自定义配置:php.ini 中的 upload_max_filesize、post_max_size、memory_limit;my.cnf 中的 max_connections、innodb_buffer_pool_size 等。

升级 PHP 版本

1. 我们要去拉取一个新的镜像, 举个例子, 如果你用的是 Nginx 的环境, 那么就去拉取 docker pull php:8.3-fpm, 又或者, 假设你是 Apache 的环境, 那就去拉取 php:8.3-apache。

2. 需要对 docker-compose.xml文件里的PHP服务部分的image字段进行修改, 把版本号从8.1改成8.3。

3. 需要进行安装操作, 以便能够获得那些所需要的扩展组件。

docker exec -it php容器 apt-get update && apt-get install -y php-gd php-mysql php-xml php-mbstring php-zip php-curl php-intl

4. 通过volume挂载的方式去配置自定义的php.ini到这个目录里面, 也就是code里面的/usr/local/etc/php/php.ini, 目的是要把原先的那个上传大小还有执行超时这类参数全部给留下来, 这样能够避免在系统升级之后, 相关的配置被重新设置成默认值的情况出现。

5. 重启:docker compose up -d。

6. 先去验证一下, 就是在docker exec php容器 php -m 这个命令下面操作, 确认扩展已经被加载了。再然后在站点根目录下面放置一个<?php phpinfo(); 的临时页面, 接下来通过浏览器去访问它, 从而确认版本是正确的, 最后用完了就要把它删除掉。

升级 MySQL 版本

1. 你要拉取那个新的镜像, 具体的操作是输入代码 docker pull mysql:8.4。

2. 需要对配置文件docker-compose.yml里面的字段进行一项修改操作, 具体的修改目标是其中定义的那个名为MySQL的服务, 将属于该服务类别下面的image字段值给改一下。

3. 你要把那个叫 mysql_data 的数据卷给留住去, 别让它给删掉, 等到了新版容器那里头一回开始运转的时候, 它自己就会把那个数据目录的格式迁移工作给搞定, 就是说从8.0版本以前升级到8.0以及更高的版本这个事儿呢是支持自动升级的。

4. 你需要进行同步连接配置, 因为从 MySQL 8.0 开始, 默认的认证方式修改成了 caching_sha2_password, 所以网站配置文件里面的数据库连接参数需要做对应的调整。

5. 重启:docker compose up -d。

6. 验证:docker exec -it mysql容器 mysql -u root -p -e "SELECT VERSION();" 确认版本。

网站代码适配

按照程序的要求来做,以便确认能够兼容。 WordPress 这个系统的最低 PHP 版本要求是 7.4。 ThinkPHP 8 这个程序的最低 PHP 版本要求是 8.0。所以在决定升级之前, 一定要去查看一下官方的文档说明。

在大版本进行跳跃式更新的时候, 比如从7.x版本直接变到8.x版本这个情况, 是需要去处理那些语法上发生的变化的, 这些变化就包括像动态属性这样的东西、还有那种隐式可空参数的设定, 以及那些已经被废弃不用的函数等等。

你需要把数据库的名字、登录的用户名、对应的密码以及连接的服务器主机地址, 这些内容在 wp-config.php里面进行修改, 或者你也可以去修改程序自身的配置来调整这些信息。

常见问题

1. 升级后报 1045 认证错误:执行 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES;

2. 出现扩展缺失导致的状态码为500的错误情况, 请通过运行 docker logs 容器名 这个命令去查看相关的报错信息内容, 在找到原因之后重新补装缺失的扩展插件, 最后再重启一次该容器即可解决。

3. 如果遇到网站返回 404 错误, 或者发现伪静态功能失效了, 需要去检查一下具体情况。如果使用的程序是 Nginx, 那么就得确认在容器的挂载目录里面, 是不是放对了 rewrite 规则文件。

假如使用的是 Apache, 那就得确认相关的模块已经启动生效了, 也就是要检查 mod_rewrite 这个模块是否已经被启用。

注意事项

在进行升级操作之前, 一定要先把数据备份完成, 因为volume里面的这些数据如果一旦发生损坏的情况, 那是没法恢复的。

每次只去升级一个大的组件, 要避免让 PHP 和 MySQL 同时去跨过大的版本。

本地完成升级之后, 倘若需要执行迁移线上这一操作的话, 就应该遵循正常的流程, 再次配置包括域名、SSL 证书、以及数据库连接等在内的各项参数。

常见问题

《phpStudy Docker 环境升级 PHP 和 MySQL 完整教程》主要讲什么?

在Docker中升级phpStudy开发环境的时候, 最核心的操作步骤就是去替换容器镜像的版本号, 然后要利用 volume 这种方式来保证数据被保留住, 最后再重启容器把升级这个过程给完成掉, 整块…

文章提到了哪些重点?

记录自定义配置:php.ini 中的 upload_max_filesize、post_max_size、memory_limit;

文章给出了哪些建议?

所以在决定升级之前, 一定要去查看一下官方的文档说明。

回复
签名:爱搜学习网站长,14年SEO与网站建设实操经验,专注搜索引擎优化、WordPress建站、百度与Google SEO、服务器运维和网站流量增长。
全部回复 0 正序 倒序
还没有回复,来抢沙发。
发表回复请遵守版规,广告与灌水一律删除

支持 HTML 基础标签,如 <blockquote>、<strong>

QQ 微信 Telegram whatsApp
分享本页
返回顶部