提问人:Naseem Toumeh 提问时间:11/17/2023 最后编辑:Naseem Toumeh 更新时间:11/18/2023 访问量:66
我正在我的PHP Docker容器中搜索PHP扩展的激活位置
I'm searching for the activation location of my PHP extension in my PHP Docker container
问:
当我检查我的 php Docker 容器中激活的扩展时,输出列出了几个 PHP 模块,例如 Core、ctype、curl 等。
扩展似乎已停用 例如在php.ini文件中,当我尝试激活它()时,我遇到以下错误;extension=curl
PHP警告:PHP启动:无法加载动态库“curl” (尝试过:/usr/local/lib/php/extensions/no-debug-non-zts-20210902/curl (/usr/local/lib/php/extensions/no-debug-non-zts-20210902/curl:无法 打开共享对象文件:没有此类文件或目录)
我只是想弄清楚这种激活发生在哪里。
我正在使用php:8.1.25-apache-bullseye
答:
0赞
Ngob
11/17/2023
#1
我知道您尝试在 php 脚本中使用“curl”函数
您需要在指令中添加“curl”。从 Dockerfiledocker-php-ext-install
FROM php:8.1.25-apache-bullseye
WORKDIR /var/www/t3coredev
## Install system dependencies
RUN apt-get update \
&& apt-get install -y \
libxml2-dev \
libzip-dev \
zlib1g-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libjpeg-dev \
libltdl-dev \
libicu-dev \
libmemcached-dev \
libssl-dev \
libonig-dev \
iputils-ping \
vim \
wget \
curl \
git \
build-essential \
libcurl4 \
libcurl4-openssl-dev \
&& rm -rf /var/lib/apt/lists/*
# Install Composer manually
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
## Install PHP extensions
RUN docker-php-ext-configure gd \
--with-freetype=/usr/include/ \
--with-jpeg=/usr/include/ \
&& docker-php-ext-install \
pdo \
session \
filter \
mbstring \
intl \
fileinfo \
gd \
zip \
xml \
dom \
curl \
pdo_mysql
## install ImageMagick https://www.linuxcapable.com/how-to-install-imagemagick-on-debian-linux/
#RUN git clone https://github.com/ImageMagick/ImageMagick.git /usr/local/src/ImageMagick \
# cd /usr/local/src/ImageMagick \
# ./configure \
# make \
# make install \
# sudo ldconfig /usr/local/lib
RUN a2enmod alias \
&& a2enmod authz_core \
&& a2enmod deflate \
&& a2enmod expires \
&& a2enmod filter \
&& a2enmod headers \
&& a2enmod rewrite \
&& a2enmod setenvif
完成后,您应该能够运行
docker build . -t myimagetag
然后测试是否启用了 curl
docker run myimagetag php -r 'echo curl_exec(curl_init("https://dog.ceo/api/breeds/image/random"));'
php CLI 用法的测试卷曲
评论
0赞
Naseem Toumeh
11/17/2023
该扩展已在我的 Docker 映像中处于活动状态,因此我不需要激活它。我只是想弄清楚此激活的配置位置。在 php.ini 文件中,扩展似乎已停用,当我尝试激活它时(;extension=curl),我遇到了问题中提到的错误。
0赞
Ngob
11/17/2023
这是因为加载的 ini 文件位于目录 /etc/php/8.1/apache2/conf.d 或 /etc/php/8.1/cli/conf.d 中,在这里您可以看到加载的其他扩展。因此,该扩展名为 curl.so。你应该执行 “php -i” 或 “phpinfo();”它显示有关加载的配置的详细信息
0赞
Naseem Toumeh
11/18/2023
好的,它有帮助,谢谢
下一个:Docker 复合文件格式和配置
评论
docker-php-ext-install
docker-php-ext-install