提问人:asdfasdfsdfga 提问时间:8/18/2023 更新时间:9/14/2023 访问量:453
在 php 8.2 上安装 zip 模块 Amazon Linux Elastic Beanstalk
Install zip module on php 8.2 amazon linux elastic beanstalk
问:
我很确定 zip 扩展名默认包含在亚马逊托管的 php elb 映像中。
通常的做法是将这样的配置文件添加到 .ebextensions 中
packages:
yum:
php-zip70: []
但是,这不再起作用了。
有什么想法吗?
答:
1赞
asdfasdfsdfga
8/18/2023
#1
截至 23 年 8 月 17 日,这似乎对我有用
将这样的配置文件添加到 .ebextensions 中
编辑似乎安装命令只能运行 1 次,否则会出现一个错误,因为该模块已经安装,因此会终止 eb 部署。致力于更强大的解决方案
files:
"/etc/php.d/98_zip.ini":
mode: "000644"
owner: root
group: root
content: |
extension=zip.so
commands:
01_remove_old_config:
command: "rm -f /etc/php.d/98_zip.ini.bak"
02_install_stuff:
command: "dnf -y install libzip libzip-devel"
03_install_more_stuff:
command: "pecl install zip"
评论
1赞
Mark Bench
9/14/2023
使用“pecl upgrade”而不是“pecl install”来避免您引用的错误。如果尚未安装,这将安装模块,并成功退出,而不是在已安装时出现错误。
2赞
Mark Bench
9/14/2023
#2
@asdfasdfsdfga给出了一些很好的提示。更现代的方法:
添加文件 .platform/hooks/prebuild/install-php-zip.sh
#!/usr/bin/env bash
yum -y install libzip libzip-devel
# Will enable zip extension in /etc/php.ini
pecl upgrade zip
请注意,如果已安装 (?!),“pecl install zip”将返回错误代码,从而导致第二次尝试部署时部署失败。请改用升级,如果尚未安装,它将安装,如果已安装,则成功完成。
pecl 命令将在 /etc/php.ini 的顶部插入 'extension=“zip.so”'。
评论
0赞
Gregory
10/30/2023
谢谢!主要问题确实是 pecl install zip 会抛出停止部署的错误,但您的解决方案正在使用较新的平台钩子而不是 .ebextensions,因此为此点赞!:)
评论