YosemiteのPHPとGD強化

gd Libraryロゴ

先日、YosemiteにてWEB環境を構築しましたが、PHPのバージョンは5.5.14、そのままGDも使えるので良かったのですが、残念ながらPNG出力には対応していませんでした。他にもpChartというPHPのグラフ出力ライブラリを使いたかったんですが、GDのFreeType関係でエラー。最初から入ってるGDは、私のニーズには耐えない事がわかりました。

そんなわけで「GDを強化したい」ための試行錯誤を。

 

GDを強化するには

PNG出力やFreeTypeを有効にしたPHPをコンパイルして、ApacheのPHPモジュールを作成するという作業が必要になりそうですが、brewなどで必要なパッケージをインストールして自力でコンパイルする方法と、既に一連の作業をシェルスクリプトで配布してくれているサイトがありました。

PHP for OS X as binary packageのスクリーンショットPHP for OS X as binary package

コンソールで1行叩けば好きなバージョンのPHPバイナリのインストールを行ってくれます。 インストールは、

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

のように、curlでshを読みこめばOK。詳しくは公式サイトに記載してありますが、インストールされる先は/usr/local/php5で他の場所を汚しません。公式にはアンインストール方法も記載されていますが、私はまだ試していません。

 

PHPの状態

Yosemiteで特に問題なくインストールは終了し、httpd.confも新しいモジュールに書き換えてくれました。標準モジュールはそのまま/usr/libexec/apache2/libphp5.soに残ります。公式によると、便利なエクステンションを盛り込んだ状態とありますが、GDもPNG出力とFreeTypeにバッチリ対応しており、xdebugも有効になっていました。

httpd.confは、/etc/apche2/other内が追記される形になり、php.iniは/usr/local/php5/lib/php.iniに変更になりますが、/usr/local/php5/php.d内の追記ファイルが優先されるようです。

私はerror_reportingを変更したかったのですが、php.iniを変更しても反映されず悩みました。対象の追記ファイルを探すにはgrepが便利です。

grep -R "error_reporting" /usr/local/php5/php.d/