先说个最简单的逻辑:GitLab CI 默认并不会给你装上 PHP 8.1。如果你直接在 .gitlab-ci.yml 里写 php --version,大概率会看到返回的是 PHP 7.x,甚至直接报错。你得主动告诉它,用 PHP 8.1 的环境,否则测试和部署都可能在版本不匹配上栽跟头。

PHP8.1GitLabCI怎样配置PHP8.1测试与部署

怎么让 GitLab Runner 跑 PHP 8.1?

GitLab Runner 本身不决定 PHP 版本,它靠你指定的 imageservices 来提供运行环境。最稳妥的方式就是直接用官方 PHP Docker 镜像。

PHPUnit 测试阶段常踩的坑

PHP 8.1 对类型声明更严格了,PHPUnit 的版本必须≥9.5才能支持它。否则你会看到诸如Fatal error: Cannot declare class PHPUnit...Typed property must not be accessed before initialization这样的报错。

部署到生产服务器时路径与权限问题

CI 构建产物(比如 build/dist/)默认在 Runner 的临时目录里。直接用 rsyncscp 推到目标服务器时,很容易因为用户权限、SELinux、路径不存在等原因失败。

真正麻烦的往往不是写对 .gitlab-ci.yml,而是 PHP 8.1 的扩展兼容性(比如 igbinaryredis)和部署目标机的 PHP-FPM pool 配置是否匹配。这些问题不会在 CI 日志里报错,但上线后 502 或白屏才会暴露出来。

本文转载于:https://www.php.cn/faq/2824742.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。