Windows版XAMPPで自宅サーバを構築する

XAMPPを使ってWindows環境で自宅サーバを構築します。

XAMPPは、Apache、MySQL、PHP、Perlをひとつにまとめ、簡単にインストール、アンインストールができるようにしたアプリ ケーションです。

apache friends - xampp for windows
http://www.apachefriends.org/jp/xampp-windows.html

Windowsネットワークの設定

自宅サーバ機になるPCに、固定のIPアドレスを設定します。

固定IPアドレスを設定する

固定のIPアドレスを設定します。
・IP Address 192.168.1.10
・Subnet Mask 255.255.255.0
・Default Gateway 192.168.1.1
・DNS Server 192.168.1.1

ルータの設定

自宅サーバを公開するには、ルータを操作し、必要なポートを開放し、外部からのアクセスを許可する必要があります。

LinkIcon自宅サーバ構築時のルータ設定

AVG Anti-Virus Freeのインストール

アンチウイルスソフトとして、フリーのAVG Anti-Virus Freeを使用します。

<AVGダウンロードサイト>
AVG
http://www.avgjapan.com/

ファイアウォールの設定

Windowsファイアウォールを利用します。
特定のプログラムの通信のみファイアウォールを通過できるように「例外」の設定をします。

・コントロールパンル → Windowsファイアウォールをダブルクリックします。
・全般タブで「有効」を選択します。「例外を許可しない」のチェックが外れていることを確認します。
・例外タブで「プログラムの追加」をクリックします。
・プログラム一覧に許可したいプログラムが存在しないときは、「参照」をクリックします。
・許可したいプログラムを選択し、「開く」をクリックします。

Dynamic DO!でドメイン取得

Dynamic DO!で提供しているダイナミックDNSサービスを利用します。

LinkIconDynamic DO!でドメインを取得する

ダイナミックDNSサービスのIPアドレス更新

ダイナミックDNS管理ソフトDiCEを利用し、IPアドレスの更新を行います。

LinkIconダイナミックDNSサービスのIPアドレス更新

XAMPPのインストール

XAMPPのダウンロード

Apache Friends Xampp(xampp-win32-1.7.1-installer.exe)をダウンロードします。

http://www.apachefriends.org/jp/xampp-windows.html#2671
xampp-win32-1.7.1-installer.exe

XAMPP 1.7.1のアプリケーション構成

Apache HTTPD 2.2.11 + Openssl 0.9.8i
MySQL 5.1.33
PHP 5.2.9
phpMyAdmin 3.1.3.1
XAMPP CLI Bundle 1.3
FileZilla FTP Server 0.9.31
Mercury Mail Transport System 4.62

XAMPPのインストール

・xampp-win32-1.7.1-installer.exeをダブルクリックします。
・インストール先は、c:\xampp とします。
・システムオプションメニューは、デフォルトのままとします。
・Xamppコントロールパネルを起動させて、インストールを終了させます。

XAMPPアドオンのインストール

XAMPPアドオンのダウンロード

http://www.apachefriends.org/jp/xampp-windows.html#2675
xampp-win32-perl-addon-5.10.0-2.2.11-pl2-installer.exe

XAMPPアドオンのインストール

・xampp-win32-perl-addon-5.10.0-2.2.11-pl2-installer.exeをダブルクリックします。
・言語に「Japanese」を選択します。
・インストール先として、XAMPPのインストール先と同じ c:\xampp を指定します。

ポートのチェック

サーバアプリケーションで使用されるポートが、他のソフトで使用されていないかどうかを確認します。

・c:\xamppフォルダを開き、xampp-portcheckをダブルクリックします。
・xampp-portcheckが起動し、ポートごとの空き状況を表示します。
・すべてのポートのStutusがfreeになっていることを確認します。

*************************************
*                  XAMPP PortCheck v1
*
*     (c) 2005 Carsten Wiedmann info
*
* This script uses openport.exe:
* (c) 2003 DiamondCS http://www.diam
*************************************

Please wait a moment...


RESULT
------

Service              Port   Status
=====================================
Apache (HTTP)          80   free
Apache (WebDAV)        81   free
Apache (HTTPS)        443   free

MySQL                3306   free

FileZilla (FTP)        21   free
FileZilla (Admin)   14147   free

Mercury (SMTP)         25   free
Mercury (POP3)        110   free
Mercury (IMAP)        143   free

Press Return to continue.

XAMMPの設定

セキュリティ設定方針

・サーバ内(localhost)からのアクセスは許可します。
・LANからのアクセスは許可します。
・上記以外は拒否します。

サーバソフトの起動

・XAMPPコントロールパネルを起動します。
・Apacheを起動します。
・Apache HTTP Serverのブロックを解除します。

・MySqlを起動します。
・mysqldをブロックします。

セキュリティ状態の確認

・Apacheの管理ツールをクリックします。
・日本語をクリックします。
・セキュリティをクリックします。
セキュリティ上の問題を解決するために、
=> http://localhost/security/xamppsecurity.php <= [localhostからのみアクセスできます。] をクリックします。

パスワードの設定

・MySQLのパスワードを設定します。
・「パスワードを変更しました。」をクリックします。

・「XAMPPのディレクトリ制御」で、ユーザ名とパスワードを設定します。
・「安全なXAMPPディレクトリを作成してください。」をクリックします。

パスワード設定の確認

・Apacheの管理ツールをクリックします。
・ユーザ名とパスワードの確認ダイアログの表示で、設定したユーザ名とパスワードを入力します。

セキュリティの設定

アクセス制限がかかっていないフォルダ(ディレクトリ)に対して、LANからしかアクセスできないようにします。

▼httpd.confの編集
c:\xampp\apache\conf\httpd.conf を編集します。
ディレクトリ内のファイル一覧を表示させないように設定します。
Options Indexes FollowSymLinks Includes ExecCGI を
Options FollowSymLinks Includes ExecCGI に変更します。
(OptionsのIndexesを削除します。)

▼extra/httpd-default.confの編集
c:\xampp\apache\conf\extra/httpd-default.confを編集します。
サーバの情報を必要以上に公開しないように設定します。
ServerTokensをFullからProdに、ServerSignature をOnからOffにします。
ServerTokens Full -> ServerTokens Prod
ServerSignature On -> ServerSignature Off

▼extra/httpd-dav.confの編集
c:\xampp\apache\conf\extra\httpd-dav.confを編集します。
WebDAVの機能を無効します。
(アクセス制限も加えておきます。)

[変更前]
<Directory "C:/xampp/webdav">
Dav On
Order allow,deny
Allow from all
AuthName DAV-upload

[変更後]
<Directory "C:/xampp/webdav">
Dav Off
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.
AuthName DAV-upload

▼extra/httpd-xampp.confの編集
c:\xampp\apache\conf\extra/httpd-xampp.confを編集します。

[変更前]
<Directory "C:/xampp/htdocs/xampp">
<IfModule php5_module>
<Files "status.php">
php_admin_flag safe_mode off
</Files>
</IfModule>
</Directory>

[変更後]
<Directory "C:/xampp/htdocs/xampp">
<IfModule php5_module>
<Files "status.php">
php_admin_flag safe_mode off
</Files>
</IfModule>
Order deny,allow
            Deny from all  
            Allow from 127.0.0.1 192.168.1.
</Directory>

[変更前]
<Directory "C:/xampp/security/htdocs">
<IfModule php5_module>
<Files "xamppsecurity.php">
php_admin_flag safe_mode off
</Files>
</IfModule>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

[変更後]
<Directory "C:/xampp/security/htdocs">
<IfModule php5_module>
<Files "xamppsecurity.php">
php_admin_flag safe_mode off
</Files>
</IfModule>
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.
</Directory>

[変更前]
<Directory "C:/xampp/phpMyAdmin">
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

[変更後]
<Directory "C:/xampp/phpMyAdmin">
AllowOverride AuthConfig
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.
</Directory>

[変更前]
<Directory "C:/xampp/webalizer">
<IfModule php5_module>
<Files "webalizer.php">
php_admin_flag safe_mode off
</Files>
</IfModule>
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

[変更後]
<Directory "C:/xampp/webalizer">
<IfModule php5_module>
<Files "webalizer.php">
php_admin_flag safe_mode off
</Files>
</IfModule>
AllowOverride AuthConfig
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.
</Directory>

[変更前]
<Directory "C:/xampp/contrib">
<IfModule php5_module>
<Files "webalizer.php">
php_admin_flag safe_mode off
</Files>
</IfModule>

Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

[変更後]
<Directory "C:/xampp/contrib">
<IfModule php5_module>
<Files "webalizer.php">
php_admin_flag safe_mode off
</Files>
</IfModule>

Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.
</Directory>

▼extra/perl.confの編集
c:\xampp\apache\conf\extra/perl.confを編集します。

[変更前]
<Directory "C:/xampp/htdocs/modperl/">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Directory>

[変更後]
<Directory "C:/xampp/htdocs/modperl/">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.
</Directory>

[変更前]
<Directory "C:/xampp/htdocs/modperlasp/">
SetHandler perl-script
PerlResponseHandler Apache::ASP
PerlSetVar Global .
PerlSetVar StateDir "C:/xampp/tmp"
</Directory>

[変更後]
<Directory "C:/xampp/htdocs/modperlasp/">
SetHandler perl-script
PerlResponseHandler Apache::ASP
PerlSetVar Global .
PerlSetVar StateDir "C:/xampp/tmp"
Order deny,allow
Deny from all
Allow from 127.0.0.1 192.168.1.
</Directory>

▼サンプルCGIの削除
c:\xampp\cgi-binのサンプルCGIを削除します。

▼php.iniの編集
c:\xampp\php\php.iniを編集します。
PHPをSAFEモードにします。

[変更前]
;
; Safe Mode
;
safe_mode = Off

[変更後]
;
; Safe Mode
;
safe_mode = On

設定ファイルのチェック

・コマンドプロンプトを実行します。
・「cd c:\xampp\apache\bin」 と入力します。
・「apache -t」と入力し、設定ファイルをチェックします。
もし、エラーがあればエラーのあるファイル名とライン数を表示します。

サーバソフトの再起動

▼Apacheの停止と起動
Apacheを再起動し設定ファイルの変更を有効にします。
XAMPPコントロールパネルでApacheの「停止」をクリックし次に「開始」をクリックします。

▼セキュリティ状態の確認
XAMPPコントロールパネルで「Admin...」をクリックし「セキュリティ」をクリックします。

status.gif

XAMPP添付サンプルファイルの削除

c:\xampp\htdocsフォルダにある
index.html
index.php
を削除します。

index.html作成とアクセス確認

c:\xampp\htdocsにテスト用のindex.htmlを作成します。

LinkIconXAMPPで自宅サーバを構築する (テスト用ページ)

[LAN側のPCから]
http://プライベートIPアドレス/

[インターネット側から]
http://サーバーネーム/

Mecury/32 Mail Serverの設定

Mercury/32をセットアップしてメールサーバを構築します。

LinkIconMecury/32 Mail Serverの設定

FTP FileZilla Serverの設定

FileZillaをセットアップしてFTPサーバを構築します。

LinkIconFTP FileZilla Serverの設定


2009.10.10