MacPortsだけでPHP5+GD2を構築(Leopard) はてなブックマーク

Leopard(OS X 10.5)にはPHP5.2.4が実装されていますが、どういうわけか画像ライブラリ、GDに対応していない。そこで、GDに対応するためにあれこれと試したので以下メモ。

まず、試したのが以下の2パターン。

  1. Appleから提供しているphp-5.2.4のパッケージから、ばらして抽出したGDをインストール。
  2. すべてを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
  • apache2sudo port -d install apache2
    sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
  • php5sudo 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
    AddType application/x-httpd-php-source .phps
    とhtmlを追加することで、htmlでもphpが実行できるようになる。
    そのままでは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 listings
    # Include conf/extra/httpd-autoindex.conf
    index.htmlなどがないときの動作設定ファイルを読み込む。ファイルリストを生成したいときはコメントをはずす。※コメントを外すと、ファイル構成が丸見えになる場合があるので要注意。

    # Language settings
    Include conf/extra/httpd-languages.conf
    コメントを外すと、各言語index.htmlが表示できるようになる。多言語向けサイトを作らないのであれば、とくに用途はない。ただ↓の「あなたの予想に〜」のキャプチャをとりたかっただけw

    # User home directories
    Include conf/extra/httpd-userdir.conf
    コメントアウトで、http://localhost/~(user名)/が使えるようになる
    場所は~/Sites/以下。個人だけで使うのであれば要らないかも。

以上で、設定は終わり。あとは

http://localhost/

を覗いて以下の画面が出ればOKだ。

welcomeapache.png

もちろんGDもうまくいった。 ワーイ

関連記事

2 Responses to “MacPortsだけでPHP5+GD2を構築(Leopard)”

  1. 悪戦苦闘のLeopard» ブログアーカイブ » AMPの環境を求めて、先ずは情報収集 writes:

    [...] COLAMUNE ? Blog Archive ? MacPortsだけでPHP5+GD2を構築(Leopard) [...]

  2. COLAMUNE » Blog Archive » MacOSX10.5+MacPortsでphp5を最新版に writes:

    [...] 詳しくは以前に書いた記事にあるので、参考にしてほしい。このようにphp5をportで管理する形であれば、今回のように最新版が出てもすぐに対応ができるので、スマートだと思う。 COLAMUNE ? Blog Archive ? MacPortsだけでPHP5+GD2を構築(Leopard) [...]

Leave a Reply

Location : MacPortsだけでPHP5+GD2を構築(Leopard) | COLAMUNE

© 2010 COLAMUNE. All rights reserved.

Apricot theme designed by Ardamis.com. XHTML, CSS. COLAMUNE is powered by WordPress 2.9.1 Entries (RSS) and Comments (RSS).