xampp for windows+ActivePerl5.8.8のインストール 備忘録

OSの再インストールを余儀なくされたので、せっかくだからと新しいversionのを入れてみました。
・・・しかし、いろいろつまずいてしまったので備忘録としてのメモリー

僕は今のところxhtml+cssだとかデザインメイン(MovableTypeとかWordpressとか)で勉強しているだけなので同じような人はこれで十分かも。

ミッション
ローカル環境へのxamppのインストール。PerlPHPMySQLを利用できるようにして、なおかつMovableTypeWordpressが動く環境にする。(やることいっぱい)

留意点
まずMTを動作させるのにDBD::MySQL等のデータベース用Perlモジュールが必要のよう。なので別途インストールする。

インストール環境
Windows XP Professional (Servis Pack 3)
インストールディレクトリ D:/(お好みで*1

レシピ(用意するもの)

注意点
何回も入れ直して解ったけど、デフォルトのxampp(1.6.8)のPerl Add-on(5.10)ではMTに必要なデーターベースモジュールがなんか認識してくれてない。Perl Add-on入れてPPM(PerlPackageManager)で確認すると入ってる様子なんだけど。Perl Add-on(5.10)は安定してないのかもしれん。この組み合わせで最初よく解らずハマりました。

あとデータベースの文字コードの設定がいまいちピンと来ていないんだけど、試行錯誤考えていじってます。文字コードの設定を後先考えておかないと後で文字化け問題とかデータを移行するとき等に起こると思うのでその辺も苦戦しました。

追記
ローカル環境でのXAMPP+MavableType導入手順を参考にしました。
試してみたのですが、XAMPP(1.6.6a)とPerlアドオン(5.8.8-2.2.8)の組み合わせであれば、DBD::MySQLなどのPerlモジュールも入っており、新たにモジュールを追加する必要なくMTも立ち上げることができます。
ただActivePerlの方が後でいろいろ柔軟にいぢくり回せそうなので、個人的にActivePerlのインストールでPerlを動かせるように設定することに。

はじめに

  1. リンク先からxamppファイルを入手してインストール。インストーラーなので簡単。*2
  2. (xampp自体は最新版(1.6.8)のものを使うことにしました。Perlは別途ActivePerlを入れ、PHPの環境としてまず動かす感じ。)
  3. インストール場所を聞かれるので[D:/]を選ぶ。(お好みで)
  4. インストール途中で「どれ入れとく?」と聞かれるのでapacheMySQLとスタートアップフォルダだけインストール。
  5. インストールが終わったら[Control panelどうしますか?]と聞いてくるので[yes]と空返事をしてそのまま開いておく。

次は細かい設定。

おもむろに修正するファイルたち


apacheの設定(サーバーコンフィグレーション)
D:\xampp\apache\confにある
httpd.conf をテキストエディタで開いて

#LoadModule rewrite_module modules/mod_rewrite.so


を探して行頭の#を削除(リダイレクトを使用できるようにする)

#ScriptInterpreterSource registry

を探して行頭の#を削除(CGIcgi-binディレクトリ以外でも使えるようにする)

ドキュメントルート*3の設定は特に設定せずそのままhtdocsを使う。(設定してみたけどうまくいかなかったから(T_T))

以下は個人用設定(お好みで)

DirectoryIndex index.php index.php4 index.php3 index.cgi index.pl index.html index.htm index.shtml index.phtml

を探して

DirectoryIndex index.cgi index.php index.php4 index.php3 index.pl index.html index.htm index.shtml index.phtml

とちょっこす変更すておく

MySQLの設定
D:\xampp\mysql\binにある
my(拡張子のついて無いファイル)をテキストエディタで開いて

[client]の下に

default-character-set = utf8

を追加

[mysqld]の下に

default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init-connect=SET NAMES utf8

skip-character-set-client-handshake

を追加

[mysqldump]の下に

default-character-set = utf8

を追加

[mysql]の下に

default-character-set = utf8

を追加

MySQLAdminの設定(my.ini)

my.ini をテキストエディタで開いて

[WinMySQLadmin]
Server=D:/xampp/mysql/bin/mysqld-nt.exe

の下に

[client] 
default-character-set=utf8

を追加

php.iniの設定
D:\xampp\apache\binにある
php.ini をテキストエディタで開いて

[eAccelerator]を探して「;」を削除。(PHPの動作を高速化)
[mbstring]を探して「;」を削除。(マルチバイト文字列関数を使えるようにしておく)

文字コードの設定は利用する環境によって変わってくると思います。
個人的には以下のように設定しました。(UTF-8に統一)

mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS

を探して

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

に変更

;default_charset = "iso-8859-1"

を探して

;default_charset = "iso-8859-1"
default_charset = "UTF-8"

と追加

mbstring.encoding_translation = Off

を探して

mbstring.encoding_translation = On

に変更

MySQL側の設定もそうだと思いますが、後々のことを考えて設定しておかないとデーターを移行する時だとか文字化けしたりすんごいことになると思うので注意が必要だなと思います。
例えばモバイルサイトなんかを運営する場合はSJISの方がいいのだろうし...あとから調整できるにしても、ある程度自分の使い方を想定して、最初になるべくスマートな感じにして設定しておいた方が良さそうだなと思いました。utf-8で統一するのが個人的にまだ?な部分があるんだけど今回はutf-8のみでやってみました。

文字コードの設定で参考にしたサイト

以下はお好みで(個人的に設定)

; cgi.force_redirect = 1

を探して「;」を削除して[1→0]に変更。


phpmyadminの設定
D:\xampp\phpMyAdminにある
config.inc.php をテキストエディタで開いて

$cfg['blowfish_secret'] = 'xampp';

の'xampp' を適当なアルファベットの文字列に変更。(クッキー用のコードを生成する用)

$cfg['Servers'][$i]['auth_type'] = 'config';

の'config' => 'cookie'へ変更。('http'でもいいけどこっちの方が楽)

$cfg['Servers'][$i]['password'] = '';

の''に自分のパスワードを入力。

ここまでしたら一度開いていた[XAMPP Control panel]からApacheMySQLを再起動。
MySQLapacheの順で停止させて数秒おいてから逆順で再起動する。


MySQLデータベースの設定(phpMyadmin
ブラウザで http://localhost/phpmyadmin/ にアクセス。
[root]と入れてパスワードは'なし’でログイン。
「特権」をクリックして[root]と表示されている行(2つある)の一番右の特権を編集アイコンをクリック。パスワードを変更するを'それぞれ'設定する。(config.inc.phpで設定したパスワード)

変更が完了したらリンクをどこかクリックする。すると一回はじき出されてパスワードを求められるのでおもむろに先ほど設定したパスワードでログイン。

ログイン後に「新規データベースを作成」より
MovableType用に'mt'、WordPress用に'wp'でデータベースを作る。(名前はお好みで)
 このとき、データベースの照合順序を[utf8_general_ci]に設定して作成しておく。(文字コードで参考にしたサイトによるとこれがいいらしい。まだよく解ってないのでこのへん特に自己責任かも)


セキュリティの設定
/htdocs以下に.htaccessファイルを設置する。

テキストエディタ

order deny,allow
deny from all
allow from localhost
allow from 127.0.0.1

書いて[.htaccess]という名前で保存。文字コードは適当に!


Perlのパスを設定(CGIファイルの関連づけ)
Perlで記述されたファイルをCGIとして実行できるようにするための処理です。
CGIファイルの行頭の

#!/usr/bin/perl -w

の部分を変更せず、Webサーバー上と同じ記述でそのままローカルで動かせるようにする処理です。

  1. [スタート]→[設定]→[コントロールパネル]→[フォルダオプション]→[ファイルの種類]を選択。
  2. [cgicgiファイル)]の項目を一覧から探してクリック。[詳細設定]をクリック。
  3. アクション内にある[open]をクリックして選択してから[編集]をクリック。
  4. [アクションを実行するアプリケーション]のところに"(ドライブ名):\xampp\perl\bin\perl.exe" "%1" %* と入力。[DEEを使う]のチェックは外し、[OK]で入力完了。

他所で[DEEを使う]のチェック外しは良く紹介されていますが、僕個人のPC環境ではチェックが何故か何度やっても外せないのでそのままにしています。動作上は問題ないかと思う。


ActivePerlのインストールと足りないモジュールの追加
上の方で書いたActiverPerl(5.8.8)をダウンロードしてインストールします。
インストーラーに従うだけなのでこちらもスイスイ。Perl環境変数(PATH)も設定してくれるので楽ちん。

ここで試しにhtdocs以下にMT用のファイルを置き
mt/mt-check.cgi にブラウザからアクセスして入っているモジュールの確認。

見ると分かるけど、デフォルトでDBD::mysqlだとかImage::MagickなどがActiverPerl(5.8.8)には入っていません。
とりあえず必要なのはDBD::mysqlです。これがないとMySQLと連携できないので入れます。

参考にしたサイト

Windowsで Movable Typeを動かす
MTでサムネイルを作成するのに使うらしいImage::Magickは下記を参考にしてインストールしてみましたが、何故かImageMagick本家サイトで現在配布されているものはインストーラーが対応してませんでした。[PerlMagickをActivePerl5.10に入れるかい?」と聞いてきてしまい、インストールしてもActivePerl5.8.8ではダメなようでした。(この辺よく解りませんでした。)
WindowsにImage::Magickをインストールする
Image::Magickをどうしても使いたい人はActivePerl5.6+PPMPackagesの方を利用するか、コンパイラの環境を整えてCPANインストールする(参考URL)ような感じなのかと思います。

サムネイル用のモジュールに関してはjavascriptで代用したりほかのスクリプトを使うか、ローカルはあきらめてレンタルサーバーの方(なら入ってるだろうということで)で調整するかすればいいだろうとすっかりあきらめて、後は用意できる他のモジュールだけ入れておくことにしました。(GDの方でなんとかなるんじゃないか?とも思う)

PPMPackagesから
DBI-1.602.zip,DB_File-1.816.zip,DBD-mysql-3.0002.zip,Mail-Sendmail-0.79.zip,DBD-SQLite2-0.33.zipなどダウンロードします。(version新しめのだけチョイス)

全部解凍したら、
windowsキー+Rで[ファイル名を指定して実行]を表示
cmd と入力して Enter
コマンドプロンプトを表示。
コマンドプロンプト上から拡張子が[.ppd]のファイルがある場所まで移動します。

cd /d 解凍した場所のパス

移動したら

ppm install DBI.ppd

と入力して一つずつインストールする。

ひととおり終わったらmt-check.cgiにアクセスして確認できたらMTに関しては準備おっけー。

ppmのインストールは参考サイトを見ながらこのやり方を知ったのですが、あとからもっといいやり方に気づきました。

コマンドプロンプトPerl Package Manager→[Preferences]→[Repositories]
の順でPPMのレポジトリのタブを開き[Location]欄に
http://theory.uwinnipeg.ca/ppms/package.xml
を入力してレポジトリを登録すると、いろいろ手広く簡単にインストール出来るようになりました。
これは勉強になった。


MovableTypeWordPressのインストール

MovableTypeのインストールで注意するのは特にない。
MySQL用のデーターベースは前の手順で作成しているので、config部分のみ設定してインストール。

WordPressのインストール時に注意する点は、「ウィルスバスター」がPCに入っていると、ブラウザ上からインストール作業が出来なくなるので、ソフトが入っている場合には一旦終了しておく必要があります。僕のPCの環境は現在「フレッツウィルスクリア」が入っており、中身はウィルスバスター(互換というかそのもの)なので、やはりソフトを終了するまでインストール途中で不具合がでました。あと、WordPressはインストール後にすぐログインパスワードを変更する必要があるので忘れないうちに設定。

で、終わり。(はしょりすぎ)

あとは再起動する。


今回の作業で気づいた点

  • 古いインストーラー(以前使っていたのはxampp-win32-1.5.4-installer.exe)だとC:とかD:とかドライブ直下にインストールできない。たとえばxamppフォルダーを新たに作成して[D:xampp]にインストールすると[D:xampp:xampp]になる。(フォルダを作成してソコにインストールしないといけないので無駄なことをしている気がする)


たまにはインストールし直すもんだなと思いました。

トライ&エラーで大分時間掛かったけどいろいろ勉強になった。有意義!

*1:備忘録として自分に分かり易い用に書いてますんでご自分の環境に合わせて参考にされてください。

*2:skype入れてる人は注意。skypeのポート80を使うところにチェックが入っているとエラーが出るようです。

*3:http://localhost/ でアクセスした際に表示されるディレクトリ。