gpt4 book ai didi

linux - Azure 应用服务 Linux PHP - 如何将 "--with-freetype-dir=/usr/lib/x86_64-linux-gnu"添加到 "./configure"?

转载 作者:行者123 更新时间:2023-12-02 20:59:58 25 4
gpt4 key购买 nike

我正在尝试在 Azure Linux 应用服务 (PHP 7.3-apache) 上安装 Magento,但遇到了这个 error :

Image CAPTCHA requires FT fonts support

显然是 libfreetype6-dev尽管已安装在底层容器中(位于 /usr/lib/x86_64-linux-gnu ),但 PHP 不会加载。

基本上,其他 StackOverflow 答案提出的解决方案是重新配置和重新编译 PHP。要重新配置,您必须运行 ./configure带有标志 --with-freetype-dir=/usr/lib/x86_64-linux-gnu 的命令。

根据info.php我需要运行的正确命令很可能是:

./configure 
--build=x86_64-linux-gnu \
--with-config-file-path=/usr/local/etc/php \
--with-config-file-scan-dir=/usr/local/etc/php/conf.d \
--enable-option-checking=fatal \
--with-mhash \
--enable-ftp \
--enable-mbstring \
--enable-mysqlnd \
--with-password-argon2 \
--with-sodium=shared \
--with-pdo-sqlite=/usr \
--with-sqlite3=/usr \
--with-curl \
--with-libedit \
--with-openssl \
--with-config-file-scan-dir=/usr/local/etc/php/conf.d \
--with-zlib \
--with-libdir=lib/x86_64-linux-gnu \
--with-apxs2 \
--with-freetype-dir=/usr/lib/x86_64-linux-gnu \
--disable-cgi build_alias=x86_64-linux-gnu

make && make install
service apache2 reload

不幸的是,我不确定如何在容器内执行此操作。我找到了blog这表明我应该使用 docker 工具来执行此操作。但我所能看到的只是如何更新 gd 扩展,这似乎不适用于我的情况:

docker-php-ext-configure gd –with-freetype-dir=/usr/lib/x86_64-linux-gnu”

容器还具有以下可能有帮助的命令:

docker-php-entrypoint     docker-php-ext-enable     docker-php-source
docker-php-ext-configure docker-php-ext-install

关于如何实现这一目标有任何线索吗?

最佳答案

感谢Toan Nguyen post,我已经弄清楚了.

您不需要重新编译 php

libfreetype添加到您的GD配置中就足够了。不明显的是,由于容器仅保留 /home,因此您需要在门户中创建一个应用程序设置来覆盖所有以前的 PHP INI 配置。

以下是在 Azure 门户的 SSH Web 界面中运行所需的步骤:

  1. /home 目录中创建两个文件夹来保存扩展和自定义的 php INI 文件:

    mkdir /home/site/ext /home/site/ini
  2. 运行 docker 命令以使用 freetype 重新配置 GD 扩展(需要一些时间):

    docker-php-ext-configure gd --with-freetype-dir=/usr/lib/x86_64-linux-gnu && docker-php-ext-install -j$(nproc) gd

    它将返回生成您的分机的位置,如下所示:

    Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20180731/
  3. 将生成的扩展复制到此文件夹:

    cp /usr/local/lib/php/extensions/no-debug-non-zts-20180731/gd.so /home/site/ext
  4. 将所有 INI 文件移至新的 INI 文件夹。删除旧的 GD 引用并添加新的:

    cp /usr/local/etc/php/conf.d/* /home/site/ini
    rm -rf docker-php-ext-gd.ini
    echo “extension=/home/site/ext/gd.so” » extensions.ini
  5. 最后,更新 Azure 门户中的应用设置以包含新的 INI 文件夹。添加名称为 PHP_INI_SCAN_DIR 和值 /home/site/ini 的应用程序设置(这将覆盖以前的所有 INI 文件)。 enter image description here

  6. 这将重新启动您的应用程序。您可以使用 phpInfo() 来确认 GD 扩展现在具有 freetype。 enter image description here

注意:如果您想重置配置,只需从应用程序设置中删除 PHP_INI_SCAN_DIR 值即可,这将使用默认配置重新启动容器。此外,您还可以从主站点删除 extini 进行清理,但它们无论如何都不会被加载。

关于linux - Azure 应用服务 Linux PHP - 如何将 "--with-freetype-dir=/usr/lib/x86_64-linux-gnu"添加到 "./configure"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60918752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com