MacPortsだけでPHP5+GD2を構築(Leopard)
2008 年 3 月 31 日 月曜日
Leopard(OS X 10.5)にはPHP5.2.4が実装されていますが、どういうわけか画像ライブラリ、GDに対応していない。そこで、GDに対応するためにあれこれと試したので以下メモ。
まず、試したのが以下の2パターン。
- Appleから提供しているphp-5.2.4のパッケージから、ばらして抽出したGDをインストール。
- すべてをMacPortsだけで構築する。
今回は2がうまくいったので、2のやり方を晒してみる。
ちなみに1がうまくいかなかった理由はよくわからない。iconvがどうこうのいわれてiconv_openをlibiconv_openに書き換えたりしたりして、インストール自体はうまくいったのだが、GDがどうしても有効にならないのだ。
以下、2の方法。すべてMacPortsだけで管理できるので、1よりいい感じかもしれない。php5とGDだけでなく、apache2やMySQL、pear、curlも同時にインストールしている。
- MacPorts用にシェル設定(ここでは.bashrc)
export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH - MySQL5
以下のようにしてインストールし、mysql用アカウントを作成。
sudo port -d install mysql5 +server
sudo /opt/local/bin/mysql_install_db5 --user=mysql
sudo chown -R mysql /opt/local/var/db/mysql5/
sudo chgrp -R mysql /opt/local/var/db/mysql5/
sudo mkdir /opt/local/var/run/mysql5
sudo chown /opt/local/var/run/mysql5/
sudo /opt/local/bin/mysqld_safe5 --user=mysql - apache2
sudo port -d install apache2
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist - php5
sudo port -d install php5 +apache2 +curl +gd +mysql5 +imap +pearでまとめてズコーン。この順序だとうまくいく。imapはなくても多分OK。cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
sudo cp /opt/local/etc/php.ini-dist /opt/local/etc/php.ini
以下、設定ファイルの編集
- php.ini
場所は/opt/local/etc/php.inimbstringをUTF-8に。
あとtimezoneにAsia/Tokyo。
include_pathにpearのインストール先を追加。自分は/Library/WebServer/PEARとした。 - httpd.conf
場所は
/opt/local/apache2/conf/httpd.confドキュメントルートはDocumentRoot "/opt/local/apache2/htdocs"と設定し、さらにcd /opt/local/apache2としてシンボリックリンクを設定した。このように本体とデータを分けることで、バックアップなど管理をしやすくした。
ln -s /Library/WebServer/Documents htdocs<IfModule mime_module>ディレクティブに、
AddType application/x-httpd-php .php .htmlとhtmlを追加することで、htmlでもphpが実行できるようになる。
AddType application/x-httpd-php-source .phps
そのままではmod_ssl.soでエラーが起きてしまう(→バグらしい?)ので、以下の行をコメントアウト。#LoadModule ssl_module modules/mod_ssl.so
どうしてもopensslを使いたい場合は、こちら(openssl が有効にならない その2(とりあえず解決) – Heavens hell)が参考になるかも。古いmod_ssl.soで置き換えることでうまくいくらしい。サーバールートのディレクティブに
Options Indexesを追加。
FollowSymLinks
MultiViews
AllowOverride All
AllowOverride All→.htaccessを有効化
FollowSymLinks→.htaccessとかでmod_rewriteが使えるようになる。
MultiViews→拡張子なしでも表示できるようになる。(ex. /xxx.php/→/xxx/)<IfModule dir_module>のDirectoryIndexにindex.phpを追加。
これでindex.phpもindex.html同様に省略可できる。# Fancy directory listingsindex.htmlなどがないときの動作設定ファイルを読み込む。ファイルリストを生成したいときはコメントをはずす。※コメントを外すと、ファイル構成が丸見えになる場合があるので要注意。
# Include conf/extra/httpd-autoindex.conf# Language settingsコメントを外すと、各言語index.htmlが表示できるようになる。多言語向けサイトを作らないのであれば、とくに用途はない。ただ↓の「あなたの予想に〜」のキャプチャをとりたかっただけw
Include conf/extra/httpd-languages.conf# User home directoriesコメントアウトで、http://localhost/~(user名)/が使えるようになる
Include conf/extra/httpd-userdir.conf
場所は~/Sites/以下。個人だけで使うのであれば要らないかも。
以上で、設定は終わり。あとは
http://localhost/
を覗いて以下の画面が出ればOKだ。

もちろんGDもうまくいった。 ワーイ
関連記事


No. 1 — 2008 年 5 月 12 日 月曜日 at 1:42 PM
[...] COLAMUNE ? Blog Archive ? MacPortsだけでPHP5+GD2を構築(Leopard) [...]
No. 2 — 2008 年 5 月 14 日 水曜日 at 1:58 AM
[...] 詳しくは以前に書いた記事にあるので、参考にしてほしい。このようにphp5をportで管理する形であれば、今回のように最新版が出てもすぐに対応ができるので、スマートだと思う。 COLAMUNE ? Blog Archive ? MacPortsだけでPHP5+GD2を構築(Leopard) [...]