ElG*_*_76 5 php docker dockerfile docker-compose
我想安装ext-http扩展程序,因为在我的php-apache容器中执行 composer install 命令时出现此错误:
您的系统中缺少请求的 PHP 扩展 ext-http *。安装或启用 PHP 的 http 扩展。
我的 Dockerfile:
ARG PHP_VERSION=""
FROM php:${PHP_VERSION}-apache
ENV COMPOSER_ALLOW_SUPERUSER=1
EXPOSE 80
WORKDIR /${PROJECT_DIRECTORY}
# git, unzip & zip are for composer
RUN apt-get update -qq && \
apt-get install -qy \
git \
gnupg \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libicu-dev \
libxml2-dev \
wget \
nano \
unzip \
zip && \
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# PHP Extensions
RUN docker-php-ext-install -j$(nproc) opcache pdo_mysql intl xml soap
ADD php/php.ini /usr/local/etc/php/conf.d/${PROJECT_DIRECTORY}.ini
# Apache
RUN a2enmod rewrite remoteip
ADD vhosts/vhost.conf /etc/apache2/sites-available/000-default.conf
Run Code Online (Sandbox Code Playgroud)
我"ext-http": "*"在require我的composer.json.
我试过:
运行 docker-php-ext-install -j$(nproc) opcache pdo_mysql intl xml soap ext-http
我有这个错误:
步骤 7/10:运行 docker-php-ext-install -j$(nproc) opcache pdo_mysql intl xml soap ext-http ---> 在 8ef2c127b632 中运行错误:/usr/src/php/ext/ext-http 没有存在
用法:/usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name ...] 即:/usr/local/bin/docker-php-ext-install gd mysqli / usr/local/bin/docker-php-ext-install pdo pdo_mysql /usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop
如果需要自定义 ./configure 参数,请参阅 docker-php-ext-configure
ext-name 的可能值: bcmath bz2 calendar ctype curl dba dom enchant exif ffi fileinfo filter ftp gd gettext gmp hash iconv imap intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdosql_posgreflection shmop simplexml snmp soap sockets sodium spl 标准 sysvmsg sysvsem sysvshm tidy tokenizer xml xmlreader xmlrpc xmlwriter xsl zend_test zip
以上部分模块已经编译成PHP;请检查“php -i”的输出以查看已经加载了哪些模块。错误:服务 'apache' 无法构建:命令 '/bin/sh -c docker-php-ext-install -j$(nproc) opcache pdo_mysql intl xml soap ext-http' 返回非零代码:1 失败部署“撰写:.docker”:
docker-compose进程完成,退出代码为 1
请问如何安装这个扩展?
Mic*_*ati 12
我发布了一个脚本,让您只需使用以下几行即可安装 http PHP 扩展(以及许多其他扩展):
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && sync && \
install-php-extensions http
Run Code Online (Sandbox Code Playgroud)
该脚本负责 PHP 版本,并安装所有必需的 APT(对于 Debian)或 APK(对于 Alpine)软件包。
更多详细信息请参见:https ://github.com/mlocati/docker-php-extension-installer
您可能想通过 pecl 安装它。http 扩展也有依赖项。
RUN docker-php-ext-install hash iconv \
&& pecl install raphf propro \
&& docker-php-ext-enable raphf propro \
&& pecl install pecl_http \
&& echo -e "extension=raphf.so\nextension=propro.so\nextension=http.so" > /usr/local/etc/php/conf.d/docker-php-ext-http.ini \
&& rm -rf /usr/local/etc/php/conf.d/docker-php-ext-raphf.ini \
&& rm -rf /usr/local/etc/php/conf.d/docker-php-ext-propro.ini
Run Code Online (Sandbox Code Playgroud)
我通过https://hub.docker.com/r/realpaul/docker-php/dockerfile获得了灵感