MacにPHP5.5をインストール。OPcacheとAPCuも設定

2014年2月13日

PHP

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

目次

  1. Homebrew をインストール
  2. 基本的な流れは PHP 5.4 の時と同じ
  3. PHP を扱う Formula を追加
  4. PHP 5.5 をインストール
  5. httpd.conf に PHP 5.5 モジュール版の読み込みを追加
  6. php.ini を設定
  7. Zend OPcache をインストール
  8. APCu をインストール
  9. その他 extension をインストール
  10. シンボリックリンクを設定する

Homebrew をインストール

まずは Homebrew をインストール。こちらの記事を参考にどうぞ。

Mountain LionにHomebrewをインストールする

基本的な流れは PHP 5.4 の時と同じ

PHP 5.5 のインストールの流れは PHP 5.4 とほとんど同じです。Apache の設定や、インストール後のバージョンアップ方法などは以前書いた記事に細かくまとめているので参考にどうぞ。

HomebrewでPHP 5.4をインストールする

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 の設定はマニュアルをご確認ください。

mbstring 設定 | PHP manual

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 実行時設定 - PHP Manual

OPcache の設定は opcache-status を見ながら調整すると良いと思います。

rlerdorf/opcache-status - GitHub

opcache-status

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 と同じです。

APC 実行時設定 - PHP Manual

APCu の設定も OPcache と同様にモニタを見ながら調整します。

krakjoe/apcu - GitHub

apc.php にブラウザからアクセスしてモニタを表示します。

apcu-monitor

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 に上げる予定です。

参考サイト

PHP 5.5ネーティブキャッシュの話

-技術ブログ
-