10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Amimoto AMIのEC2にphpenvを使ってphpをインストールし直す

Last updated at Posted at 2014-03-02

Amimoto AMIのEC2にphpenvを使ってphpをインストールし直す

phpenv + php-buildでMagentoのデバッグをしやすく

Magento本体、エクステンションはWordpressと比べてもphpバージョンに依存することが多く、導入時には複数のphpバージョンでテストする必要がある。
いちいちインスタンスを建てるのは面倒なので、ひとつのインスタンスでテストできるようにphpenvとphp-buildでバージョンを切り替えられるようにする。

更新状況

随時更新予定!

  • 2014/03/02 23:07 最初の投稿

アジェンダ

環境

サーバー

  • AWS EC2 Tokyo Region
  • t1.micro Instance
  • AMIMOTO.AMI
  • Amazon Linux OS
  • nginx version: nginx/1.4.3

ソフトウェア

  • Magento Community Edition(CE) 1.8.0.0
  • WordPressを同サーバーに共存

0.前準備

Amimoto AMIでAmazon Linux OSインスタンスを立ち上げてることを前提とする。
既にphp5.4がインストールされているので、まずはこれをアンインストールするところからはじめる。
なお、phpビルドするときにCompilingでハイパー時間かかるので、一時的にインスタンスタイプを上げておいたほうが良いかもしれない。

1.php5.4のアンインストール

Terminal
yum erase php*

yumを使って、サーバーにインストールされているphp関連のパッケージを削除。
アスタリスクを使って、php全てをヒットさせる。

2.phpenvのインストール

Terminal
curl https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash

自動でgitからダウンロード、インストールされる。
終了時のメッセージにある通り、.bashrcまたは.zshrcの末尾に以下の2行を追加

Terminal
vi ~/.bashrc
Terminal
PATH=$HOME/.phpenv/bin:$PATH # Add phpenv to PATH for scripting
eval "$(phpenv init -)"

3.php-buildのインストール

Terminal
mkdir $HOME/.phpenv/plugins
cd $HOME/.phpenv/plugins
git clone git://github.com/CHH/php-build.git

$HOME/.phpenv/plugins以下にphp-buildフォルダを置くだけで、php-buildプラグインが使用可能になる。

4.コンパイラをインストール

php-buildでビルドするとき、gccツールを使ってインストールする。
Amimoto AMIにはgccは標準でインストールされていないので、yumを使ってインストールしておく。

Terminal
yum install gcc

5.phpをビルドするときに依存するパッケージをインストール

Terminal
yum --enablerepo=epel install re2c libmcrypt libmcrypt-devel
yum install libxml2-devel bison bison-devel openssl-devel curl-devel libjpeg-devel libpng-devel libmcrypt-devel readline-devel libtidy-devel libxslt-devel httpd-devel enchant-devel libXpm libXpm-devel freetype-devel t1lib t1lib-devel gmp-devel libc-client-devel libicu-devel oniguruma-devel net-snmp net-snmp-devel bzip2-devel

後でエラー見ていちいちインストールしてたんでは時間の無駄なので、先にインストールしておく。

6.各バージョンのphpをビルド

Terminal
phpenv install --complete

このコマンドで、インストール可能な全バージョンが表示される。
今回は試しに5.3.28をはじめにインストール。

php 5.3.28

Terminal
phpenv install 5.3.28
Terminal
[Info]: Loaded apc Plugin.
[Info]: Loaded pyrus Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.3.28 into /root/.phpenv/versions/5.3.28
-[Downloading]: http://www.php.net/distributions/php-5.3.28.tar.bz2
-[Preparing]: /tmp/php-build/source/5.3.28
-[Compiling]: /tmp/php-build/source/5.3.28
[Pyrus]: Downloading from http://pear2.php.net/pyrus.phar
[Pyrus]: Installing executable in /root/.phpenv/versions/5.3.28/bin/pyrus
[XDebug]: Downloading http://xdebug.org/files/xdebug-2.2.3.tgz
[XDebug]: Compiling in /tmp/php-build/source/xdebug-2.2.3
[XDebug]: Installing XDebug configuration in /root/.phpenv/versions/5.3.28/etc/conf.d/xdebug.ini
[XDebug]: Cleaning up.
[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.3.28.20140302222943.log
[Success]: Built 5.3.28 successfully.

Compilingに鬼時間かかるけど黙って待機。
Successで完了。

php 5.5.9

Terminal
phpenv install 5.5.9
Terminal
[Info]: Loaded apc Plugin.
[Info]: Loaded pyrus Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.5.9 into /root/.phpenv/versions/5.5.9
-[Downloading]: http://www.php.net/distributions/php-5.5.9.tar.bz2
-[Preparing]: /tmp/php-build/source/5.5.9
-[Compiling]: /tmp/php-build/source/5.5.9

Compilingにやっぱり鬼時間かかるけど黙って待機。
Successで完了。

10
12
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
10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?