ubuntuにphpenvからPHPをインストールした時のエラー

ubuntuをイメージベースに、phpenvを入れ、phpenvでPHP 5.6.9をインストールするDockerfileを作成。
docker buildしたのち、そのコンテナに入り、PHP 5.6.9をインストールした際、以下のようなエラーが発生した。

# phpenv install 5.6.9
[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded pyrus Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.6.9 into /root/.anyenv/envs/phpenv/versions/5.6.9
[Downloading]: http://php.net/distributions/php-5.6.9.tar.bz2
[Preparing]: /tmp/php-build/source/5.6.9
[Compiling]: /tmp/php-build/source/5.6.9
[Pyrus]: Downloading from http://pear2.php.net/pyrus.phar
[Pyrus]: Installing executable in /root/.anyenv/envs/phpenv/versions/5.6.9/bin/pyrus
[xdebug]: Installing version 2.3.2
[xdebug]: Compiling xdebug in /tmp/php-build/source/xdebug-2.3.2

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
  write(sp[1], &s, sizeof(s));
       ^
/tmp/php-build/source/5.6.9/sapi/fpm/fpm/zlog.c: In function 'zlog_ex':
/tmp/php-build/source/5.6.9/sapi/fpm/fpm/zlog.c:191:8: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
   write(zlog_fd > -1 ? zlog_fd : STDERR_FILENO, buf, len);
        ^
/tmp/php-build/source/5.6.9/sapi/fpm/fpm/zlog.c:195:8: warning: ignoring return value of 'write', declared with attribute warn_unused_result [-Wunused-result]
   write(STDERR_FILENO, buf, len);
        ^
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
-----------------------------------------

The full Log is available at '/tmp/php-build.5.6.9.20150605091024.log'.
[Warn]: Aborting build.

ビルドのためにインストールしたパッケージは以下の通り。

# apt-get install -y re2c bison libxml2-dev libcurl4-openssl-dev libjpeg8-dev libpng12-dev libmcrypt-dev libreadline-dev libtidy-dev libxslt1-dev

そこで、ubuntuにphp-buildでphp5.5を入れるためにシェルスクリプトと格闘した記録 | hirobanex.netより、autoconfをインストール

# apt-get install -y autoconf

もう一度インストールしなおす

# phpenv install 5.6.9
[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded pyrus Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.6.9 into /root/.anyenv/envs/phpenv/versions/5.6.9
[Skipping]: Already downloaded and extracted http://php.net/distributions/php-5.6.9.tar.bz2
[Preparing]: /tmp/php-build/source/5.6.9
[Compiling]: /tmp/php-build/source/5.6.9
[Pyrus]: Downloading from http://pear2.php.net/pyrus.phar
[Pyrus]: Installing executable in /root/.anyenv/envs/phpenv/versions/5.6.9/bin/pyrus
[xdebug]: Installing version 2.3.2
[xdebug]: Compiling xdebug in /tmp/php-build/source/xdebug-2.3.2
[xdebug]: Installing xdebug configuration in /root/.anyenv/envs/phpenv/versions/5.6.9/etc/conf.d/xdebug.ini
[xdebug]: Cleaning up.
[Info]: Enabling Opcache...
[Info]: Done
[Info]: The Log File is not empty, but the Build did not fail. Maybe just warnings got logged. You can review the log in /tmp/php-build.5.6.9.20150605093249.log
[Success]: Built 5.6.9 successfully.

作成したDockerfile

FROM ubuntu
RUN apt-get update
RUN apt-get install -y git curl build-essential
RUN apt-get upgrade -y && rm -rf /var/lib/apt/lists/*
ENV HOME /root
ENV ANYENV_HOME $HOME/.anyenv
ENV ANYENV_ENV $ANYENV_HOME/envs
RUN git clone https://github.com/riywo/anyenv $ANYENV_HOME
ENV PATH $ANYENV_HOME/bin:$PATH
RUN mkdir $ANYENV_ENV
RUN anyenv install pyenv
ENV PATH $ANYENV_ENV/pyenv/bin:$ANYENV_ENV/pyenv/shims:$PATH
ENV PYENV_ROOT $ANYENV_ENV/pyenv
RUN anyenv install rbenv
ENV PATH $ANYENV_ENV/rbenv/bin:$ANYENV_ENV/rbenv/shims:$PATH
ENV RBENV_ROOT $ANYENV_ENV/rbenv
RUN anyenv install ndenv
ENV PATH $ANYENV_ENV/ndenv/bin:$ANYENV_ENV/ndenv/shims:$PATH
ENV NDENV_ROOT $ANYENV_ENV/ndenv
RUN anyenv install phpenv
ENV PATH $ANYENV_ENV/phpenv/bin:$ANYENV_ENV/phpenv/shims:$PATH
ENV PHPENV_ROOT $ANYENV_ENV/phpenv
## pyenv
RUN apt-get install -y libbz2-dev libreadline-dev libcurl4-openssl-dev libsqlite3-dev
#RUN pyenv install 3.4.3
#RUN pyenv global 3.4.3
#RUN pyenv rehash
## rbenv
RUN apt-get install -y libcurl4-openssl-dev
#RUN rbenv install 2.2.2
#RUN rbenv global 2.2.2
#RUN rbenv rehash
## ndenv
#RUN ndenv install v0.12.4
#RUN ndenv global v0.12.4
#RUN ndenv rehash
## phpenv
RUN apt-get install -y re2c bison libxml2-dev libcurl4-openssl-dev libjpeg8-dev \
libpng12-dev libmcrypt-dev libreadline-dev libtidy-dev libxslt1-dev autoconf
#RUN phpenv install 5.6.9
#RUN phpenv global 5.6.9
#RUN phpenv rehash
view raw Dockerfile-anyenv hosted with ❤ by GitHub

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください