LoginSignup
5
5

More than 5 years have passed since last update.

Cloud9でPHPを5.6にバージョンアップする

Posted at

はじめに

Cloud9のPHPのテンプレートだと、現状ではPHPが5.51 になっているので、5.6にバージョンアップする方法をご紹介します。

単純にPHPを5.6に置き換える方法と、PHPBrewを利用して既存のバージョンと5.6を共存させる方法の2種類の方法で試してみました。
ただ、PHPBrewを利用する方法については、PHPBrewを使いこなせていないこともあって実際には何かしらの不具合2 があるかもしれません。その点を予めご理解いただいた上で参考にしてください。

それから、元々インフラ周りは得意ではないので、説明に不備があるかもしれませんがご容赦ください。

バージョンアップ手順

単純に置き換える方法

apache2のPHP5.6用モジュールをインストール

$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install libapache2-mod-php5.6

この時点で、おそらくPHP5.6はインストールされます。

apache2の設定を5.6用に変更

実際にApacheを起動した際に、ApacheがPHP5.6のモジュールを参照するように設定を変更します。

$ sudo a2dismod php5
$ sudo a2enmod php5.6

Ubuntuのディストリビューションをアップグレード

$ sudo add-apt-repository ppa:ondrej/php5-compat
$ sudo apt-get update
$ sudo apt-get dist-upgrade

これで依存関係が解決されるはずです。

以上で既存のPHPを5.6にバージョンアップする方法は完了です。

PHPBrewを利用する方法

GitHub上のREADMEファイル に記載されている内容をそのまま実行していくだけです。

事前準備

$ sudo apt-get update

$ sudo apt-get build-dep php5
$ sudo apt-get install -y php5 php5-dev php-pear autoconf automake curl libcurl3-openssl-dev build-essential libxslt1-dev re2c libxml2 libxml2-dev php5-cli bison libbz2-dev libreadline-dev
$ sudo apt-get install -y libfreetype6 libfreetype6-dev libpng12-0 libpng12-dev libjpeg-dev libjpeg8-dev libjpeg8  libgd-dev libgd3 libxpm4 libltdl7 libltdl-dev
$ sudo apt-get install -y libssl-dev openssl
$ sudo apt-get install -y gettext libgettextpo-dev libgettextpo0
$ sudo apt-get install -y libicu-dev
$ sudo apt-get install -y libmhash-dev libmhash2
$ sudo apt-get install -y libmcrypt-dev libmcrypt4

PHPBrewをインストール

$ curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
$ chmod +x phpbrew
$ sudo mv phpbrew /usr/local/bin/

初期化

$ phpbrew init

.bashrc の拡張

ホームディレクトリに設置されている .bashrc(~/.bashrc) に以下の内容を追記します。

[[ -e ~/.phpbrew/bashrc ]] && . ~/.phpbrew/bashrc

ファイルの編集が終わったら、. ~/.bashrc で再読み込みをするか、ターミナルを起動し直してください。

デフォルトプレフィックスをUbuntu用に設定

$ phpbrew lookup-prefix ubuntu

Apacheの関連ディレクトリのパーミッションを変更

$ sudo chmod -R oga+rw /usr/lib/apache2/modules
$ sudo chmod -R oga+rw /etc/apache2

PHPのインストール

PHPのconfigureオプションは、variantというPHPBrew独自のフォーマットで指定することになっています。

$ phpbrew -d install 5.6 +default+debug+mysql+pdo+apxs2

開発者個々に変わってくる部分はここになるのかなと思います。
ご自身の要件に合わせてカスタマイズしたい場合は、README を参考にしてください。variantの説明が記載されています。

インストールしたPHPのリストを確認する

$ phpbrew list

「php-5.~」 の形式で表示されるはずなので、インストールされたバージョンを確認しておきましょう。

切り替え

"x"の部分にはインストールしたPHPのバージョンを指定してください。

$ phpbrew switch 5.6.x

これでphp -vをして切り替えたバージョンが表示されれば成功です。
ちなみに、デフォルトのPHPに戻したい場合は phpbrew switch-off すれば元に戻ります。

以上でPHPBrewを利用したバージョンアップ方法は完了です。
こちらの方法の場合、古いバージョンのPHPもインストールして同一環境上で複数のバージョンでの挙動を確認する、といったことも可能になるかと思います。

トラブルシューティング

インストールでエラーが出たので再度インストールする。。。その前に

インストール作業を再開する前に、~/.phpbrewを削除して以下のコマンドを実行してください。

$ phpbrew self-update
$ phpbrew init
$ phpbrew lookup-prefix ubuntu

これをしないと、インストール対象のディストリビューションダウンロード実行時にエラーになってしまって、何度インストールを実行しても先に進めなくなる場合があると思います。

注釈一覧


  1. 将来的に変更される可能性はあります。 

  2. 開発するものによっては足りないモジュールがあったり、ApacheやMySQLとの連携がうまくいかなかったり、ということが起きるかもしれません。 

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5