在Vercel部署Laravel应用时遇libssl.so.10缺失错误求助
解决Laravel部署Vercel时libssl.so.10缺失问题
核心原因
Vercel当前构建环境采用较新的Linux发行版,预装OpenSSL 3.x版本,而你使用的PHP运行时依赖旧版OpenSSL 1.0的动态库libssl.so.10,导致兼容性冲突。
修复方案
方案1:指定适配的PHP版本并添加兼容库
在项目根目录创建或修改vercel.json,指定支持OpenSSL 3.x的PHP版本,同时配置构建命令安装兼容库:
{ "functions": { "api/**/*.php": { "runtime": "@vercel/php@0.7.2" } }, "buildCommand": "apt-get update && apt-get install -y libssl1.1 && composer install --optimize-autoloader --no-dev" }
注意:
@vercel/php@0.7.2及以上版本已适配新OpenSSL环境,若使用更低版本需升级。
方案2:使用自定义Docker构建环境(进阶)
若需要特定旧版PHP环境,可通过Docker构建器自定义兼容环境:
- 项目根目录创建
Dockerfile:
FROM php:7.4-fpm-bullseye RUN apt-get update && apt-get install -y libssl1.1 COPY . /app WORKDIR /app RUN composer install --optimize-autoloader --no-dev
- 修改
vercel.json指定Docker构建:
{ "buildCommand": "docker build -t laravel-vercel .", "outputDirectory": "/app/public" }
方案3:切换官方Laravel部署模板
放弃旧示例仓库,使用Vercel官方维护的Laravel模板,已适配最新环境:
- 本地初始化项目:
npx create-vercel-app@latest my-laravel-app --template laravel/laravel
- 直接关联GitHub仓库到Vercel,选择Laravel模板自动完成配置。
验证步骤
- 将修改后的配置文件提交到代码仓库
- 重新执行
vercel build或触发Vercel自动构建 - 检查构建日志,确认
libssl.so.10缺失错误不再出现
内容的提问来源于stack exchange,提问作者Rohit A
相关产品推荐
相关产品推荐

