PHP 5.5 がリリースされてから半年弱、そろそろ試さないと、と思っているうちに PHP 5.6 のアルファ版がリリースされてしまいました。このままでは時代の流れに取り残されてしまう、と慌てて手元の Mac に PHP 5.5 をインストール。APC の代替手段として OPcache と APCu もインストールしています。実行したコマンドや php.ini の設定など紹介します。
PHP 5.5 は Homebrew で入れました。Apache は Mac に最初から入っているものを使っています。PHP 5.5 上で Symfony2 の開発を行っていますが、特に問題は起きていません。
動作確認環境
- Mac OS X Mountain Lion
- Homebrew
目次
- Homebrew をインストール
- 基本的な流れは PHP 5.4 の時と同じ
- PHP を扱う Formula を追加
- PHP 5.5 をインストール
- httpd.conf に PHP 5.5 モジュール版の読み込みを追加
- php.ini を設定
- Zend OPcache をインストール
- APCu をインストール
- その他 extension をインストール
- シンボリックリンクを設定する
Homebrew をインストール
まずは Homebrew をインストール。こちらの記事を参考にどうぞ。
Mountain LionにHomebrewをインストールする
基本的な流れは PHP 5.4 の時と同じ
PHP 5.5 のインストールの流れは PHP 5.4 とほとんど同じです。Apache の設定や、インストール後のバージョンアップ方法などは以前書いた記事に細かくまとめているので参考にどうぞ。
PHP を扱う Formula を追加
brew tap コマンドで PHP を扱う Formula を追加します。
$ brew tap homebrew/dupes
$ brew tap josegonzalez/homebrew-php
PHP 5.5 をインストール
brew install コマンドで PHP 5.5 をインストール。mysql を使うので --with-mysql オプションを、PEAR は使わないので --without-pear オプションを指定します。その他オプションは適宜追記してください。
$ brew install php55 --with-mysql --without-pear
インストールのオプションは brew info コマンドで確認できます。
$ brew info php55
==> Options
--homebrew-apxs
Build against apxs in Homebrew prefix
--with-cgi
Enable building of the CGI executable (implies --without-apache)
...
httpd.conf に PHP 5.5 モジュール版の読み込みを追加
httpd.conf に PHP 5.5 モジュール版の読み込みを追加します。Apache は Mac に最初から入っているものを使っています。
/etc/apache2/httpd.conf
...
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
#↓追記
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
#↑追記
...
php.ini を設定
timezone と mbstring を設定します。
/usr/local/etc/php/5.5/php.ini
[Date]
date.timezone = Asia/Tokyo
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = pass
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
mbstring の設定はマニュアルをご確認ください。
Zend OPcache をインストール
Zend OPcache をインストールしてオペコードキャッシュを有効にします。オペコードキャッシュとは、コンパイル後のコードをメモリに保存して再利用することでパフォーマンスを向上させる仕組みです。PHP 5.4 までは APC でオペコードキャッシュを利用するのが一般的でした。
$ brew install php55-opcache
設定サンプルです。
/usr/local/etc/php/5.5/conf.d/ext-opcache.ini
[opcache]
zend_extension="/usr/local/Cellar/php55-opcache/7.0.2/opcache.so"
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
設定の詳細、デフォルト値はマニュアルをご確認ください。
OPcache の設定は opcache-status を見ながら調整すると良いと思います。
rlerdorf/opcache-status - GitHub
APCu をインストール
APC の代替手段としてインストールした OPcache は、ユーザーキャッシュ機能を持っていないので、APCu で補います。ユーザーキャッシュとは、オブジェクトや変数をメモリに保存して、別のリクエストからそれを再利用することでパフォーマンスを向上させる仕組みです。ユーザーキャッシュを利用するには、APCu の提供する関数を使用します。
$ brew install php55-apcu
設定サンプルです。
[apcu]
extension="/usr/local/Cellar/php55-apcu/4.0.2/apcu.so"
apc.enabled=1
apc.enable_cli=1
apc.shm_size=32M
apc.ttl=3600
apc.gc_ttl=3600
apc.mmap_file_mask=/tmp/apc.XXXXXX
設定の詳細、デフォルト値はマニュアルをご確認ください。APCu のインターフェースは APC と同じです。
APCu の設定も OPcache と同様にモニタを見ながら調整します。
apc.php にブラウザからアクセスしてモニタを表示します。
APC の代替のために APCu を入れましたが、APC のユーザーキャッシュ機能を利用していない場合は入れなくてもいいと思います。
その他 extension をインストール
Symfony2 の開発に必要な extension をインストールします。
$ brew install php55-intl
$ brew install php55-xdebug
extension は brew search コマンドで探せるので適宜インストールしてください。
$ brew search php55
php55-amqp
php55-apcu
php55-augmentedtypes
...
Xdebug を有効にします。Xdebug はデフォルト設定のままだと Symfony2 に怒られるので xdebug.max_nesting_level を上げておきます。profiler の有効化は必要に応じて。
/usr/local/etc/php/5.5/conf.d/ext-xdebug.ini
[xdebug]
zend_extension="/usr/local/Cellar/php55-xdebug/2.2.3/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port="9000"
xdebug.profiler_enable=0
xdebug.profiler_output_dir="/tmp"
xdebug.max_nesting_level=1000
xdebug.idekey = "PHPSTORM"
シンボリックリンクを設定する
仕上げにシンボリックリンクを張り直して完了です。
$ brew unlink php55
Unlinking /usr/local/Cellar/php55/5.5.9... 16 links removed
$ brew link php55
Linking /usr/local/Cellar/php55/5.5.9... 15 symlinks created
PHP 5.4 からアップグレードする場合は、先に PHP 5.4 を unlink してください。
$ brew unlink php54
$ brew link php55
動作確認。Apache も再起動しましょう。
$ php -v
PHP 5.5.9 (cli) (built: Feb 12 2014 21:45:22)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.2, Copyright (c) 1999-2013, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
おわりに
PHP 5.5 をインストールする方法を紹介しました。このブログが動いているサーバも近いうちに PHP 5.5 に上げる予定です。
参考サイト