迁移早先用 Oneinstack 安装的 PHP 到 Docker

迁移早先用 Oneinstack 安装的 PHP 到 Docker

💡 原文中文,约6900字,阅读约需17分钟。
📝

内容提要

文章介绍了如何通过 Docker 将旧版 PHP 7.4 升级到 8.2,以避免 Oneinstack 的安全问题。通过 Dockerfile 安装所需扩展,并配置 PHP-FPM 和 Nginx,实现容器内外的协作,确保 PHP 配置文件管理和扩展的灵活性。

🎯

关键要点

  • 文章介绍了如何通过 Docker 将 PHP 7.4 升级到 8.2,以避免 Oneinstack 的安全问题。
  • 由于 Oneinstack 的升级脚本不再安全,决定使用 Docker 部署 PHP。
  • Dockerfile 中安装了所需的 PHP 扩展,并配置了 PHP-FPM 和 Nginx。
  • PHP 和 Nginx 的配置文件管理在容器外,确保灵活性。
  • 使用 docker-compose 文件来管理容器的启动和配置。
  • PHP-FPM 的 socket 文件配置为 unix socket,以便与 Nginx 进行通信。
  • 在需要增加新的 PHP 扩展时,需要重新复制配置文件以确保新扩展加载。

延伸问答

如何将 PHP 从 7.4 升级到 8.2?

可以通过 Docker 部署来将 PHP 从 7.4 升级到 8.2,避免使用 Oneinstack 的升级脚本。

为什么选择使用 Docker 而不是 Oneinstack 升级?

因为 Oneinstack 的升级脚本不再安全,且老系统的 apt 安装存在困难,因此选择使用 Docker 部署。

Dockerfile 中需要安装哪些 PHP 扩展?

需要安装的 PHP 扩展包括 bcmath、gd、intl、mysqli、opcache、imagick、redis 和 memcached 等。

如何配置 PHP-FPM 与 Nginx 的通信?

通过配置 PHP-FPM 的 socket 文件为 unix socket,并在 Nginx 配置中指向该 socket 文件来实现通信。

如何管理 Docker 容器的配置文件?

可以在容器外部管理 PHP 相关的配置文件,并通过挂载卷的方式将其与容器内的配置文件关联。

如果需要增加新的 PHP 扩展,应该怎么做?

需要重新启动一个容器,将新扩展的配置文件复制到容器外部的配置目录,以确保新扩展能够加载。

➡️

继续阅读