首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker -安装PHP 5.2.17和php-gd

Docker -安装PHP 5.2.17和php-gd
EN

Stack Overflow用户
提问于 2017-06-27 21:12:09
回答 1查看 1.5K关注 0票数 0

我正在迁移一个用PHP编写的非常古老和遗留的系统。目前我已经取得了良好的进展,然而,代码使用了一个名为PHPLot的库,其中它依赖于php-gd。

我什么都做了..。我已经尝试安装这个依赖3天了。你能帮帮我吗?

这是我的Dockerfile:

代码语言:javascript
复制
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/

更新:

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

代码语言:javascript
复制
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/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-27 21:52:50

在./configure行上:

要启用GD-support,请配置PHP --with- GD =DIR,其中DIR是GD基础安装目录。要使用推荐的GD库的捆绑版本,请使用配置选项--with-gd。GD库需要libpng和libjpeg来编译。

http://php.net/manual/en/image.installation.php

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44781212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档