ukoasis blog

homebrewでphp5.5環境を構築

October 14, 2013

自分のPHP脳は5.3くらいで止まっていて、5.4、5.5で入った機能は ( ´_ゝ`)フーン位しか知らずちょっと見てみようと思う
まずはジェネレータがおもろそうだなと思ってのでphp5.5を導入! optionの見方とか直ぐに忘れるので備忘録的に記述します

前提

  • homebrewはインストール済み
  • tapでhomebrew-phpは追加済み

手順

  • コンパイル時のオプションを確認
brew options php55
----
--32-bit
	Build 32-bit only.
--homebrew-apxs
	Build against apxs in Homebrew prefix
--with-cgi
	Enable building of the CGI executable (implies --without-apache)
--with-debug
	Compile with debugging symbols
--with-fpm
	Enable building of the fpm SAPI executable (implies --without-apache)
--with-gmp
	Build with gmp support
--with-homebrew-libxslt
	Include LibXSLT support via Homebrew
--with-homebrew-openssl
	Include OpenSSL support via Homebrew
--with-imap
	Include IMAP extension
--with-intl
	Include internationalization support
--with-libmysql
	Include (old-style) libmysql support
--with-mssql
	Include MSSQL-DB support
--with-pgsql
	Include PostgreSQL support
--with-thread-safety
	Build with thread safety
--with-tidy
	Include Tidy support
--without-apache
	Build without shared Apache 2.0 Handler module
--without-bz2
	Build without bz2 support
--without-mysql
	Remove MySQL/MariaDB support
--without-pcntl
	Build without Process Control support
--without-pear
	Build without PEAR

自分の場合、以下の利用用途でこんなオプションにしました

  • nginx使いたい
  • 取得したHTMLを加工したい
  • Symfony2使うかも・・

brew install php55 --with-fpm --with-intl --with-tidy

上記コマンド実施でしばしコンパイル待ち・・ つらつらWarningが出ましたが完了時にまとめて表示されるのでそれを確認

☆☆☆☆ PEAR ☆☆☆☆

If pear complains about permissions, 'Fix' the default PEAR permissions and config:
    chmod -R ug+w /usr/local/Cellar/php55/5.5.4/lib/php
    pear config-set php_ini /usr/local/etc/php/5.5/php.ini

✩✩✩✩ Extensions ✩✩✩✩

If you are having issues with custom extension compiling, ensure that
you are using the brew version, by placing /usr/local/bin before /usr/sbin in your PATH:

      PATH="/usr/local/bin:$PATH"

PHP55 Extensions will always be compiled against this PHP. Please install them
using --without-homebrew-php to enable compiling against system PHP.

✩✩✩✩✩ INTL Support ✩✩✩✩✩

icu4c is broken as of mxcl/homebrew#03ed757c, so you will need to install intl as
a separate extension:

    brew install php55-intl

✩✩✩✩ FPM ✩✩✩✩

To launch php-fpm on startup:
    * If this is your first install:
        mkdir -p ~/Library/LaunchAgents
        cp /usr/local/Cellar/php55/5.5.4/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/
        launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist

    * If this is an upgrade and you already have the homebrew-php.josegonzalez.php55.plist loaded:
        launchctl unload -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist
        cp /usr/local/Cellar/php55/5.5.4/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/
        launchctl load -w ~/Library/LaunchAgents/homebrew-php.josegonzalez.php55.plist

The control script is located at /usr/local/Cellar/php55/5.5.4/sbin/php55-fpm

Mountain Lion comes with php-fpm pre-installed, to ensure you are using the brew version you need to make sure /usr/local/sbin is before /usr/sbin in your PATH:

  PATH="/usr/local/sbin:$PATH"

You may also need to edit the plist to use the correct "UserName".

Please note that the plist was called 'org.php-fpm.plist' in old versions
of this formula.

To have launchd start php55 at login:
    ln -sfv /usr/local/opt/php55/*.plist ~/Library/LaunchAgents
Then to load php55 now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
Warning: Could not link php55. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link php55'

上記に沿って以下の様に実行しました

  • php54インストール済みの自分の環境ではbrew linkでエラーが出てるのでphp54をunlinkしてから再度実行
brew unlink php54
brew link php55
  • PEARをインストールしてるので権限周りの修正
chmod -R ug+w /usr/local/Cellar/php55/5.5.4/lib/php
pear config-set php_ini /usr/local/etc/php/5.5/php.ini
  • icu4cライブラリが壊れてる?せいでintlオプションがエラーなので別途インストール
brew install php55-intl
  • php-fpmは現状自動起動不要なのでplistのコピーのみ

環境によって実行ユーザを変更しておく必要あるが、自分の環境では不要なのでそのまま

cp /usr/local/Cellar/php55/5.5.4/homebrew-php.josegonzalez.php55.plist ~/Library/LaunchAgents/
  • phpのwarningが出まくるのでtimezoneの設定追加
vim /usr/local/etc/php/5.5/php.ini
----
;date.timezone =  
↓
date.timezone = 'Asia/Tokyo'
  • 確認
php -v
----
PHP 5.5.4 (cli) (built: Oct 14 2013 12:19:49)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies

とりあえず素の環境はできたので今後、必要な設定は適宜追加していく