我正在尝试使用docker建立一个LAMP网络服务器,并很高兴发现php
的好伙伴已经将a docker container for php放在一起了。
通读文档,我发现三个功能表面上可以帮助我安装php扩展;
docker-php-ext-configure
docker-php-ext-install
docker-php-ext-enable
作为php的新手,并尝试结合使用apk add
和php.ini
黑客技术(导致.so not found
错误)来启用php模块,我已经准备好了承认失败并采取正确的方法。
不幸的是,文档对这些命令的作用以及如何使用它们含糊不清:
我们提供了辅助脚本docker-php-ext-configure, docker-php-ext-install和docker-php-ext-en更容易 安装PHP扩展。
我尝试google it as well,但也无法在线找到任何有用的资源。
我现在完全困惑安装,配置和安装php扩展的含义以及诸如apk add php7-*
之类的命令与所有这些之间的联系。
请说明这些功能的作用,以及如何使用它们启用 php扩展名。
答案 0 :(得分:4)
这些是帮助程序脚本,可以帮助您从源代码安装php扩展
谈论脚本
docker-php-ext-install
构建扩展之前,先对其进行配置。它由docker-php-ext-install
执行,因此如果要覆盖默认值,应该使用它docker-php-ext-configure
进行构建配置,通过毕竟执行docker-php-ext-enable
启用扩展(php.ini条目)docker-php-ext-install
所安装的扩展名将自动启用。答案 1 :(得分:1)
如果通过示例,这些功能可以帮助您设置PHP配置 您想将opcache添加到您的PHP配置中:
首先,您进行如下配置:
docker-php-ext-configure gd \
--enable-gd-native-ttf \
--with-jpeg-dir=/usr/lib \
--with-freetype-dir=/usr/include/freetype2 && \
docker-php-ext-install gd \
然后您安装配置
&& docker-php-ext-install opcache
然后您可以启用它
&& docker-php-ext-enable opcache
答案 2 :(得分:0)
我有同样的问题,对其他答案的详细程度不满意。
docker-php-ext-install
和其他实用程序的代码在PHP docker映像中。一些例子:
php7.3-apache
:https://github.com/docker-library/php/tree/master/7.3/buster/apache php7.3-fpm
:https://github.com/docker-library/php/tree/master/7.3/buster/fpm php7.3-alpine
:https://github.com/docker-library/php/tree/master/7.3/alpine3.12/fpm docker-php-ext-install
中的 php7.3-fpm
具有以下有趣的部分(省略了选项解析等):
docker-php-source extract
cd /usr/src/php/ext
# skip usage, option parsing and checking the extension list
for ext in $exts; do
cd "$ext"
[ -e Makefile ] || docker-php-ext-configure "$ext"
make -j"$j"
make -j"$j" install
find modules \
-maxdepth 1 \
-name '*.so' \
-exec basename '{}' ';' \
| xargs -r docker-php-ext-enable ${iniName:+--ini-name "$iniName"}
make -j"$j" clean
cd "$popDir"
done
因此,这意味着到处可见的-j$(nproc)
指定要同时运行的make
作业(命令)的数量与处理器的数量相同。