MAMPな環境を作ってみた

ふと思い立ち、Ubuntu上で動いているWordPressの環境一式をLeopardに移してみました。MAMP(MacOS, Apache, MySQL, PHP)な環境構築です。一苦労したので、忘れないようにメモです。
(ちなみに、PPCLeopardFreeBSD系でしたが、IntelLeopardDebian系です。ときどきapt-getしています。)


1. MySQLインストール

すでにfinkをインストールしてあるので、これを使ってMySQLをインストールしました。単に

fink install mysql

としただけです。finkは依存性も含めて必要なソースコード一式を取得してきて、configure, make, make installを自動的に進めてくれるツールです。やや時間はかかりましたが、これは簡単でした。インストールされたバージョンは5.0.38でした。


2. MySQLセットアップ

MySQLを起動して、ルートのパスワードを設定した後、WordPress用のデータベースとユーザを作成しました。

sudo mysqld_safe
mysqladmin -u root passwword 'rootのパスワード'
mysql -uroot -p
mysql> create database wordpress;
mysql> grant all privileges on wordpress.* to ユーザ名@localhost identified by 'ユーザのパスワード';


3. UbuntuMySQLに入っているWordPressの中身を移動

(Ubuntuで)
mysqldump -uroot -p --opt wordpress > dumpfile

(Leopardで)
mysql -uroot -p wordpress < dumpfile

UbuntuLeopard文字コードUTF-8なので、日本語の文字化けといった問題もなくすんなり移動できました。


4. ApachePHP

Leopardに最初から入っているApacheのバージョンが若干古かったので、どうしようか悩んで、とりあえずfinkを使ってのインストールを試みたのですが、これは失敗に終わりました。fink install php5-apache2-ssl-mysqlのように一気に全部いれられるインストールも試したのですが、いずれもApache2に合わせてインストールしようとしたPHPコンパイルでつまづきました。結局、Leopardに入っていたApache 2.2.6とPHP 5.2.4を使うことにしました。

/etc/apache2/httpd.confでPHPのモジュールをロードする行のコメントを削除して、このようにしました。

LoadModule php5_module libexec/apache2/libphp5.so

PHPMySQLを接続するためのソケットの設定が必要らしいので、その設定をしました。私はphp.iniで行いましたが、wordpressの方で設定してもよかったのかもしれません(Leopard: How to Install Wordpress:参照)。

cd /etc
sudo php.ini.default php.ini

(php.iniの760行目を次のように修正)
mysql.default_socket = /tmp/mysql.sock


5. WordPressのインストール

http://wordpress.org/download/からwordpress-2.3.3.tar.gzを取得しました。日本語化されたバージョンではなく、英語版です。日本語を表示できなくて悩んで、日本語版をインストールし直してみたりしましたが、最終的に英語版でも日本語が文字化けせずに表示されたのでこれで大丈夫そうです。
アーカイブを展開するディレクトリはLeopardの場合、/Users/ユーザ名/Sites以下に展開してhttp://localhost/~ユーザ名/wordpressのように参照するのが一般的らしいのですが、Ubuntuから過去の書き込みを持ってきたので、これはだめでした。データベースの中にパスの情報も書き込まれてしまっているので、コマンドなどの参照先が無くて妙な事態に陥りました。Ubuntuの環境では http://localhost/wordpressで参照していたので、同じにするためにはLeopardでは/Library/WebServer/Documents以下に展開します。

cd /Library/WebServer/Documents
sudo tar zxfv wordpress-2.3.3.tar.gz


6. WordPressの設定

データベースの情報を設定します。

cd /Library/WebServer/Documents/wordpress
sudo cp wp-config-sample.php wp-config.php

私のwp-config.phpはこのようになっています。

<?php
// ** MySQL settings ** //
define('DB_NAME', 'wordpress');    // The name of the database
define('DB_USER', 'ユーザ名');     // Your MySQL username
define('DB_PASSWORD', 'パスワード'); // ...and password
define('DB_HOST', 'localhost');    // 99% chance you won't need to change this value
#define('DB_CHARSET', 'utf8');
#define('DB_COLLATE', '');

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!

// Change this to localize WordPress.  A corresponding MO file for the
// chosen language must be installed to wp-content/languages.
// For example, install de.mo to wp-content/languages and set WPLANG to 'de'
// to enable German language support.
define ('WPLANG', '');

/* That's all, stop editing! Happy blogging. */

define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');
?>

この2行はコメントアウトしました。これで、ようやく日本語で書くのも表示するのも問題なくできるようになりました。

#define('DB_CHARSET', 'utf8');
#define('DB_COLLATE', '');

かなりgooglingしていろいろな設定を試してみたり、日本語版WordPressに入れ替えてみたりしたのですが、どうしても日本語が文字化けしていました。最終的に、文字化けしないUbuntuの設定と同じにしてみたら、Leopardでも文字化けしなくなったのでした。