Windows上に,Apache2+PHP5の動く環境を作る方法

コンパイラの構成と最適化さて年末年始.いかがお過ごしでしょうか.諸々の事情により帰省もしないので,つまらないテレビ番組に引導を渡し,おうちでParserの勉強でもしようかなと考えていました.会社の野良サーバに置いてあるWikiの情報を自宅で参照したかったのですが,VPN経由での該当サーバへのアクセス許可が最終営業日に間に合いませんでした.

必要あるのに,アクセス出来ない.これは大問題.

さて,どうするか.

前説

必要なデータをプリントアウト.というのも考えましたが,印刷が面倒なことと,該当ページを抽出するのが大変ということで却下.参照しないというのは,勉強効率の面から最悪の選択(自分がまとめた情報以外もあるため).となると,Wikiのデータ全部をお家にもって帰ればいいじゃんという結論に.

まぁ,PCが盗まれたときのことを考えると,非常に危険な行為ではあるのですが....引きこもりには関係ないかなと.

本題

立ち上げているのがPukiWikiなので,ローカルにDBを構築する必要はないので,インストールするのは

  • Webサーバ: Apache 2.2.6
  • PHP5

だけでOK.

Apache2.2.6 のインストール

  • http://localhost/ とかってやって "It worked!"とか表示されればインストール出来ていることになります.

PHP5 のインストール

  • PHPのダウンロードページから,Windows用のバイナリをダウンロード
    • installer版には必要なファイルが無いそうなので,PHP 5.2.5 zip packageを選択
  • 解凍したのを C:/php5 とリネーム

Apacheの設定

httpd.confを編集.編集した後はrestartが必要.

  • 標準ポート80へのアクセスを受け付けるようにする

Listen 8080
→ Listen 80

  • ファイルを表示させるディレクトリを変更

DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"
→ DocumentRoot "C:/temp/pukiwiki/"

    • おいらの場合は,pukiwikiだけが動けばいいので,pukiwikiのデータをコピーしたディレクトリを指定.

ディレクトリを指定したらデフォルトで表示するファイルの追加

DirectoryIndex index.html index.html.var
→  DirectoryIndex index.php index.html index.html.var

  • モジュールの追加

LoadModuleがたくさん書いてあるところの最後に追加

LoadModule php5_module "c:/php5/php5apache2_2.dll"

以下の物も追加.拡張子によって動かすものを変える.


AddType application/x-httpd-php .php
PHPIniDir "c:/php5"

PHP5の設定

  • includ_pathの指定

;include_path = ".;c:\php\includes"
→ include_path = ".;c:\php5\includes;c:\php5\pear"

  • ドキュメントルートの追加

doc_root =
→ doc_root = "c:/www"

  • extensionディレクトリの指定

extension_dir = "./"
→ extension_dir = "c:/php5/ext"

  • default_charsetの設定

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

  • エラーを表示するように変更

display_errors = Off
→ display_errors = On

  • mbstringを利用可能に

;extension=php_mbstring.dll
→ extension=php_mbstring.dll

以下の定義も追加

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = Off
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.detect_order = UTF-8,SJIS-win,eucJP-win
mbstring.substitute_character = none