代码之家  ›  专栏  ›  技术社区  ›  quant

docker php ext配置、docker php ext安装和docker php ext启用做什么?

  •  0
  • quant  · 技术社区  · 7 年前

    LAMP 使用docker的web服务器,很高兴地发现 php 拼凑 a docker container for php .

    通过阅读文档,我发现三个函数表面上可以帮助我安装php扩展;

    • docker-php-ext-configure
    • docker-php-ext-install
    • docker-php-ext-enable

    apk add php.ini 黑客(导致 .so not found 错误),我准备承认失败并以正确的方式去做。

    我们提供帮助脚本docker php ext configure,

    我试着 google it as well ,但也无法在网上找到任何有用的资源。

    我现在完全搞不清安装、配置和安装php扩展意味着什么,以及像 apk add php7-* 与所有这些有关。

    请解释这些函数的作用,以及如何使用它们来 使可能 php扩展。

    1 回复  |  直到 7 年前
        1
  •  9
  •   bazeusz    6 年前

    这些是帮助程序脚本,可以帮助您从源代码安装php扩展

    • 并非所有扩展都在发行版本机包管理器或pecl中可用
    • 即使存在这些问题,也可能需要以不同的方式配置或优化这些问题

    谈论剧本

    • docker-php-ext-install docker php ext安装 ,因此,如果要覆盖默认值,应该使用它
    • docker php ext安装-从源代码生成扩展,通常执行 docker-php-ext-configure 对于构建配置,通过执行 docker-php-ext-enable 毕竟
    • docker php ext enable—通过向php.ini添加特定条目来启用已存在的扩展。默认情况下,与pecl或本机软件包管理器一起安装的扩展可能无法启用,因此需要此附加步骤。如上所述,随 docker php ext安装 正在自动启用。
        2
  •  0
  •   Samir Guiderk    7 年前

    这些函数可以帮助您设置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
    
        3
  •  0
  •   bernie    6 年前

    我有同样的问题,对其他答案的详细程度不满意。

    香港邮政编码 docker-php-ext-install

    docker php ext安装 在里面 有以下有趣的部分(省略选项解析等):

    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 同时运行的作业(命令)与处理器的数量相同。

    推荐文章