【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