マシンパワーが余りまくってるのでローカルにウェブ環境を整えてみようと思います。
Windows環境でもお手軽にインストールできそうなxamppというパッケージで一気に
入れてみたいと思いますが、その前に
Windows VistaではC:\Programfilesのフォルダのパーミッションが限定されている
のでCドライブ直下にインストールしたリーナと注意書きがありました。
はい、そうしましょうか
ダウンロードできるものが3つあります。
・XAMPP
・XAMPPアドオン
・XAMPP Lite
XAMPPにどんなものが含まれてるか見てみると、中国の人口か!ってぐらい
鬼のようにパッケージされています。これは使いこなせません、パスです。
次にXAMPPアドオンですが、これはJavaに特化した感じのものです。
迷わずパスです。
最後にXAMPP Liteを見てみると、これまた結構な量がパッケージされて
います。どこがLiteじゃ~い!インドの人口か!
私としてはApache+MySQL+PHP+Perlあたりがあれば充分だったんですが、これでは
XAMPP Liteを選ぶしかありません。
どこかにXAMPP Lite Lite Liteみたいなのがないか探しました
がなさそうです。
というわけでXAMPP Liteのインストール作業を始めます。
ダウンロードしてきたファイルxampplite-win32-1.7.2.exe(25.7MB) を実行します。
Should I add shortcuts to the startmenu/desktop? (y/n): n
Should I proceed? (y/x=exit setup): y
Your choice? (y/n): n
Press <Return> to continue:
Press <Return> to continue:
Please choose (1-5/x): 1
コントロールパネルが現れました。
ApacheとMySqlの2つを[Start]させて[Exit]します。
途中、Vistaがブロック解除する旨を聞いてきて悩みましたが、ネットで調べてみると
解除するでいいらしいです。まぁ解除しないと永遠に動かないからね
さてとApacheウェブサーバが機能してるかどうか確認します。
ブラウザから http://localhost/ と打ち込み、見てみます。
バッチリです。
インストールした後で気づいたんですが、ApacheとMySqlが起動してるはずなのに
タスクトレイにはアイコン類などはありません。
それと、インストール時に
Should I add shortcuts to the startmenu/desktop? (y/n): n
を n にしたのでどうやって起動・停止をやるのか・・
ということでインストール先のC:\xampplite内を見てみるとありました。
xampp_restart.exe
xampp_start.exe
xampp_stop.exe
xampp_control.exe
そういうわけですね。
あとは、外部から私のマシンのウェブコンテンツを見られないようにします。
Apache設定ファイルC:\xampplite\apache\conf\httpd.confの240行目
Order allow,deny
Allow from all
↓
Order deny,allow
Deny from all
Allow from localhost
に変更してApacheを再起動して新しい設定を反映させます。
と、その前にDOS窓を立ち上げて設定ファイルの記述ミスがないかチェック
> C:\xampplite\apache\bin\httpd -t
Syntax OK と出たので問題ないですね。
C:\xampplite\xampp_restart.exeを実行します。
Restarting "xampp" ...とDOS窓に出て、やがて消えました。
再度 http://localhost/ にアクセスしてみます。
-------------------
Access forbidden!
Error 403
-------------------
と出て見れなくなりました。
明らかに先ほどの設定で見れなくなりました。自分自身が見れないというのは
セキュリティ強すぎます。
こういう場合は名前解決がされてない場合が多いです。
localhostは最終的に127.0.0.1に変換されます。
そこでApacheの設定を「Allow from 127.0.0.1」に変えてみます。
・・・・状況は変わりません。
C:\xampplite\apache\logs\access.logを開いてApacheのログを見てみます。
::1というIPv6形式のIPアドレスになっていました。
と、ここで思い出しました。先ほどのインストール時にIPv4とかIPv6とか
表示されてたことを・・
そこでC:\xampplite\xampp-control.exeを実行してコントロールパネルを開き、
開き? ひら・・ 既に動いてるとエラー表示されました。
タスクトレイを見てみるといつの間にかアイコンがありました。
これはきっと先ほどリスタートかけたときに起動したということになりますね。
コントロールパネルを見ると右端にボタンが並んでいます。
[Refresh]というのがあるのでここから一発で再起動かけられるみたいですね。
[Setup]ボタンを押してみます。
出てきました、5と打つ度に以下の4種類が順に設定されます。
| 5. enable IPv4 only (current: IPv4/6 (auto)) | NG |
| 5. enable IPv6 only (current: IPv4) | OK |
| 5. enable IPv4/6 (current: IPv6) | NG |
| 5. enable IPv4/6 (auto) (current: IPv4/6) | NG |
いろいろ試した結果、上から2つ目が表示されてる場合のみOKでした。
あと、[Refresh]ボタンでは再起動されていないことがわかりました。
Apache Running [Stop]で止めて、[Start]ボタンで起動できるのでこれで設定を
反映させます。
ちなみに、C:\Windows\System32\drivers\etc\hostsファイルに
127.0.0.1 localhost
をエントリー追加して名前解決する方法もあるようですが、あえて別の方法を
探してみました。
セキュリティ設定のつづき
トップにアクセスすると、リダイレクトされます。
http://localhost/ ⇒ http://localhost/xampp/
そこの左サイドメニューに「セキュリティ」とあります。ここを開いてみます。
http://localhost/security/
これらのXAMPPページはネットワーク経由でアクセス可能です 要注意
MySQLユーザ ルートにパスワードがありません。 要注意
phpmyadminはネットワーク上から自由にアクセスできます 要注意
とメッセージが出ていて、要注意な対象が一覧でわかるようになっています。
このすぐ下に問題修正ページへのリンクがあって、ここからMySQLのルート
パスワード等を設定して問題修正できるようになっています。
便利なものに頼りすぎると本来の基本操作を忘れてしまうのであえて
phpmyadminは殺してSQLインタプリタで直接操作してみます。
まずC:\xampplite\apache\conf\httpd.confにたくさんあるインクルード行を
コメントアウトする。(httpd-default.confとhttpd-mpm.confは有効にしておく)
Include "conf/extra/httpd-mpm.conf"
#Include "conf/extra/httpd-multilang-errordoc.conf"
#Include "conf/extra/httpd-autoindex.conf"
#Include "conf/extra/httpd-languages.conf"
#Include "conf/extra/httpd-userdir.conf"
#Include "conf/extra/httpd-info.conf"
#Include "conf/extra/httpd-vhosts.conf"
#Include "conf/extra/httpd-dav.conf"
#Include "conf/extra/httpd-proxy.conf"
Include "conf/extra/httpd-default.conf"
#Include "conf/extra/httpd-ssl.conf"
ただし、httpd-xampp.confにはphpの設定も含まれているので新たに
C:\xampplite\apache\conf\extra\php.confファイルを作成してそこに
LoadFile "C:/xampplite/php/php5ts.dll"
LoadModule php5_module modules/php5apache2_2.dll
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
AddType text/html .php
を書いて、これをhttpd.confからインクルードするように設定。
Include "conf/extra/php.conf"
以上でApacheを再起動させます。
最後に「コントロールパネル」から[Port-Check]を使って確認します。
SYSTEM表示のサービスがApache(HTTP)とMySQLの2つだけであることを
確認できました。
MySQLの設定については別記します。