Part 5 ぐらいで完結するかな~と思っていたのですが、小分けにしたこともあり、とうとう 6 突入です。
今日は、帰ってきて 3 時間ぐらい寝たので、まだまだいけます。
といっても、あさってからテストなんだがwww
やってない課題がいくつかあるんだがwww
あああああああああ~~~~~~。
っていうのは、いつものことで、問題なし。
今回は、phpMyAdmin に再挑戦します。
1. phpMyAdmin を動かすための準備
やっと、ソフトウェアのセットアップも終わり、実運用環境への構築開始です。
と、phpMyAdmin をダウンロードしてきて、開いてみたのだが・・・。
あれぇ~?
さっき、たまたま下にいたら、妹がやってた「注入、やる気の上昇に効果。」っての、まじまじと見てしまったから、目がぶっ壊れたか。
まあ、あれよりはましか。(ネクタイつかまれるやつ。ってなぜ知ってる。
おれがあのゲームやるならわかる(いや、それでもあり得ない)が、なぜあいつが買わなきゃならんのだ。
っていうのは置いておいて、思いっきり話がそれた。
何度目をこすっても、このままだ。
あ、MIME の設定忘れてた。
Windows Server は、MIME が登録されているもの以外の拡張子のファイルは、アクセスできないようになっている。
IIS マネージャから、MIME の種類を開く。
MIME の設定一覧が並んでいる。
たぶん、ここに ".php" がないからだと推測した。
右クリックで、追加を押す。
いちいち、拡張子を登録するのも面倒なので、一括登録する。
次のように入力することで、拡張子に関係なくアクセスできるようになる。
- ファイル名の拡張子
.* - MIME の種類
application/octet-stream
しかし、なぜこんな面倒な設定にしてあるのだろう。
セキュリティの観点からみると、危ないのかもしれないが、これはこれで不便すぎる。
ここら辺が、IIS の批判される点なのか?
というか、Microsoft は何かとこういうところ多いような気がする。
僕は、決して IIS が Apache に比べ、相当見劣りするとは感じられないのだが。
2. phpMyAdmin の設定
次に、phpMyAdmin の設定をします。
設定ファイルを作ります。
"config.sample.inc.php" をコピーして、"config.inc.php" にリネームする。
で、そのファイルを編集する。
編集する部分は
17 行目
$cfg['blowfish_secret'] = 'hogehogehoge';
だけでよい。
ここに、適当にランダムな文字列を入れる。
覚える必要もないので、とにかくランダムなものを指定するといい。
くれぐれも、上のほげほげな感じのままにしないこと。
アクセスすると、上のようなログイン画面が現れるはず。
あとは、ログインする。
基本的に、MySQL のすべてのデータベースを管理したいのなら root でログインすべき。
というか、この時点では root 以外のユーザーは登録してないはずなので、root でログインする。
パスワードは、前に設定したものを使う。
4. 実際に動作させてみるが・・・。
ログインできれば、管理画面が表示される。
これで、基本的に phpMyAdmin は使えるようになった。
はずなのだが・・・。
いざ、ユーザーを登録しようと思ったら、こんなエラーが。
HTTP エラー 405.0 - Method Not Allowed
ふざけるな。
原因はここ。
ハンドラマッピングの、スクリプトマップの追加で、要求の制限で、動詞の制限設定をしたはず。
そこに致命的な問題があった。
- 正: GET,POST,HEAD
- 誤: GET, POST, HEAD
GET, POST のあいだに、このようにスペースを入れると、エラーが出る。
しかし、上の画像、よく見てみてくれ。
例: GET, POST
あの~、これはどういうことでしょう?
Microsoft さんよ~。ゲイツ君よ~。
UI のサンプルミスってちゃだめでしょ。
これなら、まだ "例" なんか書いてくれない方が、間違わないからいいかも。
確かに、プログラミングとかで、ソースをきれいに書こうと思うと、たとえば
printf("%d/%d: %s\n", month, day, memo);
printf("%d/%d:%s\n",month,day,memo);
どっちが読みやすいと言われたら、上だろうなぁ。
というか、普通は上のような感じで書くだろうね。
それの慣れで書いてしまったのかもしれないが、自分達の製品の仕様が、スペースを受け付けない仕様なのに、こう書くのはどうかと。
まあ、僕も上記のような慣れで、自然にスペースを入れて、これを後から気付いたんだが。
RTM でもこれ残ってるのかな?
文句言ってやるか。
とりあえず、上記のハンドラマッピングの設定をちゃんとしたら、できるようになりました。
ためしに、Movable Type 用のユーザーを作成してみましたが、無事成功。
Perl の方も、同じようにハンドラマッピングを変えておきましょう。
というわけで、Microsoft のいい加減な "例" により・・・。
まあ、エラー内容からして、すぐにどこら辺が原因だか推測できたので、ハンドラマッピングを確認したわけですが。
IIS 7 では、localhost からアクセスすると、エラー内容が詳細に表示されてくれるので便利です。
まあ、それのおかげ?で、たいして時間は使わないで解決できたのですが・・・。
Part7 は、Movable Type を動かすための準備に入ります。
余談: wwwroot 以外のフォルダを公開する場合
書くタイミングを見過ごしたというか、書くべきところがなかったというか。
内容が適当すぎたというか・・・。
Part 2 あたりで書いた、wwwroot 以外のフォルダを、Web サイトとして公開する場合の注意点を説明するの忘れてました。
というか、これもっと前で書いておかないとまずいような?
とりあえず、この場で説明しておきます。
Windows というのは、パーミッションというものはありません。
しかし、その概念に近いものはあります。
ユーザーのアクセス権です。
Windows のアクセス権は、Linux などの、パーミッションよりは細かい設定ができるようになってます。
確かに、Windows はパーミッションが関係ないというか、suEXEC とかが関係するのですが。
長くなりますが、Linux で使う Apache には、suEXEC というものがあって、Web サーバーを実行しているユーザー以外のユーザーが、CGI や SSI を実行できたりします。
しかし、IIS はそういうものがなく、すべて "IUSR" というユーザーで実行されます。(基本的には)
なので、IUSR のアクセス権がないフォルダにはアクセスできないのです。
まあ、これにはセキュアなところと、セキュアじゃない部分があるのですが、Linux のパーミッションと同じで、そのフォルダ・ファイルごとにアクセスを制限すれば比較的安全です。
ただ、ひとつ言えることは、IIS で公開するフォルダは、IUSR のアクセス権がないとアクセスできないということです。
なので、 wwwroot 以外のフォルダを、公開フォルダに設定する場合は、必ずセキュリティから IUSR の読み取り権限の許可をしてあげてください。
ただ、場合によっては書き込みのきょがか必要な場合もあります。
特に、ブログシステムや、アップローダーなど、ファイルを書き換えたりする場合に必要なことがよくあります。
基本的には、IUSR は読み込み権限のみに設定して、不具合が発生したらその部分だけ書き込み権限を与えるという設定にすると、セキュアになるかなーと思います。
ちなみに、IIS_USER というグループがあり、これに読み込み権限を許可することで、アクセス許可を出すこともできます。
しかし、なぜかこのグループに書き込み許可を出しても、書き込み権限が必要な CGI を動かすことができませんでした。
IUSR に直接、書き込み権限を与えたら動いたのですが・・・。
なんか不思議ですが、バグでしょうかね?
僕が設定か何か間違いましたかね?
Windows Server 2008 関連記事
[注意] 途中で、前の Part の修正が加えられている場合があります。
- Windows Server 2008 でサーバー構築 [Part 1]
OS のセットアップ、セキュリティの設定など - Windows Server 2008 でサーバー構築 [Part 2]
IIS と Perl のセットアップなど - Windows Server 2008 でサーバー構築 [Part 3]
MySQL と PHP のセットアップなど - Windows Server 2008 でサーバー構築 [Part 4]
MySQL の再セットアップ (Part2 修正) - Windows Server 2008 でサーバー構築 [Part 5]
PHP の再セットアップ (Part2 修正) - Windows Server 2008 でサーバー構築 [Part 6]
phpMyAdmin セットアップなど - Windows Server 2008 でサーバー構築 [Part 7]
Movable Type 導入 と Perl 再インストールなど - Windows Server 2008 でサーバー構築 [Part 8]
MySQL データベース設定、NTP サーバーインストールなど - Windows Server 2008 でサーバー構築 [Part 9]
MRTG のセットアップなど - Windows Server 2008 でサーバー構築 [Part 10]
メールサーバーのセットアップなど - Windows Server 2008 でサーバー構築のまとめ
まとめ記事。エラーページの秘密など。

この記事の画像が表示されないんですけど僕だけでしょうか?
100万アクセスおめでとうございます。
画像は、こちらの間違いです。
アドレスが間違ってました。
訂正しておきました。
>100万アクセスおめでとうございます
ありがとうございます。
これからも、当ブログをよろしくお願いします。