Windows 上の Drupal テスト環境の作り方

xampplite で Windows 上の Drupal5 環境を作る手順。
サーバーで動作させる前の動作テストなどに使えると思う。

Apache Friends (http://www.apachefriends.org/) から xampplite を入手する。
この記事を書いている時点での最新版は1.6.2。
「インストール=フォルダコピー」が Drupal っぽい(?)ってことで ZIP を推奨。
http://www.apachefriends.org/download.php?xampplite-win32-1.6.2.zip

取得したら ZIP を展開、インストール先を決める。

(1) ハードディスクに根を張らせる場合
任意の場所に xampplite フォルダを移動後、直下の setup_xampp.bat を実行。
移動先フォルダのパスを反映するように、apache、php、mysql の各種設定ファイルが書き換えられる。
こうしてインストールした場合、xampplite フォルダを別の場所に移動 or コピーしても正常に動作しないので注意。

(2) リムーバブルドライブに乗せて放浪させる場合
単に xampplite フォルダをインストール先ドライブのルートに移動する。
setup_xampp.bat は実行しないこと。
デフォルトの設定ファイルは、ドライブ文字なしのルート直下(というか Unix ファイルシステムの / 直下) に xampplite フォルダをコピーした環境に対応する設定になっている。
たとえば、httpd.conf の ServerRoot はこんなふう:

ServerRoot "/xampplite/apache"

なので、Windows の場合は、ドライブのルートに xampplite フォルダがコピーしてあれば、ドライブ文字が変わっても問題なく動作する。たとえば、USB メモリのルートに xampplite ごと入れておけば、別のパソコンに移動してドライブ文字が変わっても、問題なく動作する(はず、、、試してはいませんが)
詳しくは、readme_en.txt を参照。

要はルート直下でよければ、フォルダごとコピーすればOK。

ここからは確認作業なので飛ばして可。

-----ここから-----
xampp_start.exe を実行。
コマンドプロンプトを開いて、mysqlコマンドを実行:
(初期状態では root ユーザーでパスワードなし)
\xampplite\mysql\bin\mysql.exe -u root

とやって、

mysql> show variables like 'char%';

とやると、

+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | latin1                           |
| character_set_connection | latin1                           |
| character_set_database   | latin1                           |
| character_set_filesystem | binary                           |
| character_set_results    | latin1                           |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | \xampplite\mysql\share\charsets\ |
+--------------------------+----------------------------------+

いったん抜ける。

> exit

xampp_stop.exe

でサーバーをいったん終了。

-----ここまで-----

MySQL のデフォルトの文字セットを揃えておく。
utf8 にする場合:

notepad \xampplite\mysql\bin\my.cnf

として、[mysqld] のところで、

character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake

と指定。同じ既存のオプションは行頭に # を入れてコメントアウト。

サーバーを再起動:

xampp_start.exe

ふたたび無視してOK:

-----ここから-----

もう一度

\xampplite\mysql\bin\mysql.exe -u root

とやって、

mysql> show variables like 'char%';

とやると、

+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | \xampplite\mysql\share\charsets\ |
+--------------------------+----------------------------------+

-----ここまで-----

そのまま Drupal サイト用のデータベースを作成する。
名前を drupal5 にする場合:

> create database drupal5;

このデータベースに Drupal からアクセスするためのアカウントを作る:
(コピペしやすいようにプロンプトの "> " は削除しときます)

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE
TEMPORARY TABLES, LOCK TABLES
ON drupal5.*
TO 'user'@'localhost' IDENTIFIED BY 'pass';

user のところをユーザー名でおきかえる。
pass のところをパスワードでおきかえる。

> flush privileges;

次に Drupal を入手する。
この記事を書いているときの最新版は 5.1:
http://ftp.osuosl.org/pub/drupal/files/projects/drupal-5.1.tar.gz

この tar.gz を展開、drupal-5.1 フォルダごと xampplite フォルダの下に移動。
\xampplite\htdocs の名前をリネーム(htdocs.org など)
drupal-5.1 フォルダの名前を htdocs に変更。

Webブラウザを立ち上げて下記にアクセス:
http://localhost/install.php

データベースの情報を入力する。この記事の例であれば、

Database type: mysql
Database name: drupal5
Database username: user
Database password: pass

と指定。Advanced option は設定不要。[Save configuration] をクリック。
Drupal 用のデータベーステーブルを作成するスクリプトが走る。
「Drupal installation complete」というメッセージが表示されれば完了。
http://localhost/ にアクセスすると、おなじみのトップ画面が表示される。

下記にアクセスして最初のユーザー(=管理者)を登録する。
http://localhost/?q=user/register

Username:、E-mail address: をそれぞれ指定して [create new account] を実行。

ここで smtp のサーバーがローカルで動作していない場合、いつまでたっても応答が返らない。
登録先ユーザーに通知メールを送ろうとしてブロックしてしまうらしい。
いったん中止。

メールは送信できないまま中止だが、アカウントは登録されている。
ただし、自動生成のパスワードが設定されているのでログインできない。
うまい方法が見つからないので、管理者ユーザのパスワードを忘れてしまった場合に書いた方法でパスワードを再設定する。

mysql のプロンプトから下記のように入力:

> use drupal5;
> UPDATE `users` SET `pass` = MD5('<管理者パスワード>') WHERE `uid` =1 LIMIT 1;

これで先に登録した最初のユーザー(=管理者)でログインできるようになる。

#他にもっと簡単な方法があれば、どなたか教えてください。

次に最小の基本設定を行う。

まず、管理画面にアクセス:
http://localhost/?q=admin

赤い警告が表示されるので status report のリンクをクリックする。
2 つの警告メッセージが表示されるはず。
まず最初のメッセージ:

Cron maintenance tasks Never run

これは、cron.php を一度も呼び出していない場合に表示される。
一度 http://localhost/cron.php にアクセスすれば解決する。

次に、

File system Not writeable

これは、files フォルダを htdocs の下に作れば解決する。
なお、このフォルダは書き込み禁止になっていないことを確認のこと。

ファイルシステムの設定を確認しておく。
http://localhost/?q=admin/settings/file-system

File system path: files
Temporary directory: \xampplite\tmp

となっているはず。必要に応じて変えてください。
とりあえずそのままいきます。

次にクリーン URL の設定。
クエリ文字列が含まれるURLをディレクトリ階層形式にリライトする機能。
http://localhost/?q=admin/settings/clean-urls

"Run the clean URL test" のリンクをクリック:
http://localhost/admin/settings/clean-urls

ここでトップページに戻ってしまうのは、クリーンURL機能が使用する Apache のmod_rewrite が有効になっていないため。

notepad \xampplite\apache\conf\httpd.conf

などどやって、

#LoadModule rewrite_module modules/mod_rewrite.so

の部分のコメントを解除し、

LoadModule rewrite_module modules/mod_rewrite.so

保存する。

\xampplite\apache\xampp_restart.exe

を実行してサーバーを再起動。
で、もう一回クリーンURLテストにアクセス:
http://localhost/admin/settings/clean-urls

今度は Clean URL の Enabled オプションを指定できるようになるはず。
ここで、Enabled をオンにして、[Save configuration]。
これで、以後はURLがすべて「クリーン」になります。

次に日本語環境。
まず、モジュールの画面で、Locale コアモジュールをオンにして、[Save configuration]。
http://localhost/admin/build/modules

その後、Localization 設定画面に移動し、
http://localhost/admin/settings/locale
[Add Language] で日本語を追加する。
(細かい手順は省略)

Drupa.jp から日本語リソースキットを入手。
http://drupal.jp/disknode/get/39/DN_ja_resource_kit_5_1_004.tgz?download
DN_ja_resource_kit_5_1_004.tgz を展開しておく。

Japanese_resource\local\ja.po

を読み込むと100%日本語化完了になるので、jaロケールをデフォルトに設定すれば、日本語版Drupal環境のできあがり。

このときデータベースを初期状態として保存しておくため、ダンプしておく。
コマンドプロンプトから、

C:\xampplite\mysql\bin\mysqldump.exe --opt -u root drupal5 > drupal5.sql

いろいろと試行錯誤してデータベースがぐしゃぐしゃになったら、
このファイルを使って、

C:\xampplite\mysql\bin\mysql.exe -u root drupal5 < drupal5.sql

とやれば、この時点の、追加モジュールなしのまっさらさら状態に戻る(はず)。

以上、なぐりがきですが、とりいそぎ。

shiraneさんのユーザアバター
訂正補足

my.cnf の編集例で下記の部分(太字)が抜けていたので訂正しました。

character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake

投稿者: shirane 日付: 2007-11-06 (火) 13:31