Mac OS 10.6 でMacportsを使って環境構築( Apache + MySQL + PHP +phpMyadmin)

Macbook Airを買いました。
Macなのですが、操作は非常に快適です。
でも開発するとなるといろいろ勝手がわかりません。
さぐりさぐりです。
Linuxでいうapt-getのような、パッケージ管理のツールがMac用でもあるということで、使ってみることにしました。
Macports
これで、ApacheMySQLPHPをインストールしてみます。あとついでにphpMyAdmin*1

以下のサイトを参考にしました。というかほとんど同じです。でも少しは違うので、自分用にメモです。
Snow Leopard で MacPorts から Apache2, PHP5, MySQL のインストール

Apache2をインストール

インストール手順は以下の通り。

  1. インストール
  2. 自動起動設定
  3. 設定ファイル(httpd.conf)のバックアップをとる
1. インストール
sudo port install apache2
2. 自動起動設定
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
3. 設定ファイル(httpd.conf)のバックアップをとる
cp /opt/local/apache2/conf/httpd.conf /opt/local/apache2/conf/httpd.conf.orig

自動起動設定のコマンドについては、インストールapache終了時にコンソールにメッセージが出力されて、そこの指示に従ってます。

PHP5をインストール

まずは単純にphp5のインストール

1. インストール
sudo port install php5 +apache2 +mysql5 +sqlite +pear

オプションは適当につけてみた。

2. 設定ファイル(php.ini)の作成

php.ini-developmentかphp.ini-productionをコピーしろとインストール後のメッセージに出力される。今回はdevelopmentにした。

cp /opt/local/etc/php5/php.ini-development /opt/local/etc/php5/php.ini

phpapacheと連携させる

apache連携させるには、apache設定ファイル(httpd.conf)にphpについての3つの設定を追加します。

  1. php設定ファイル(php.ini)の場所を指定
  2. 格調子追加
  3. php5用moduleの追加

まずは

sudo vi /opt/local/apache2/conf/httpd.conf

で、httpd.confに設定を追加していきます。

1. php設定ファイルの場所を指定

php.iniを読み込むように、php.iniのある場所を指定する。

PHPIniDir "/opt/local/etc/php5"

これを追記。どこでもいい。

2. 拡張子追加

apachephpファイルが使えるように拡張子を設定する。
以下の行を追加する。「AddType」で検索して、他の拡張子の設定と同じタグの中に記述。

AddType application/x-httpd-php .php
3. php5用moduleの追加

httpd.confでphp5_moduleを読み込ませる。
LoadModule のセクションで手書きで追加してもいいが、php5インストール後のコンソールのメッセージでせっかくコマンドを紹介してくれているので、それでやる。

cd /opt/local/apache2/modules
/opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so

httpd.confのLoadModuleがいっぱい書いてあるところに、以下のような行が追加されたことを確認。

LoadModule php5_module        modules/libphp5.so

MySQLをインストール

まずは単純にインストール。
MySQLインストール手順は以下の通り。

  1. mysql5インストール
  2. mysql-serverインストール
  3. 自動起動設定
  4. 初期化

3,4 の手順は、1,2 のインストール後のメッセージで書いてあります。

1. mysql5インストール
sudo port install mysql5
2. mysql5-serverインストール
sudo port install mysql5-server
3. 自動起動設定
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
4. 初期化
sudo -u mysql mysql_install_db5

phpMySQLを使えるように設定

  1. php5-mysqlをインストール
  2. php.iniでmysqlのsocketの場所を指定
1. php5-mysqlをインストール
sudo port install php5-mysql
2. php.iniでmysqlのsocketの場所を指定

1のインストール後に表示されるメッセージに従って、php.iniを変更。

vi /opt/local/etc/php5/php.ini

以下の項目に値を設定。

mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock

mysql.default_socket も同じ値を設定しろとあるのですが、私の環境(php-ini-developmentをコピーした)ではデフォルトで記述がなかったので、書きませんでした。

phpMyadminインストール

以下のページを参考にさせていただきました。
Snow Leopard に phpMyAdminをインストール
ざっくりいってやることは以下の通り。

  1. phpMyadminインストール
  2. ドキュメントルートの変更
  3. DirectoryIndexの設定
  4. AllowPasswordをtrueにする
1. phpMyadminインストール
sudo port install phpmyadmin
2. ドキュメントルートの変更

phpMyAdminは"/opt/local/www/"にインストールされるのですが、apacheのDocumentRootは"/opt/local/apache2/htdocs/"になっています。
なので変更してしまいます。

#DocumentRoot "/opt/local/apache2/htdocs "
DocumentRoot "/opt/local/www"

DocumentRootの権限について設定している箇所も、忘れずに変更する。

#<Directory "/opt/local/apache2/htdocs">
<Directory "/opt/local/www">
3. DirectoryIndexの設定

index.phpが効くようにします。以下のように、DirectoryIndexの既存の設定にindex.phpを追記します。

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
4. AllowPasswordをtrueにする

パスワードなしで使いたいので、この設定をします。

vi /opt/local/www/phpmyadmin/config.inc.php

以下の設定箇所を検索で探して、falseになっているところをtrueにします。

$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

色々動くか確認。

phpがインストールされてapacheと連携できているか見るために、phpinfo.phpを置いて確認してみる。

cd /opt/local/www
touch phpinfo.php
sudo vi phpinfo.php

ファイルの内容以下。

<?php
  phpinfo();
?>
||< 
apacheを再起動。
sudo /opt/local/apache2/bin/apachectl restart
以下のURLにアクセス
>||
http://localhost/phpinfo.php
http://localhost/phpmyadmin

*1:実はXamppを試したけど色々あってうまくいかなかったので、結局自由度が効きそうなMacportでやることにしました。