Affamative Way

前向きにグダグダいいながらコード書く

Snow leopardにMacPortsでPHP5.2.X環境を作るの巻

ひさかたぶりの更新

雪豹入れたらMacPortsが使えなくなるとか、PHPが5.3だったりしたので環境構築やり直しのメモ

Mac OS X 10.6 Snow Leopard
Mac OS X 10.6 Snow Leopard
posted with amazlet at 09.09.22
アップルコンピュータ (2009-08-28)
売り上げランキング: 5

1. [下準備] MacPorts1.8を入れる

http://distfiles.macports.org/MacPorts/ から最新のdmgを導入するといいでしょう。

一応portを更新しましょう

sudo port -d selfupdate
sudo port -d sync

portで今まで管理していたものは入れ直す必要がありますので以下の手順で入れ直しましょう*1
http://trac.macports.org/wiki/Migration

To reinstall your ports:

1. Save the list of installed ports:

port installed > myports.txt

2. Clean any partially completed builds, and uninstall all installed ports:

sudo port clean installed
sudo port -f uninstall installed

3. Browse myports.txt and install the ports that you actually want to use (as opposed to those that are only needed as dependencies) one by one, remembering to specify the appropriate variants:

sudo port install portname +variant1 +variant2 ...

2. [こっから本番] 環境を作る

こんな環境を作ります。

  • PHP5.2.X (2009/09/26 現在 5.2.11)
  • apache2.2.X
  • MySQL5.1.X
  • SQLite3

時間もかかるしコマンド打つのもめんどうなのでシェルスクリプトでも書いて実行しましょう。

#!/bin/bash

# 入れたいライブラリをものを改行して記述
list="
grep
apache2
sqlite3
mysql5-server-devel
"
for i in $list ;do
  port -v install ${i}
done

# valiant はお好みで
port -v install php52 +apache2 +mysql5 +pcntl +pear +readline +sqlite
port -v install php5-xdebug

# msyql の自動起動設定
launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
# apache の自動起動設定
launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

sudo を忘れずに実行します

sudo sh install-dev.sh


だいたい1時間少々で完了するので気長に待ちましょう。

3. 早速動作確認

apacheの設定を書き換えてくれないようなのでhttpd.confを編集する

/opt/local/apache2/conf/httpd.conf

LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

アパッチ再起動

/opt/local/apache2/bin/apachectl configtest
/opt/local/apache2/bin/apachectl restart
PHPの動作を確認する
sudo echo '<?php phpinfo();' > /opt/local/apache/htdocs/info.php

http://localhost/info.php

補足:なんかうまく行かずにエラーが多発する場合

まぁ、僕がはまってたんですけど。。

潔く/opt/local以下を全削除したら上記の手順を実行したら無事に動作するようになりましたよーっと。

# 警告なしで実行されますので注意ください。
sudo rm -rf /opt/local/

*1:怖い人はいろいろと調べましょう