Docker-安装PHP5.2.17和PHPGD

Docker-安装PHP5.2.17和PHPGD,php,apache,docker,gd,phplot,Php,Apache,Docker,Gd,Phplot,我正在迁移一个用PHP编写的非常古老的遗留系统。目前我已经取得了很好的进展,但是,代码使用了一个名为PHPLot的库,它依赖于phpgd 我已经做了一切。。。我已经试着安装这个依赖项3天了。你能帮我吗 这是我的Dockerfile: FROM httpd:2.2 MAINTAINER Marcus Campos <campos.v.marcus@gmail.com> ENV HTTPD_CONF $HTTPD_PREFIX/conf/httpd.conf ENV PHP_INI

我正在迁移一个用PHP编写的非常古老的遗留系统。目前我已经取得了很好的进展,但是,代码使用了一个名为PHPLot的库,它依赖于phpgd

我已经做了一切。。。我已经试着安装这个依赖项3天了。你能帮我吗

这是我的Dockerfile:

FROM httpd:2.2

MAINTAINER Marcus Campos <campos.v.marcus@gmail.com>

ENV HTTPD_CONF $HTTPD_PREFIX/conf/httpd.conf
ENV PHP_INI /usr/local/lib/php.ini
ENV HOME /root

RUN usermod -u 1000 www-data && groupmod -g 1000 www-data \
    && sed -i 's/User daemon/User www-data/' $HTTPD_CONF \
    && sed -i 's/Group daemon/Group www-data/' $HTTPD_CONF

WORKDIR $HOME

ADD http://www.geocities.jp/aoba_suzukaze/php-5.2.17.tar.bz2 .
ADD http://www.geocities.jp/aoba_suzukaze/libxml29_compat.patch .

RUN echo 'ServerName localhost:80' >> $HTTPD_CONF

RUN apt-get update && apt install -y --no-install-recommends bzip2 gcc     make libxml2-dev libmysqlclient-dev patch autoconf

RUN ln -sf /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/libmysqlclient.so \
    && ln -sf /usr/lib/x86_64-linux-gnu/libmysqlclient.a /usr/lib/libmysqlclient.a

RUN set -x \
    && tar -xf php-5.2.17.tar.bz2 \
    && cd php-5.2.17 \
    && patch -p0 < $HOME/libxml29_compat.patch \
    && ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --with-pdo-mysql --enable-mbstring \
    && make -j"$(nproc)" \
    && make install \
    && cp php.ini-recommended $PHP_INI

RUN echo '<FilesMatch \.php$>' >> $HTTPD_CONF \
    && echo '    SetHandler application/x-httpd-php' >> $HTTPD_CONF \
    && echo '</FilesMatch>' >> $HTTPD_CONF

RUN sed -i 's/"GPCS"/"EGPCS"/' $PHP_INI

RUN pecl install xdebug-2.2.7 \
    && echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"' >> $PHP_INI \
    && echo 'xdebug.remote_enable=On' >> $PHP_INI \
    && echo 'xdebug.remote_connect_back=On' >> $PHP_INI \
    && echo 'xdebug.remote_autostart=On' >> $PHP_INI \
    && echo 'xdebug.idekey="xdebug"' >> $PHP_INI

WORKDIR $HTTPD_PREFIX/htdocs/
来自httpd:2.2的

维修员马库斯·坎波斯
ENV HTTPD_CONF$HTTPD_前缀/CONF/HTTPD.CONF
ENV PHP_INI/usr/local/lib/PHP.INI
环境主页/根目录
运行usermod-u 1000 www-data和&groupmod-g 1000 www-data\
&&sed-i的/User daemon/User www-data/'$HTTPD_-CONF\
&&sed-i的/Group daemon/Group www-data/'$HTTPD_-CONF
WORKDIR$HOME
添加http://www.geocities.jp/aoba_suzukaze/php-5.2.17.tar.bz2 .
添加http://www.geocities.jp/aoba_suzukaze/libxml29_compat.patch .
运行echo'ServerName localhost:80'>>$HTTPD\u CONF
运行apt get update&&apt install-y——无安装建议bzip2 gcc使libxml2 dev libmysqlclient dev补丁自动匹配
运行ln-sf/usr/lib/x86_64-linux-gnu/libmysqlclient.so/usr/lib/libmysqlclient.so\
&&ln-sf/usr/lib/x86_64-linux-gnu/libmysqlclient.a/usr/lib/libmysqlclient.a
运行集合-x\
&&tar-xf php-5.2.17.tar.bz2\
&&cd php-5.2.17\
&&补丁-p0<$HOME/libxml29_compat.patch\
&&./configure--with-apxs2=/usr/local/apache2/bin/apxs--with-mysql--with-mysqli--with-pdo-mysql--enable-mbstring\
&&制作-j“$(nproc)”\
&&安装\
&&cp php.ini-推荐的$php\u ini
运行echo'>>$HTTPD\u CONF\
&&echo'SetHandler应用程序/x-httpd-php'>>$httpd_CONF\
&&echo'>>$HTTPD_CONF
运行sed-i的/“GPCS”/“EGPCS”/“$PHP\u INI”
运行pecl安装xdebug-2.2.7\
&&echo'zend_extension=“/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so”>>php$INI\
&&echo'xdebug.remote\u enable=On'>>$PHP\u INI\
&&echo'xdebug.remote\u connect\u back=On'>>$PHP\u INI\
&&echo'xdebug.remote\u autostart=On'>>$PHP\u INI\
&&echo'xdebug.idekey=“xdebug”>>$PHP\u INI
WORKDIR$HTTPD_前缀/htdocs/
更新:

我能解决这个问题。以下是我的解决方案代码:

FROM httpd:2.2

MAINTAINER Marcus Campos <campos.v.marcus@gmail.com>

ENV HTTPD_CONF $HTTPD_PREFIX/conf/httpd.conf
ENV PHP_INI /usr/local/lib/php.ini
ENV HOME /root

RUN usermod -u 1000 www-data && groupmod -g 1000 www-data \
    && sed -i 's/User daemon/User www-data/' $HTTPD_CONF \
    && sed -i 's/Group daemon/Group www-data/' $HTTPD_CONF

WORKDIR $HOME

ADD http://www.geocities.jp/aoba_suzukaze/php-5.2.17.tar.bz2 .
ADD http://www.geocities.jp/aoba_suzukaze/libxml29_compat.patch .

RUN echo 'ServerName localhost:80' >> $HTTPD_CONF

RUN apt-get update && apt install -y --no-install-recommends bzip2 gcc make libxml2-dev libmysqlclient-dev patch autoconf libjpeg-dev libpng12-dev

RUN ln -sf /usr/lib/x86_64-linux-gnu/libmysqlclient.so /usr/lib/libmysqlclient.so \
    && ln -sf /usr/lib/x86_64-linux-gnu/libmysqlclient.a /usr/lib/libmysqlclient.a

RUN set -x \
    && ln -s /usr/lib/x86_64-linux-gnu/libjpeg.a /usr/lib/libjpeg.a \
    && ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so \
    && ln -s /usr/lib/x86_64-linux-gnu/libpng.a /usr/lib/libpng.a \
    && ln -s /usr/lib/x86_64-linux-gnu/libpng.so /usr/lib/libpng.so \
    && tar -xf php-5.2.17.tar.bz2 \
    && cd php-5.2.17 \
    && patch -p0 < $HOME/libxml29_compat.patch \
    && ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --with-pdo-mysql --enable-mbstring \
    && make -j"$(nproc)" \
    && make install \
    && cp php.ini-recommended $PHP_INI

RUN echo '<FilesMatch \.php$>' >> $HTTPD_CONF \
    && echo '    SetHandler application/x-httpd-php' >> $HTTPD_CONF \
    && echo '</FilesMatch>' >> $HTTPD_CONF

RUN sed -i 's/"GPCS"/"EGPCS"/' $PHP_INI

RUN pecl install xdebug-2.2.7 \
    && echo 'zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"' >> $PHP_INI \
    && echo 'xdebug.remote_enable=On' >> $PHP_INI \
    && echo 'xdebug.remote_connect_back=On' >> $PHP_INI \
    && echo 'xdebug.remote_autostart=On' >> $PHP_INI \
    && echo 'xdebug.idekey="xdebug"' >> $PHP_INI

WORKDIR $HTTPD_PREFIX/htdocs/
来自httpd:2.2的

维修员马库斯·坎波斯
ENV HTTPD_CONF$HTTPD_前缀/CONF/HTTPD.CONF
ENV PHP_INI/usr/local/lib/PHP.INI
环境主页/根目录
运行usermod-u 1000 www-data和&groupmod-g 1000 www-data\
&&sed-i的/User daemon/User www-data/'$HTTPD_-CONF\
&&sed-i的/Group daemon/Group www-data/'$HTTPD_-CONF
WORKDIR$HOME
添加http://www.geocities.jp/aoba_suzukaze/php-5.2.17.tar.bz2 .
添加http://www.geocities.jp/aoba_suzukaze/libxml29_compat.patch .
运行echo'ServerName localhost:80'>>$HTTPD\u CONF
运行apt get update&&apt install-y--无安装建议bzip2 gcc使libxml2 dev libmysqlclient dev补丁自动更改libjpeg dev libpng12 dev
运行ln-sf/usr/lib/x86_64-linux-gnu/libmysqlclient.so/usr/lib/libmysqlclient.so\
&&ln-sf/usr/lib/x86_64-linux-gnu/libmysqlclient.a/usr/lib/libmysqlclient.a
运行集合-x\
&&ln-s/usr/lib/x86_64-linux-gnu/libjpeg.a/usr/lib/libjpeg.a\
&&ln-s/usr/lib/x86_64-linux-gnu/libjpeg.so/usr/lib/libjpeg.so\
&&ln-s/usr/lib/x86_64-linux-gnu/libpng.a/usr/lib/libpng.a\
&&ln-s/usr/lib/x86_64-linux-gnu/libpng.so/usr/lib/libpng.so\
&&tar-xf php-5.2.17.tar.bz2\
&&cd php-5.2.17\
&&补丁-p0<$HOME/libxml29_compat.patch\
&&./configure--with-apxs2=/usr/local/apache2/bin/apxs--with-mysql--with-mysqli--with-pdo-mysql--enable-mbstring\
&&制作-j“$(nproc)”\
&&安装\
&&cp php.ini-推荐的$php\u ini
运行echo'>>$HTTPD\u CONF\
&&echo'SetHandler应用程序/x-httpd-php'>>$httpd_CONF\
&&echo'>>$HTTPD_CONF
运行sed-i的/“GPCS”/“EGPCS”/“$PHP\u INI”
运行pecl安装xdebug-2.2.7\
&&echo'zend_extension=“/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so”>>php$INI\
&&echo'xdebug.remote\u enable=On'>>$PHP\u INI\
&&echo'xdebug.remote\u connect\u back=On'>>$PHP\u INI\
&&echo'xdebug.remote\u autostart=On'>>$PHP\u INI\
&&echo'xdebug.idekey=“xdebug”>>$PHP\u INI
WORKDIR$HTTPD_前缀/htdocs/

在您的./configure行:

要启用GD支持,请使用GD[=DIR]配置PHP,其中DIR是GD基本安装目录。要使用推荐的GD库捆绑版本,请使用configure选项--with GD。GD库要求编译libpng和libjpeg


您提到的库不是一个扩展,而是一个库。上面的这些和它到底有什么关系?这是真的。我需要安装gd.so扩展。。。我研究过互联网,在过去,你可以运行apt-get-install-php5-gd来安装,但现在这已经不起作用了。我建议你使用它来完成你的任务?我相信你的问题会很容易解决。我在哪里可以找到这些lib?你应该可以添加——在配置行中使用gd。那不行吗?如果没有apt-get-install-gd,bash将返回“configure:error:libpng.(a | so)not found.”好的,
apt-get-install-libpng
apt-get-install-libjpeg
在gd行上方没有问题,朋友!祝你一切顺利!