Bash on Ubuntu on Windows で phpenv のインストールメモ

  • 9
    いいね
  • 0
    コメント

※すべて終わるまでかなり時間がかかる&ハマる可能性があるので余裕がある時に。

Ubuntu-on-Windowsのバージョン
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.5 LTS"

Git のインストール(入ってない場合)

リポジトリの追加

Gitリポジトリ追加
$ sudo add-apt-repository -y ppa:git-core/ppa

インストール

Gitのインストール
$ sudo apt-get update && sudo apt-get install git -y

バージョン確認

Gitのバージョン確認
$ git --version
git version 2.7.3

phpenv と php-build のインストール

それぞれインストールするのは面倒なので、一度でインストールするシェルスクリプトを利用。
https://github.com/rogeriopradoj/phpenv-installer

phpenv、php-buildの一括インストール
$ curl -L http://git.io/phpenv-installer | bash

インストールできたらパスを通すための処理

パスを通す
$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(phpenv init -)"' >> ~/.bashrc
$ exec $SHELL -l

PHPのビルドに必要なものを全てインストール。

依存パッケージの一括インストール
$ sudo apt-get install -y libssl-dev libmcrypt-dev libreadline-dev libxslt1-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libmcrypt-dev libsqlite-dev libtidy-dev libltdl-dev make autoconf automake re2c lemon

bison というライブラリが必要なんだけど、PHP 5.3 が 2.6.2 以前でないとビルドできない。
ので、敢えて古いバージョンをインストール。

bisonインストール
$ wget http://launchpadlibrarian.net/121520545/libbison-dev_2.6.2.dfsg-1_amd64.deb
$ wget https://launchpad.net/ubuntu/+source/bison/1:2.6.2.dfsg-1/+build/3935803/+files/bison_2.6.2.dfsg-1_amd64.deb
$ sudo dpkg -i libbison-dev_2.6.2.dfsg-1_amd64.deb
$ sudo dpkg -i bison_2.6.2.dfsg-1_amd64.deb

ここまでが下準備。

各バージョンの PHP をインストール

インストールできる PHP のバージョン一覧を確認(このページ下部に列挙

バージョン一覧
$ phpenv install -l

欲しいバージョンをインストール。
(ここでは 5.3.29 、 5.6.26 、 7.0.11 の3つ)
ちなみに終わるまでめっっっちゃ時間かかる。

各バージョンをインストール
$ phpenv install 5.3.29 && phpenv install 5.6.26 && phpenv install 7.0.11

インストール後は各コマンドが使えるようにするための更新が必要

hash更新
$ phpenv rehash

切り替えてみる

PHP 7.0.11 に指定

ver7.0.11に指定
$ phpenv global 7.0.11

インストール状況の確認

インストール状況の確認
$ phpenv versions
  5.3.29
  5.6.26
* 7.0.11 (set by /home/me/.phpenv/version)

バージョン確認

バージョン確認
$ php --version
PHP 7.0.11 (cli) (built: Oct  4 2016 16:57:20) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.11, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans

PHP 5.3.29 に指定

ver5.3.29に指定
$ phpenv global 5.3.29

バージョン確認

バージョン確認
$ php --version
PHP 5.3.29 (cli) (built: Oct  4 2016 15:19:15)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.7, Copyright (c) 2002-2015, by Derick Rethans

ちゃんと変わってる模様。
開発向けのライブラリだからか、XDebug がデフォルトで有効になっている。

対応しているPHPバージョン一覧

2016-10-04時点
$ phpenv install -l
Available versions:
  5.2.17
  5.3.2
  5.3.3
  5.3.6
  5.3.8
  5.3.9
  5.3.10
  5.3.11
  5.3.12
  5.3.13
  5.3.14
  5.3.15
  5.3.16
  5.3.17
  5.3.18
  5.3.19
  5.3.20
  5.3.21
  5.3.22
  5.3.23
  5.3.24
  5.3.25
  5.3.26
  5.3.27
  5.3.28
  5.3.29
  5.4.0
  5.4.1
  5.4.2
  5.4.3
  5.4.4
  5.4.5
  5.4.6
  5.4.7
  5.4.8
  5.4.9
  5.4.10
  5.4.11
  5.4.12
  5.4.13
  5.4.14
  5.4.15
  5.4.16
  5.4.17
  5.4.18
  5.4.19
  5.4.20
  5.4.21
  5.4.22
  5.4.23
  5.4.24
  5.4.25
  5.4.26
  5.4.27
  5.4.28
  5.4.29
  5.4.30
  5.4.31
  5.4.32
  5.4.33
  5.4.34
  5.4.35
  5.4.36
  5.4.37
  5.4.38
  5.4.39
  5.4.40
  5.4.41
  5.4.42
  5.4.43
  5.4.44
  5.4.45
  5.4snapshot
  5.5.0
  5.5.1
  5.5.2
  5.5.3
  5.5.4
  5.5.5
  5.5.6
  5.5.7
  5.5.8
  5.5.9
  5.5.10
  5.5.11
  5.5.12
  5.5.13
  5.5.14
  5.5.15
  5.5.16
  5.5.17
  5.5.18
  5.5.19
  5.5.20
  5.5.21
  5.5.22
  5.5.23
  5.5.24
  5.5.25
  5.5.26
  5.5.27
  5.5.28
  5.5.29
  5.5.30
  5.5.31
  5.5.32
  5.5.33
  5.5.34
  5.5.35
  5.5.36
  5.5.37
  5.5.38
  5.5snapshot
  5.6.0
  5.6.1
  5.6.2
  5.6.3
  5.6.4
  5.6.5
  5.6.6
  5.6.7
  5.6.8
  5.6.9
  5.6.10
  5.6.11
  5.6.12
  5.6.13
  5.6.14
  5.6.15
  5.6.16
  5.6.17
  5.6.18
  5.6.19
  5.6.20
  5.6.21
  5.6.22
  5.6.23
  5.6.24
  5.6.25
  5.6.26
  5.6snapshot
  7.0.0
  7.0.1
  7.0.2
  7.0.3
  7.0.4
  7.0.5
  7.0.6
  7.0.7
  7.0.8
  7.0.9
  7.0.10
  7.0.11
  7.0snapshot
  7.1.0RC3
  7.1snapshot
  master

駄文

Bash on Ubuntu on Windows で phpenv をインストールしている記事がググっても見つからなかった。
どうやら Mac で使うようにできているらしく、普通の Ubuntu に入れようとしている人たちがことごとくハマっていて、この記事書くのにも何度もやり直し、なんとか動作するまでに漕ぎつけた・・・