安装 GMP 插件 php

发布于 2025-01-19 19:32:24 字数 2178 浏览 4 评论 0 原文

我在 Docker 内构建了一个 Laravel 项目。

我想在 php 中安装插件 GMP。

这是我的代码。

FROM industrydigital/php-nginx:1.2.0

ARG API_VERSION
ARG API_BUILD
ARG GIT_REVISION

ENV API_VERSION=$API_VERSION
ENV API_BUILD=$API_BUILD
ENV GIT_REVISION=$GIT_REVISION

COPY ./src /var/www/html
COPY ./docker/assets/nginx.conf /etc/nginx/nginx.conf
COPY ./docker/assets/php.ini /etc/php/7.3/fpm/php.ini

USER root
RUN set -eu \
&& cd /var/www/html \
&& rm -f public/index.html \
&& mkdir -p /var/www/html/bootstrap/cache \
&& mkdir -p /var/www/html/storage/app/public \
&& mkdir -p /var/www/html/storage/temp \
&& mkdir -p /var/www/html/storage/framework \
&& mkdir -p /var/www/html/storage/framework/views \
&& mkdir -p /var/www/html/storage/framework/cache \
&& mkdir -p /var/www/html/storage/framework/sessions \
&& mkdir -p /var/www/html/storage/logs \
&& find . -type d -exec chmod 750 {} \; \
&& find . -type f -exec chmod 640 {} \; \
&& chown -R root:www-data /var/www/html \
&& chown -R www-data:www-data /var/www/html/storage \
&& chown -R www-data:www-data /var/www/html/bootstrap/cache \
&& chmod +x artisan \
&& mkdir -p /var/www/.config/psysh \
&& chown -R www-data:www-data /var/www/.config/psysh \
&& chmod 750 /var/www/.config/psysh \
&& mkdir -p /var/cache/nginx \
&& chown -R www-data:www-data /var/cache/nginx \
&& mkdir -p /var/secrets \
&& chown -R root:www-data /var/secrets \
&& chmod -R 750 /var/secrets

WORKDIR "/var/www/html"

# Install the gmp and mcrypt extensions
RUN apt-get update -y
RUN apt-get install -y libgmp-dev re2c libmhash-dev libmcrypt-dev file
RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/local/include/
RUN docker-php-ext-configure gmp 
RUN docker-php-ext-install gmp

VOLUME ["/var/www/html/storage", "/var/www/html/bootstrap/cache", "/var/cache/nginx", 
 "/var/secrets"]

但这会抛出

/bin/sh: 1: docker-php-ext-configure: 未找到 命令“/bin/sh -c docker-php-ext-configure gmp”返回非零代码:127

有人可以指导我吗?

I have a laravel project build inside Docker.

I want to install plugin GMP in php.

Here is my code.

FROM industrydigital/php-nginx:1.2.0

ARG API_VERSION
ARG API_BUILD
ARG GIT_REVISION

ENV API_VERSION=$API_VERSION
ENV API_BUILD=$API_BUILD
ENV GIT_REVISION=$GIT_REVISION

COPY ./src /var/www/html
COPY ./docker/assets/nginx.conf /etc/nginx/nginx.conf
COPY ./docker/assets/php.ini /etc/php/7.3/fpm/php.ini

USER root
RUN set -eu \
&& cd /var/www/html \
&& rm -f public/index.html \
&& mkdir -p /var/www/html/bootstrap/cache \
&& mkdir -p /var/www/html/storage/app/public \
&& mkdir -p /var/www/html/storage/temp \
&& mkdir -p /var/www/html/storage/framework \
&& mkdir -p /var/www/html/storage/framework/views \
&& mkdir -p /var/www/html/storage/framework/cache \
&& mkdir -p /var/www/html/storage/framework/sessions \
&& mkdir -p /var/www/html/storage/logs \
&& find . -type d -exec chmod 750 {} \; \
&& find . -type f -exec chmod 640 {} \; \
&& chown -R root:www-data /var/www/html \
&& chown -R www-data:www-data /var/www/html/storage \
&& chown -R www-data:www-data /var/www/html/bootstrap/cache \
&& chmod +x artisan \
&& mkdir -p /var/www/.config/psysh \
&& chown -R www-data:www-data /var/www/.config/psysh \
&& chmod 750 /var/www/.config/psysh \
&& mkdir -p /var/cache/nginx \
&& chown -R www-data:www-data /var/cache/nginx \
&& mkdir -p /var/secrets \
&& chown -R root:www-data /var/secrets \
&& chmod -R 750 /var/secrets

WORKDIR "/var/www/html"

# Install the gmp and mcrypt extensions
RUN apt-get update -y
RUN apt-get install -y libgmp-dev re2c libmhash-dev libmcrypt-dev file
RUN ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/local/include/
RUN docker-php-ext-configure gmp 
RUN docker-php-ext-install gmp

VOLUME ["/var/www/html/storage", "/var/www/html/bootstrap/cache", "/var/cache/nginx", 
 "/var/secrets"]

But this throws

/bin/sh: 1: docker-php-ext-configure: not found
The command '/bin/sh -c docker-php-ext-configure gmp' returned a non-zero code: 127

Can someone please guide me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

茶花眉 2025-01-26 19:32:24

我将通过以下方式进行调试:

  1. 使用以下命令创建 docker 映像:
FROM industrydigital/php-nginx:1.2.0

ARG API_VERSION
ARG API_BUILD
ARG GIT_REVISION

ENV API_VERSION=$API_VERSION
ENV API_BUILD=$API_BUILD
ENV GIT_REVISION=$GIT_REVISION

COPY ./src /var/www/html
COPY ./docker/assets/nginx.conf /etc/nginx/nginx.conf
COPY ./docker/assets/php.ini /etc/php/7.3/fpm/php.ini

USER root
RUN set -eu \
&& cd /var/www/html \
&& rm -f public/index.html \
&& mkdir -p /var/www/html/bootstrap/cache \
&& mkdir -p /var/www/html/storage/app/public \
&& mkdir -p /var/www/html/storage/temp \
&& mkdir -p /var/www/html/storage/framework \
&& mkdir -p /var/www/html/storage/framework/views \
&& mkdir -p /var/www/html/storage/framework/cache \
&& mkdir -p /var/www/html/storage/framework/sessions \
&& mkdir -p /var/www/html/storage/logs \
&& find . -type d -exec chmod 750 {} \; \
&& find . -type f -exec chmod 640 {} \; \
&& chown -R root:www-data /var/www/html \
&& chown -R www-data:www-data /var/www/html/storage \
&& chown -R www-data:www-data /var/www/html/bootstrap/cache \
&& chmod +x artisan \
&& mkdir -p /var/www/.config/psysh \
&& chown -R www-data:www-data /var/www/.config/psysh \
&& chmod 750 /var/www/.config/psysh \
&& mkdir -p /var/cache/nginx \
&& chown -R www-data:www-data /var/cache/nginx \
&& mkdir -p /var/secrets \
&& chown -R root:www-data /var/secrets \
&& chmod -R 750 /var/secrets
  1. 将基于映像 SSH 的容器启动
  2. 到新容器中 (https://linuxhandbook.com/ssh-into-container/
  3. 手动继续执行这些步骤,如果遇到错误,您将在终端中看到完整的错误跟踪
  4. 保持同一会话打开,直到你解决了
  5. 复制从容器中的 .bash_history 中获取所需的命令并相应地重写 docker 构建

I'd debug this by:

  1. Creating the docker image with just this:
FROM industrydigital/php-nginx:1.2.0

ARG API_VERSION
ARG API_BUILD
ARG GIT_REVISION

ENV API_VERSION=$API_VERSION
ENV API_BUILD=$API_BUILD
ENV GIT_REVISION=$GIT_REVISION

COPY ./src /var/www/html
COPY ./docker/assets/nginx.conf /etc/nginx/nginx.conf
COPY ./docker/assets/php.ini /etc/php/7.3/fpm/php.ini

USER root
RUN set -eu \
&& cd /var/www/html \
&& rm -f public/index.html \
&& mkdir -p /var/www/html/bootstrap/cache \
&& mkdir -p /var/www/html/storage/app/public \
&& mkdir -p /var/www/html/storage/temp \
&& mkdir -p /var/www/html/storage/framework \
&& mkdir -p /var/www/html/storage/framework/views \
&& mkdir -p /var/www/html/storage/framework/cache \
&& mkdir -p /var/www/html/storage/framework/sessions \
&& mkdir -p /var/www/html/storage/logs \
&& find . -type d -exec chmod 750 {} \; \
&& find . -type f -exec chmod 640 {} \; \
&& chown -R root:www-data /var/www/html \
&& chown -R www-data:www-data /var/www/html/storage \
&& chown -R www-data:www-data /var/www/html/bootstrap/cache \
&& chmod +x artisan \
&& mkdir -p /var/www/.config/psysh \
&& chown -R www-data:www-data /var/www/.config/psysh \
&& chmod 750 /var/www/.config/psysh \
&& mkdir -p /var/cache/nginx \
&& chown -R www-data:www-data /var/cache/nginx \
&& mkdir -p /var/secrets \
&& chown -R root:www-data /var/secrets \
&& chmod -R 750 /var/secrets
  1. Boot a container based on the image
  2. SSH into that new container (https://linuxhandbook.com/ssh-into-container/)
  3. Continue the steps manually, if you run into errors you will see the full error trace in the terminal
  4. Keep the same session open until you solve it
  5. Copy the commands that you need from .bash_history in the container and rewrite the docker build accordingly
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文