Попытка установить расширение GMP на Docker / php: 5.3 - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь протестировать некоторый код PHP на PHP 5.3 с установленным расширением GMP. Вот мой Dockerfile:

FROM php:5.3

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010 AA8E81B4331F7F50 9D6D8F6BC857C906 \
    && apt-get update \
    && apt-get -y install libgmp-dev \ 
    && docker-php-ext-install gmp

Когда я пытаюсь собрать его, я получаю сообщение о том, что docker-php-ext-install не существует.

Вот моя вторая попытка:

FROM php:5.3

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010 AA8E81B4331F7F50 9D6D8F6BC857C906 \
    && apt-get update \
    && apt-get -y install php5-gmp

Это создает без проблем, но, очевидно, это не приводит к тому, что PHP имеет расширение GMP. Я подумал, что, возможно, мне нужно будет добавить extension=gmp.so в файл php.ini, но мне не сразу понятно, где этот файл живет. php -i | grep ini возвращает, помимо прочего, следующее:

Configuration File (php.ini) Path => /usr/local/lib

Но в этом каталоге нет файла php.ini. Я пытался создать его, но все равно не повезло.

Возможно, есть изображение PHP 5.3, в котором уже установлено расширение GMP?

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Установка расширений PHP работает примерно так:

FROM php:5.3

RUN apt-key adv --keyserver keyserver.ubuntu.com \
--recv-keys 7638D0442B90D010 AA8E81B4331F7F50 9D6D8F6BC857C906 \
&& apt-get update && apt-get -y install php5-gmp libgmp \ 
&& echo "extension=gmp.so" > /etc/php5/apache2/conf.d/gmp.ini \
&& /etc/init.d/apache2 reload

Но руководство PHP гласит:

Чтобы эти функции были доступны, PHPдолжен быть скомпилирован с поддержкой GMP с использованием опции --with-gmp.

Таким образом, PHP в Dockerfile должен быть скомпилирован с опцией --with-gmp и libgmp-dev.

0 голосов
/ 08 октября 2019

Я смог сделать это так:

FROM php:5.3

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7638D0442B90D010 AA8E81B4331F7F50 9D6D8F6BC857C906 \
    && apt-get update \
    && apt-get install -y libgmp-dev wget \
    && ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \
    && cd /tmp \
    && wget --no-check-certificate https://museum.php.net/php5/php-5.3.29.tar.xz \
    && tar xvf php-5.3.29.tar.xz \
    && cd php-5.3.29/ext/gmp \
    && phpize \
    && ./configure \
    && make \
    && make install \
    && echo extension=gmp.so > /usr/local/lib/php.ini
...