2017-06-27 3 views
0

PHPで書かれた非常に古くて古いシステムを移行しています。現在、私は良い進歩を遂げていますが、コードはphp-gdに依存するPHPLotというライブラリを利用しています。Docker - PHP 5.2.17とphp-gdをインストール

私はすべてをやりました...私はこの依存関係を3日間インストールしようとしています。手伝って頂けますか?

は、ここに私のDockerfileです:

FROM httpd:2.2 

MAINTAINER Marcus Campos <[email protected]> 

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/ 

UPDATE:

が、私は問題を解決することができました。 、--with-GD [= DIR]をGD-サポートのconfigure PHPを有効にするには

DIRはGDのベースインストールディレクトリです:あなたは./configureラインで

FROM httpd:2.2 

MAINTAINER Marcus Campos <[email protected]> 

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/ 
+0

あなたが言及したライブラリは、拡張子ではなくライブラリです。上記のことはどういうことがありますか? – Mjh

+0

これは本当です。私はgd.so拡張をインストールする必要があります...私はインターネットを研究し、過去にはapt-getをインストールしてphp5-gdをインストールすることができましたが、今日ではこれはもう動作しません。 –

+0

あなたの仕事に[this PPA](https://launchpad.net/~ondrej/+archive/ubuntu/php)を使用することをお勧めしますか?私はあなたの問題がそれでかなり簡単に消え去ると信じています。 – Mjh

答えて

0

:ここに解決策と私のコードです。 GDライブラリの推奨バンドル版を使用するには、configureオプション--with-gdを使用します。 GDライブラリではlibpngとlibjpegをコンパイルする必要があります。

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

+0

これらのライブラリはどこにありますか? –

+0

設定行に--with-gdを追加するだけでよいでしょう。それは動作しませんか? apt-get install gd – delboy1978uk

+0

bashは 'configure:error:libpng。(a | so)not found'を返します。 –

関連する問題