Google Cloud App Engine部署PHP应用遇libzip.so.4缺失故障求助
解决GAE PHP部署中libzip.so.4缺失的问题
以下几个实操方案可以试试:
方案1:在Cloud Build流程里插步骤补装依赖
虽然你说没法手动装,但可以在cloudbuild.yaml里加前置步骤,用带libzip4的镜像把库文件拷过来:
先加一步用debian镜像安装libzip4并把库文件复制到构建目录,然后在PHP构建步骤里把这些文件拷到系统库路径。示例片段:steps: # 先拉取libzip4库文件 - name: 'debian:bullseye' args: ['bash', '-c', 'apt-get update && apt-get install -y libzip4 && cp /usr/lib/x86_64-linux-gnu/libzip.so.* /workspace/libzip/'] volumes: - name: 'libzip' path: '/workspace/libzip/' # 构建PHP时把库文件移到系统目录 - name: 'gcr.io/cloud-builders/php' args: ['bash', '-c', 'cp /workspace/libzip/libzip.so.4 /usr/lib/x86_64-linux-gnu/ && 这里替换成你原来的构建命令']方案2:换PHP编译参数绕开系统依赖
如果你的PHP版本支持,把--with-zip改成--enable-zip试试——有些PHP版本里enable-zip用的是内置zip实现,不需要系统里的libzip4。方案3:做个自定义Cloud Build镜像
官方PHP构建镜像缺依赖的话,自己做一个预装好libzip4的镜像:- 写个Dockerfile,基于官方PHP构建镜像安装libzip4:
FROM gcr.io/cloud-builders/php RUN apt-get update && apt-get install -y libzip4 - 用Cloud Build把这个Dockerfile构建成镜像,推送到Google Container Registry
- 在
cloudbuild.yaml里把构建步骤的镜像换成你自己的这个镜像就行。
- 写个Dockerfile,基于官方PHP构建镜像安装libzip4:
内容的提问来源于stack exchange,提问作者botzko
相关产品推荐
相关产品推荐

