KUNISAN.JPブログ - 1166 / 1692 ページ

新規書き込み

XAMPPをネットブック(Windows 7 Starter)に入れてWEBサーバーに

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月9日
XAMPPをネットブック(Windows 7 Starter)に入れてWEBサーバーに昨日XAMPPのインストールとHTTPのインターネット公開の手順を説明したばかりですが、その日のうちにMySQL(データベース)とFileZilla(FTPサーバー)とMercury(メールサーバー)の全てについて動作確認が取れてしまいました。それを踏まえた上で、わが家で放置状態だったネットブック(FRONTIER FRNU305/Windows 7 Starter)にXAMPPをインストールして、WEBサーバーとして活用することにもしました。せっかくなので、そのあたりの要点についてまとめておきたいと思います。私が将来思い返す時にも便利だと思いますので…。

環境
OS: Windows 7 Starter(FRONTIER FRNU305)
ルーター: WZR-HP-G300NH(BUFFALO製)
XAMPP Windows版: バージョン1.7.3

※下記設定はあくまで一例ですので、セキュリティに関しては自己責任でお願いします。
※以下の手順を参考にして何らか被害を被ったとしても、当方は何の責任も負いませんので予めご了承ください。

■ MySQL(データベース)
普段使っているWebARENA SuiteXについても、MySQLの管理画面はphpMyAdminなので、個人的には馴染みはあります。ただ、SuiteXの方はUTF-8エンコードを基本としているのに対し、XAMPPは特にPHPとの連携でSJISエンコードを意識しないとうまく動きません(php.ini等、設定ファイルをいじれば話は別です)。
まずはphpMyAdminでデータベースを作成して、テーブル作成・指定の上、「インポート」メニューからCSVファイル等のデータをインポートできます。「インポートするファイル」をローカルのCSVファイルを選択し、(ExcelでCSVファイルを作成した場合には)「ファイルの文字セット」をSJIS、「インポートするファイルの形式」をCSVとして、オプション欄の「フィールド区切り位置」を「,」と変更することでデータを取り込めます。
なお、SuiteXで使っているPHPプログラムをそのままXAMPPで動かしたところ、「????」とクエスチョンマークが多数出てくる文字化けが発生してしまいました。phpMyAdmin側で色々と設定を変えてみたのですがうまくいかず、Googleで調べた結果、PHPプログラムのクエリー実行の前に「mysql_query('SET CHARACTER SET SJIS');」の一文を入れることで問題解決しました。

■ FileZilla(FTPサーバー)
初期設定の注意点をまとめておきます。
・Windowsファイアウォール、ルーター共に、21番ポート(FTP接続用)、60000-60100番ポート(FTPデータ転送用/任意のプライベートポート番号)を開けておきます。
・FileZillaの"Server Options(画面上の左から3番目の歯車付アイコン)"をクリックし、"Passive mode settings"を選択、"Use custom port range:"の下の空欄2箇所(半分画面の外にはみ出している)に60000、600100(任意のプライベートポート番号)と入れます。また、"Admin Interface settings"の下にある、"Change admin password"にチェックを入れて、下の空欄に管理者用のパスワードを入れて設定しておきます。
・"Users(画面上の左から4番目の顔とパソコンのアイコン)"をクリックし、General→Usersから不要なユーザー名を全て削除(Remove)。Addボタンを押してユーザーを追加し、パスワードも併せて設定します。続いて"Shared folders"からAddボタンを押して、htdocsフォルダを選択します。フォルダが表示されているボックスの右にある、"Files"欄、"Directories"欄の各項目にチェックを入れて、必要な操作権限を設定しておきます。

■ ダイナミックDNSサービス
メールサーバーの設定をする上で、IPアドレスの数字だけでは面倒なので、事前にWEBサーバー名(サーバーネーム)を決めておいた方が便利です。ただし、プロバイダの固定IPを利用するのはコストがかかってしまうので、可変グローバルIPに対してサーバー名をリアルタイムに付けてくれる「ダイナミックDNSサービス」を利用します。
私はこちらのサイトからサーバー名を取得しました(サーバー名の一例: "XXXX.ddo.jp")。無料で利用できます(有料サービスもあります)。

Dynamic DO!.jp
http://ddo.jp/

基本的にはグローバルIPが変わる度に、IPアドレスの更新作業が必要なのですが、それを自動でやってくれるフリーソフトがあります。ダウンロードサイトはこちらです。

DiCE
http://www.hi-ho.ne.jp/yoshihiro_e/dice/


■ Mercury(メールサーバー)
XAMPPの中で、一番設定が難しかったのがMercury(メールサーバー)でした。初期設定の注意点をまとめておきます。
・Windowsファイアウォール、ルーター共に、25番ポート(SMTP接続用)を開けておきます。
・Configuration→Protocol modulesから、必要なモジュールを選択します。まず、"MercuryS SMTP server"、"MercuryP POP3 server"の2つにチェックを入れます。プロバイダが25番ポートブロックを実行している場合には、"MercuryC SMTP relaying client"を選択、実行していない場合には"MercuryE SMTP end-to-end delivery client"を選択します。一旦管理画面を閉じて、再び管理画面を開くと、必要なプロトコル管理ウィンドウのみが出てきます。我が家のプロバイダーは25番ポートブロックを実行しているので、ここでは"MercuryC SMTP relaying client"の方を説明します。
・Configuration→Users→Addから、Usernameにユーザー名(アカウント名)、Mail passwordにパスワードを入れます。
・Configuration→MercuryS SMTP server→Connectiong control→Add restrictionと開き、メール送信を許可する送信元IPアドレスを設定します。基本的には自身の127.0.0.1とローカルネットワークの192.168.XXX.0-192.168.XXX.255の2つを設定して、それぞれ"Allow connections"を選択、"Connections from this address range may relay …"と"Connetions from this address range are exempt from …"の2つにチェックを入れます。これによりローカルからのメール送信のみ対応し、外部からの不正なメール送信を防げます。
・Configuration→MercuryC SMTP clientを開きます。Smart host nameにプロバイダーのSMTPサーバー名を入れて、"Credentials for SMTP Authentication …"と書かれているところに、ユーザーアカウント、パスワードを入れます。メール送信にPOP3認証が必要な場合には、"Authenticate via …"にチェックを入れて、"Connect to POP3 host"に、POP3サーバー名を入れます。
・Configuration→Mercury core module→Local domains→Add new domainから、サーバー名を登録します。Local host or serverにはlocalhostと入れて、Internet nameにはダイナミックDNSサービスで取得したサーバー名(例: "XXXXX.ddo.jp")などを入力します。

基本的にはこれで完了なのですが、プロバイダのSMTPサーバーの中に、自社ドメイン以外のアドレスを利用した場合にエラーを返すものがあります。ただし、送信メール中継専用のSMTPサーバーを持っているところもあるので、詳しくはプロバイダのホームページなどで詳細をチェックした方がいいでしょう。参考までに一例を上げておきます。

BIGLOBE中継サーバ利用申込
http://support.biglobe.ne.jp/faq/settei/op25b/relay.html


■ ホスト名設定
ルーターにDNS中継機能やホスト設定がある場合を除き、XAMPPをインストールしたパソコンや同じネットワーク内のパソコンから、サーバー名を使ってWEBサーバーにアクセスできません(ブラウザのアドレス欄にサーバー名を入れると、ルーターの管理画面が表示されたりします)。これを回避する策として、Windowsのホスト設定ファイルを編集する方法があります。"C:\Windows\System32\drivers\etc"フォルダ内の"hosts"をメモ帳などで開いて、設定を追加することができます。

設定例 → 192.168.XXX.100 XXXXX.ddo.jp

パソコンを再起動すると、サーバー名を使ってWEBサーバーにアクセスすることができるようになります。


以上で一通りの設定が完了しました。このままの設定では、外部からメールの送受信ができないなど、使い方によっては問題が生じてしまいますが、何しろXAMPPでは隅から隅まで細かい設定ができるので工夫のし甲斐があります。

あと、私のホームページでは何点かImage-Magick(Perl-Magick)を使用しているものがあるのですが、何をどうやっても"use Image::Magick;"のモジュール宣言でエラー(=Premature end of script headers)が出てしまい解決できません。インストールはppm.batを使って正常に完了していて、フォルダ(C:\xampp\perl\site\lib)にもそれらしきファイルとフォルダが一式入っています。Googleで調べたところ、同じようなトラブルを持った人が多く、しかも解決している例が見つかりませんでした。日本語だけでなく、英語でも同じような状況です。私自身よく理解できていませんが、Image-Magickが最新バージョンのPerlに対応していないから(?)ということが書かれていたり、中には「Image-Magickを使うのをやめて、GD等別のモジュールを使う」というのがありました。ただ、これはプログラム変更の手間がかかるのであまりやりたくはありませんね…。まあ、私のホームページの中で大きな問題になるのは「画像編集君」だけで、別にこれを自宅サーバーの方に移行する予定もないので、当面はこのまま問題を放置しておくしかなさそうです。

自宅サーバーを立ち上げたまではいいのですが、これをどう使うか具体的なアイデアについては模索中です。ただ、基本的にはフリーソフトと有り合わせの機器だけで自宅サーバーが構築できたので、「もとを取らないと…」という切迫感のようなものがないのは幸いです。

参考書籍: XAMPPではじめる全部無料のかんたん+最新自宅サーバーfor Windows

XAMPPインストール&HTTPインターネット公開の手順(前の日の記事)





Web管理関連記事(リンク一覧): SPF、DKIM、DMARCの設定とネームサーバー(DNS)設定のトラブル / さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / KUNISAN.JPサイトのメンテナンス(2018) / Webサーバー引っ越し(さくらインターネット スタンダード)とHTTPS(常時SSL)化 / ...(記事連続表示)

関連カテゴリー: Web管理関連記事, WindowsPC関連記事

XAMPPではじめる全部無料のかんたん+最新自宅サーバーfor Windows
XAMPPではじめる全部無料のかんたん+最新自宅サーバーfor Windows をAmazon.co.jpでチェック