Laravel接口无额外PHP版本要求,完全遵循对应主版本约束:Laravel 9需PHP≥8.0.2,10需≥8.1,11需≥8.2,12/13分别需≥8.2;实际部署须确保Web SAPI版本与CLI一致,并启用ext-json、ext-mbstring、ext-openssl、ext-pdo等核心扩展。

Laravel 做接口本身没有额外的 PHP 版本要求,它完全遵循对应 Laravel 主版本的官方运行时约束。也就是说,接口能否正常工作,取决于你用的是哪个 Laravel 版本,而不是“是否在做接口”。
看 Laravel 版本定底线
不同 Laravel 版本对 PHP 有明确的最低要求,这些要求适用于所有使用场景——包括 Web 页面、Artisan 命令、队列任务,以及 API 接口:
- Laravel 9:要求 PHP ≥ 8.0.2(不支持 7.4 及更早)
- Laravel 10:要求 PHP ≥ 8.1(8.1.0 起即可,但建议 8.1.8+)
- Laravel 11:要求 PHP ≥ 8.2(8.2.0 起,部分扩展如 ext-opcache 在 8.2.10+ 更稳定)
- Laravel 12/13:分别要求 PHP ≥ 8.2 和 ≥ 8.2(Laravel 13 实际推荐 8.2.15+ 或 8.3+ 以兼容最新安全补丁)
接口相关功能会抬高实际门槛
如果你用到现代 API 开发特性,PHP 版本需求可能进一步上浮:
- 使用
@OA\Get等 OpenAPI 注解生成文档(Laravel 12+ 原生支持),需 PHP ≥ 8.1;Laravel 13 下推荐 8.2+ - 启用 JSON 验证规则(如
json、array类型自动 cast)、联合类型返回(string|int|null),依赖 PHP 8.0+ 的类型系统 - 调用
Http::timeout()或retry()等新客户端方法,底层依赖 PHP 8.1+ 的可空返回类型声明
别只看 CLI,Web SAPI 才是关键
很多接口部署后 500 报错,根源是 Web 服务器(如 Nginx + PHP-FPM)加载的 PHP 版本和你在终端执行 php -v 看到的不一致:
- 在
public/index.php顶部加die(phpversion());,用浏览器访问接口路径,确认真实运行版本 - cPanel/Plesk 用户必须通过面板单独为域名指定 PHP 版本,不能依赖系统默认或 CLI 设置
- Docker 用户需检查
Dockerfile中FROM的基础镜像(如php:8.2-apache),而非宿主机 PHP
扩展缺失比版本低更常见
即使 PHP 版本达标,缺少必要扩展也会导致接口直接失败(如 500 或空响应):
-
ext-json:Laravel 默认用它处理所有 JSON 输入输出,缺失则Response::json()报错 -
ext-mbstring:路由参数解析、URL 解码、Eloquent 字符串操作均依赖它 -
ext-openssl:JWT 认证、HTTPS 请求、加密签名等接口安全功能必需 -
ext-pdo+ 对应驱动(如pdo_mysql):数据库交互的基础,无则所有模型查询失败
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











