Windows web server ---インストール・設定編---   (mod.18Jan2009)     >>TOP
  1. Perlのインストール
  2. PHP5のインストール
  3. Apache2.2のインストール
    SSLの設定
    サービスの自動/手動起動の切替設定
環境:Windows XP
Windows PC でサーバを稼動させ,CGIやPHPなどのプログラム動作の確認などを行うことを目的にしています。従って,ローカルマシーンとしてなので,WEBサーバとして公開するには他の設定をする必要がありますが,ここでは説明していません。
httped2.2.Xではベースの conf は httpd.conf で設定し,他の設定は conf\extra 内のファイルを個別に設定することになる。これらの設定を有効にするには,httpd.conf の終わりの方に #Include ・・・・ が幾つか在るので設定したい項目の#を取ればOK。


Perlのインストール

http://www.activestate.com/
 のサイトから ActivePerl-5.6.1.638-MSWin32-x86.msi をダウンロード。
  1. ダウンロードしたアイコンをダブルクリック
  2. Next> (をクリック) [Fig.1]
  3. I accept the terms in the Licence Agreement (選択) [Fig.2]
    Next >  をクリック
  4. Browse  (をクリック) [Fig.3]
  5. Folder name: C:\usr\local (と入力)  [Fig.4]
    OK (をクリック)
  6. Next >  (をクリック)  [Fig.5]
  7. Next >  (をクリック)  [Fig.6]
  8. Next >  (をクリック)  [Fig.7]
  9. Install  (をクリック)  [Fig.8]
    しばらく待つ  [Fig.9]
  10. Finish   (をクリック)




PHPのインストール

http://www.php.net/ のサイトから php-5.2.1-Win32.zip をダウンロード。
  1. C:の下にphpフォルダを作成して,そのディレクトリ内に解凍する。
  2. C:\php 内に解凍された2つのファイルを C:\WINDOWS にコピーする。
    php5ts.dll
    php.ini-dist
  3. コピーしたファイ名を php.ini-dist  から php.ini に変更する。

php.ini をテキストエディタで以下の様に変更する。
  • magic_quotes_gpc = On → magic_quotes_gpc = Off
  • doc_root = → doc_root ="C:/home/user/htdocs"
  • extension_dir = "./" → extension_dir = "C:/php/ext"
  • ;extension=php_mbstring.dll → extension=php_mbstring.dll
  • ;extension=php_gd2.dll → extension=php_gd2.dll
  • ;extension=php_pgsql.dll → extension=php_pgsql.dll





Apache2.2のインストール

Apache Software Foundation から ssl も考えて
apache_2.2.8-win32-x86-openssl-0.9.8g.msi をダウンロード。(ディスクトップにでも保存してください)
Linux(fedora)となるべく同様なパスで行ける様にしたいため, C:\usr\local\apache2\ としてインストールを考えてみる。

  1. ダウンロードしたアイコンをダブルクリック
  2. Next >  (をクリック) [Fig.1]
  3. I accept the terms in the licence agreement (選択)し,
    Next >  (をクリック) [Fig.2]
  4. Next >  (をクリック) [Fig.3]
  5. localhost (入力) [Fig.4]
    localhost (入力)
    admin@localhost (適当に入力)
    for All Users, on Port80, as a Service -- Recommended. (選択)
    Next >  (をクリック)
  6. Typical (選択) [Fig.5]
    Next > (をクリック)
  7. Change... (をクリック) [Fig.6]
    C:\usr\local\apache2\ (書き換える) [Fig.7]
    OK (をクリック)
  8. Next > (をクリック) [Fig.8]
  9. Install  (をクリック) [Fig.9]
    しばらく待つ [Fig.10]
  10. Windows セキュリティの重要な警告が表示されることがある。 [Fig.11]
    この場合ローカルで稼動させるので[ブロックする]を選択
  11. Finish  (をクリック) [Fig.12]
  12. ブラウザーを開き http://localhost/ を試してみる [Fig.13]

SSLの設定

証明書・認証キーの作成
コマンドプロンプトを開き,以下の様に入力する。

mkdir "C:\usr\local\ssl"
copy "C:\usr\local\apache2\conf\openssl.cnf" "C:\usr\local\ssl"
cd "C:\usr\local\apache2\bin"
openssl genrsa -out server_key.pem 1024

すると以下の様に表示される。

Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
..................................++++++
.............++++++
e is 65537 (0x10001)

さらに,以下の様に入力する。

openssl req -new -key server_key.pem -out server.csr

以下の例に従い太字箇所を適当に入力。
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:kyoto
Locality Name (eg, city) []:kyoto
Organization Name (eg, company) [Internet Widgits Pty Ltd]:yuyuyu
Organizational Unit Name (eg, section) []:ayu
Common Name (eg, YOUR name) []:localhost
Email Address []:admin@localhost

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (無しでOK)
An optional company name []: (無しでOK)

以下の様に入力(1行)。

openssl x509 -req -in server.csr -signkey server_key.pem -out server.crt -days 365

結果,以下の様に表示される。

Loading 'screen' into random state - done
Signature ok
subject=/C=JP/ST=kyoto/L=kyoto/O=yuyuyu/OU=ayu/CN=localhost/emailAddress=admin@l
ocalhost
Getting Private key

以上で,C:\usr\local\apache2\bin 内に server.crtserver_key.pem が作成されているのを確認して,server_key.pem ファイルを server.key に名前変更し,これら2つのファイルを confフォルダに移動。
メモ:
認証の再発行あるいは変更などしたい場合は,作成された C:\usr\local\apache2\bin 内にserver.scr,server.crt,server_key.pem などのファイルがあれば全て削除してから作成し直す。

rename server_key.pem server.key
move server.key "C:\usr\local\apache2\conf"
move server.crt "C:\usr\local\apache2\conf"

ここで,とりあえず最低限の設定でSSL認証ができるようにしてみる。
  • httpd.conf の設定(C:\usr\local\apache2\conf\httpd.conf)
    テキストエディタ(メモ帳)等で編集(緑字)

    #LoadModule ssl_module modules/mod_ssl.so (114行あたり)
    LoadModule ssl_module modules/mod_ssl.so

    #Include conf/extra/httpd-ssl.conf (475行あたり)
    Include conf/extra/httpd-ssl.conf

  • httpd-ssl.conf の設定(C:\usr\local\apache2\conf\extra\httpd-ssl.conf)
    テキストエディタ(メモ帳)等で編集(緑字)

    SSLMutex "file:C:/usr/local/apache2/logs/ssl_mutex" (68行あたり)
    #SSLMutex "file:C:/usr/local/apache2/logs/ssl_mutex"

以上で設定が完了したので,apacheを再起動(Apache2.2 -> Restart)する。

SSL動作テスト...
ブラウザーを開き https://localhost/ を試してみる。
SSL認証されると鍵マークが表示される。これは両ブラウザ共通である。


次は httpd.conf をカスタマイズしてPHPやCGIが利用できるようにしてみる。

  • 以下の内容を追加
    LoadModule php5_module C:/php/php5apache2_2.dll
    Action application/x-httpd-php "C:/php/php.exe"
  • DocumentRoot "C:/usr/local/apache2/htdocs" →
    DocumentRoot "C:/home/user/htdocs"
  • <Directory "C:/usr/local/apache2/htdocs"> →
    <Directory "C:/home/user/htdocs">
  • Options Indexes FollowSymLinks →
    Options Indexes FollowSymLinks MultiViews ExecCGI Includes
  • AllowOverride None → AllowOverride All
  • DirectoryIndex index.html index.html.var →
    DirectoryIndex index.html index.htm index.cgi index.php index.rdf
  • ScriptAlias /cgi-bin/ "C:/usr/local/apache2/cgi-bin/" →
    #ScriptAlias /cgi-bin/ "C:/usr/local/apache2/cgi-bin/"
  • <Directory "C:/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>
       ↓
    #<Directory "C:/usr/local/apache2/cgi-bin">
    #AllowOverride None
    #Options None
    #Order allow,deny
    #Allow from all
    #</Directory>
  • #AddHandler cgi-script .cgi → AddHandler cgi-script .cgi .pl
  • #AddType text/html .shtml → AddType text/html .shtml
  • #AddOutputFilter INCLUDES .shtml →
    AddOutputFilter INCLUDES .shtml
    AddType application/x-httpd-php .php

C:の下に home フォルダを作成して,さらに home 内に user その下に htdocs フォルダを作成。
C:\home\user\htdocs になるようにする。
htdocs フォルダ内にHTMLファイルをUPするようにする。
http://localhost/  とすれば C:\home\user\htdocs 内のファイルが見えるようになる。

Restart して設定を更新。


PHP動作テスト...

テキストエディタで以下の3行を作成して,htdocs フォルダに test.php として保存。
<?
echo"PHP test";
?>

http://localhost/test.php と実行すると以下の様に表示される。
PHP test


CGI動作テスト...

テキストエディタで以下の3行を作成して,htdocs フォルダに test.cgi として保存。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "CGI test";

http://localhost/test.cgi と実行すると以下の様に表示される。
CGI test


サービスの自動/手動起動の切替設定 (Windows XP home)

通常,上記の様にApacheをインストールするとサービスは自動起動される。ローカルでHTTPサーバのチェックにするのであれば,CPUに負荷を考慮すれば,PC起動時には停止しておき必要時に起動するようにしたほうが良い。
そのためには,サービスを手動切替にしておく。
設定は以下の様になる。
  1. コントロールパネル=>管理ツール=>サービス から Apache2.2 をダブルクリック [Fig.1]
  2. スタートアップの種類 を 手動 に変更 [Fig.2]
  3. OK をクリック