2008年06月06日

Mac OS X 10.5 LeopardのRails環境 その2:Apache、PHP、MySQL、Webmin、phpMyAdmin

Railsを使うために、MySQLを入れる必要があります。すると、それを動かすためにphpMyAdminがあった方が便利です。ということは、ApacheとPHPが必要となります。それらを設定するのにWebminもあると便利です。

という感じで、いろいろ入れてみましたが、結構はまって1日かかってしまいました。

これらを入れる方法はMacPortsやFinkによるまとめインストール、各パッケージの個別インストール、そしてMac OS X Leopard標準のもの、といくつかあります。

今回RailsをLeopard標準のものとしたので、
・同様にLeopardに標準で入っているものはそのまま使う
・不足するものはFinkで追加する
という方針でやってみました。個別インストールは後で管理が大変になるので、標準またはパッケージ管理ソフト(FinkやMacPorts)に任せてしまいたいという理由です。FinkよりMacPortsの方がいいという方もいますが、以前からFinkを使っていたというだけの理由でFinkにしました。

また、これまではPHPなどの開発にMAMPやXAMPPを使っていたのですが、すべて今回の環境に移行しようと思います。

● MySQLのインストール
まずは、Railsに必須のMySQLから行きます。これは標準で入っていないので、Finkですね。
$ fink selfupdate
$ fink index
$ fink scanpackages
$ fink update-all
$ fink install mysql
Finkを触るのは久しぶりなので、アップデートからとなります。インストールはこれで一発なのですが、さあ次は何を設定する必要があって起動はどうやるのか、またどうすれば自動起動できるのか... 情報が少ないですね。
$ mysqld_safe &
$ mysqld_safe --user=mysql &
$ /sw/bin/mysqld_safe --user=_mysql &
どれもダメでした。Permission deniedと怒られてしまう。いろいろ探して、参考になったのはこちらです。
Eity's Web - daemonic
$ sudo daemonic enable mysql
$ sudo /Library/StartupItems/daemonic-mysql/daemonic-mysql start
$ sudo cp share/mysql/my-medium.cnf /etc/my.cnf
そして、試しにこれまで運用していたMAMPのmysqlディレクトリを丸ごとコピーしてみました。
$ sudo mv /sw/var/mysql /sw/var/mysql.org
$ sudo cp -R ~/Documents/MAMP/db/mysql /sw/var/mysql
$ cd /sw/var
$ sudo chown -R _mysql:_mysql mysql

すると、データベースもその中のテーブルも、そっくり引っ越しすることができました。

● Apacheの起動
これは単に、システム環境設定 → 共有 → Web共有にチェック というだけですね。これで標準のApacheが動きます。細かい設定は後でやりましょう。

● PHPを動かす
PHPも標準の設定では動きません。先人の皆さんの情報で、動かすことは簡単にできました。
Mac OS X 10.5 Leopard で PHP を動作させるには − kazumich.log
/etc/apache2/httpd.confを書き換えます。ちなみに、/etcは/private/etcのシンボリックリンクなんですね。
#LoadModule php5_module libexec/apache2/libphp5.so

このコメント#を外してWeb共有のチェック付け外しによる再起動で、PHP5の設定が生きます。

● phpMyAdminのインストール
これは標準でないので、Finkになりますね。
$ fink install phpmyadmin
$ sudo ln -s /sw/share/phpmyadmin /Library/WebServer/Documents/phpmyadmin
$ cd /sw/share/phpmyadmin/
$ sudo cp config.sample.inc.php config.inc.php
$ sudo vi config.inc.php

認証をクッキーとしたので、$cfg['blowfish_secret'] の設定だけして終了。

● PHPからMySQLへのアクセス設定
これまた先人の皆さんの情報で簡単にいくはず、でした。しかし、はまりましたもうやだ〜(悲しい顔)
まず/etc/php.iniを設定します。
mysql.default_socket = /tmp/mysql.sock

しかし、これをやってもphpinfo()で見ると反映されません。/var/mysql/mysql.sockになったままです。なぜ?

仕方がないので、MySQL設定の方を変更することにします。
/etc/my.cnfと/etc/php.iniのソケット設定を、
/var/mysql/mysql.sock

とします。そしてパーミッション関係を調整してMySQLを再起動... ですが、何度mysqldを強制終了してもうまくいかないので、Mac自体を再起動してしまいました。
$ sudo chown _mysql:_mysql /private/var/mysql
$ sudo chmod 777 /private/var/mysql

これで、やっとphpMyAdminがデータベースに接続するところまで来ました。

● MySQL、PHP、phpMyAdminをUTF-8で統一
Mac OS XはUTF-8で統一されていると思っていたのですが、PHPの初期設定はEUC-JPなんですね。今後のトラブルを避けるために、UTF-8に統一することにしました。

ふと、EUC-JP前提のEthnaはどうなるだろう、と気にはなりましたが、それはまた後で悩むことにしましょう。

設定したのは次の部分です。

・/etc/php.ini
default_charset = "UTF-8"

mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8

・/etc/my.cnf
[mysqld]
default-character-set = utf8
character-set-server = utf8
init-connect="SET NAMES utf8"
skip-character-set-client-handshake
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8

・/sw/share/phpmyadmin/config.inc.php
$cfg['DefaultLang'] = 'ja-utf-8';
$cfg['DefaultCharset'] = 'utf-8';
● Webminのインストール
最後に、あまり役にはたたないかもしれないけれど、Webminも入れてみました。標準では入っていないので、当然Finkからインストールです。
$ fink install webmin
$ fink install webmin-apache
$ fink install webmin-mysql
$ fink install webmin-theme-caldera
$ fink install webmin-theme-msc
$ sudo daemonic enable webmin
これで再起動して、すべてOK、ふぅ〜、やっとAptana RedRailsに戻れる晴れ
posted by 急いでジャンプ at 06:47| Comment(0) | TrackBack(0) | Web開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック