【PHP 5】Xdebugをpecl installできなくなっていた。

xdebugをpecl install出来ない

環境:PHP Version 5.6.40, xdebug-2.5.5

PHP5(Docker)でXdebugをpecl installコマンドでインストールする際、エラーが発生し、以前のように行えなくなっていました。

Dockerfile

FROM php:5.6-apache

ADD php.ini /usr/local/etc/php/php.ini

RUN pecl install xdebug-2.5.5

RUN echo -e "\nzend_extension=\"/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so\"" >> /usr/local/etc/php/php.ini

RUN service apache2 restart

EXPOSE 80

CMD ["/usr/sbin/apachectl","-DFOREGROUND"]

ビルド時に表示されたエラー。

No releases available for package “pecl.php.net/xdebug”
install failed

そもそもPHP ver.5 が古すぎますし、Xdebugもそれに対応したバージョン(2.5.5)はもう公式に配布されなくなったのかもしれません。

githubからアーカイブをダウンロードして解決

githubに以前のXdebugがアーカイブされていましたので、そちらをダウンロードしてくることでインストールすることができました。

before(先述のインストール実行コマンド)

RUN pecl install xdebug-2.5.5
RUN echo -e "\nzend_extension=\"/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so\"" >> /usr/local/etc/php/php.ini

 

こちらを以下に変えればOKdesu.

after

# Xdebug setup
RUN BEFORE_PWD=$(pwd) \
    && mkdir -p /opt/xdebug \
    && cd /opt/xdebug \
    && curl -k -L https://github.com/xdebug/xdebug/archive/XDEBUG_2_5_5.tar.gz | tar zx \
    && cd xdebug-XDEBUG_2_5_5 \
    && phpize \
    && ./configure --enable-xdebug \
    && make clean \
    && sed -i 's/-O2/-O0/g' Makefile \
    && make \
    && make install \
    && cd "${BEFORE_PWD}" \
    && rm -r /opt/xdebug
RUN docker-php-ext-enable xdebug

PHP5.6及び5.5系は Xdebug 2.5.5が対応していますが、それ以前のPHP 5.4の環境を構築する場合はXdebug 2.2.7が対応していますので、アーカイブのURLを以下に変更します。

https://github.com/xdebug/xdebug/archive/XDEBUG_2_2_7.tar.gz

Follow me!