当前位置: 首页 > 知识库问答 >
问题:

Docker:如何安装PHP7.4扩展EXThttp?

邴和雅
2023-03-14

我想安装ext-http扩展,因为在我的php-apache容器中执行composer-install命令时出错:

系统中缺少请求的PHP扩展超文本传输协议*。安装或启用PHP的超文本传输协议扩展。

我的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

我在我的编写器的require节点中有“ext-http”:“*”。json

我试过:

运行docker-php-ext-安装-j$(nproc)opachepdo_mysqlintl xml肥皂ext-超文本传输协议

我有一个错误:

步骤7/10:运行docker-php-ext-安装-j$(nproc)opachepdo_mysqlintl xml肥皂ext-超文本传输协议---

用法:/usr/local/bin/docker php ext install[-jN]ext name[ext name…]ie:/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

如果习惯的话/配置参数是必需的,请参阅docker php ext配置

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 pdo_odbc pgsql pdo_sqlite pgsql phar posix psell readline reflection session shmop simplexml snmp soapsockets钠spl标准Sysvsg sysvsem sysvshm tidy标记器xml xmlreader xmlrpc xmlwriter xsl zend_测试zip

上面的一些模块已经编译成PHP;请检查“php-i”的输出,看看哪些模块已经加载。错误:服务'apache'未能生成:命令'/bin/sh-c docker-php-ext-Inste-j$(nproc)opachepdo_mysqlintl xml肥皂ext-超文本传输协议'返回一个非零代码:1部署'Comment:. docker'失败:docker-compose退出代码1的过程结束

我怎样才能安装这个扩展?

共有2个答案

张晨朗
2023-03-14

你可能想通过pepl安装它。超文本传输协议扩展也有依赖关系。

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 

我从中得到了灵感https://hub.docker.com/r/realpaul/docker-php/dockerfile

凌嘉志
2023-03-14

我发布了一个脚本,允许您安装超文本传输协议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

该脚本负责PHP版本,并安装所有必需的APT(对于Debian)或APK(对于Alpine)包。

详情如下:https://github.com/mlocati/docker-php-extension-installer

 类似资料:
  • 我已经通过自制在Mac上安装了PHP7.4.11和Apache 2.4.46。 然后安装了Oracle即时客户端 接下来是安装OCI8扩展,通过运行: PECL提示我: 请提供ORACLE_主目录的路径。如果使用Oracle instant client[autodetect]进行编译,请使用“instantclient,/path/to/instant/client/lib”: 我不确定这是什么

  • 我正在Ubuntu 12.04.4上运行PostgreSQL 9.3.1。我想使用plpython语言扩展,但是当我尝试使用它时,我得到一个错误: 当我尝试创建扩展时: 我得到在对博客帖子进行了大量搜索和挖掘之后,我尝试安装其他软件包,并已将所有plpython文件从/usr/share/postgresql/9.1/extension复制到/opt/bitnami/postgresql/shar

  • 个人扩展文件夹 VS Code 会在个人扩展文件夹中.vscode/extensions来寻找扩展组件。不同的平台其文件夹所在的位置也不同: Windows %USERPROFILE%\.vscode\extensions Mac ~/.vscode/extensions Linux ~/.vscode/extensions 如果你想在VS Code 每次启动都能够加载你自己的扩展或者定制化信息,

  • 问题内容: 我有一个Flask项目,已将flask模块(0.9版)直接放在我的app.py文件旁边。我这样做是为了将所有内容捆绑到一个版本控制存储库中,该存储库不需要其他人使用它来安装其他Python模块。 我想使用,所以我尝试通过下载最新版本并将文件放在我的“本地” flask / ext /目录中来手动安装它。然而,尽管我可以和,我无法import flask.ext.login与Python

  • 注意 与Apache+PHP或者Nginx+PHP的运行模式不同,WorkerMan是基于PHP命令行 PHP CLI 运行的,使用的是不同的PHP可执行程序,使用的php.ini文件也可能不同。所以在网页中打印phpinfo()看到安装了某个扩展,不代表命令行的PHP CLI也安装了对应的扩展。 如何确定PHP CLI安装了哪些扩展 运行 php -m 会列出命令行 PHP CLI 已经安装的扩

  • 我正试图安装一个PostgreSQL docker化服务,与plpython。我能够成功地构建映像,但是当我来运行容器时,我得到以下错误: 错误:无法打开扩展控制文件"/usr/share/postgresql/9.5/扩展/plpython3u.control":没有这样的文件或目录声明:创建扩展"plpython3u"; psql:/docker-entrypoint-initdb. d/cr