2 - 連続表示

新規書き込み

※該当の記事タイトル一覧はリンク一覧から参照できます。

PHP+MySQLでアクセス解析(アクセス履歴の保存)

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月12日
先日、ネットブックを自宅サーバー化(FRONTIER FRNU305 + Windows 7 Starter + XAMPP)したものの、どのように使ったらいいかアイデアがありませんでしたが、ふと「アクセス解析プログラムを設置しよう」と思いつきました。

現状のアクセス解析プログラムは、1999年にPerlで自作したものがベースとなっていて、データはテキストファイルとしてサーバー内に保存されています。しかし、データ数が2000~3000件を超えると、単純な並び替え動作でもサーバーエラーが帰ってくることがあり、仕方がないので古いデータを自動的に消去する措置を取っています。ただ、私のホームページの中にも、一日3000件(3000UV)以上アクセスのあるものがあり、そのページについては1日分を下回るデータしか保持出きないという不都合が生じています。このホームページには追加でGoogle Analyticsを利用していますが、外部のサービスだと自作の管理プログラムとの連携が取りづらいこともあり、Google Analyticsは全ホームページへの導入には至っていません。

また、最近ブログパーツなども含めて全体的にアクセス数が増えており、サーバーへの負荷が高まったせいか時折「Server Error」の表示が出てくるようにもなりました。そのため、PerlやPHPで動いている機能の一部を、どこか別のところに移動しないといけないということも思っていました。

このような経緯から、アクセス解析プログラムを自宅サーバーに新設するアイデアに至りました。せっかく自宅でMySQLが使える環境なので、使わない手はありません。現状のアクセス数からデータの大きさを計算したところ、1年間で合計2GB程度でした。ネットブックのHDD空き容量は200GBあるため、古くなったデータを廃棄するような措置を取らなくても、当面は問題ないはずです。

まずは、アクセスデータをMySQLに追加するプログラムを作成してみました。PHPのメインプログラムと、各ページに設置するコードの2本立てになっており、基本はJavaScriptで飛ばされたデータをPHPで受け取るという仕組みになっています。

問題点としては、MySQLの日本語設定がちゃんとなっていないと、phpMyAdminでの表示が文字化けしてしまうことと(PHPでデータを取り出す分には問題ありません)、Yahoo!Searchのクエリーなど、URLエンコード済みの文字列をJavaScriptでURLエンコードしてPHPでデコードすると、アドレス欄に表記されるようなURLエンコードの文字列ではなく日本語が表示されてしまうことがあります。

ただ、どちらもそんなに大きな問題ではないので、すでに一部のページでこのプログラムを稼働させています。データを解析するプログラムはこれから制作にかかりますが、面白そうなものができたらまた公開したいと思います。

※下記プログラムのご利用は自己責任でお願いします。当方はいかなるサポートも行っておりません。

■■ 1.アクセスデータをMySQLに追加 ■■■

<?php
//データベース「DB」のフィールド名一覧(括弧内はデータ型)
//0.NO(INT/auto_increment) 1.TIME(INT) 2.IP(TEXT) 3.USERAGENT(TEXT) 4.ID(TEXT) 5.UV(INT) 6.PV(INT) 7.REFERER(TEXT) 8.PAGEURL(TEXT) 9.EX1(TEXT) 10.EX2(TEXT)

$id = $_GET[ID]; //IDの取得
$referer = rawurldecode($_GET[D1]); //アクセス元取得
$pageurl = rawurldecode($_GET[D2]); //ページURL取得
//$pageurl = str_replace('www.','',$pageurl); //集計時に不具合が出る場合、ページURLのwwwは削除
$ex1 = rawurldecode($_GET[D3]); //付加データ(1)取得
$ex2 = rawurldecode($_GET[D4]); //付加データ(2)取得

//カウンタ設置ページのアドレス(指定ドメイン以外のページにJavaScriptを仕込んでカウンターを誤作動させることの無いようにするため、PHPでも直にページURLを取得する)
$pag_info = $_SERVER['HTTP_REFERER'];
$check = split('/',$pag_info);
$check_domain = str_replace('www.','',$check[2]);

//指定のドメインに設置したカウンターであれば、カウンター動作
if (($check_domain == 'XXXXXXXX.com')||($check_domain == 'XXXXXXXX.jp')) {

$time = time(); //タイムスタンプの取得
$ip = $_SERVER['REMOTE_ADDR']; //クライアントのIPアドレス取得
$useragent = $_SERVER['HTTP_USER_AGENT']; //ユーザーエージェントヘッダーの取得

//データベースと交信
//変数設定
$dbserver = 'localhost';
$dbuser = 'XXXXXXXX';
$dbpassword = 'XXXXXXXX';
$dbname = 'XXXXXXXX';

//MySQLに接続する
$con = mysql_connect($dbserver,$dbuser,$dbpassword);
if ($con) {
//print '接続完了<br>';
} else {
//print '接続失敗<br>';
}

//データベースを選択
$selectdb = mysql_select_db($dbname);
if ($selectdb) {
//print 'データベース選択完了<br>';
} else {
//print 'データベース選択失敗<br>';
}

//UVを抽出
$sql = 'SELECT max(UV) FROM DB WHERE ID = \''.$id.'\'';

//DB結果を取得
$data = mysql_query($sql);

//DB結果セットの表示
while ($sd = mysql_fetch_array ($data)) {

//PVの最大値取得
$max_uv = $sd[0];

}

//2時間以内に同じIP、USERAGENT、IDから来たアクセスか確認。
$sql = 'SELECT max(UV), IP, USERAGENT, ID, TIME FROM DB WHERE IP = \''.$ip.'\' AND USERAGENT = \''.$useragent.'\' AND ID = \''.$id.'\' AND TIME > '.($time - 7200).' LIMIT 1';

//DB結果を取得
$data = mysql_query($sql);

//DB結果セットの表示
while ($sd = mysql_fetch_array ($data)) {

//UVの現在値取得(データあれば)
$current_uv = $sd[0];

}

//2時間以内に同じアクセスがある場合にはUVを更新せず、ない場合にはUVに1追加する
if ($current_uv > 0) {
$uv = $current_uv;
} else {
$uv = $max_uv + 1;
}

//PVを抽出
$sql = 'SELECT max(PV) FROM DB WHERE ID = \''.$id.'\'';

//DB結果を取得
$data = mysql_query($sql);

//DB結果セットの表示
while ($sd = mysql_fetch_array ($data)) {

//PVの最大値取得
$max_pv = $sd[0];

}

//新しいPV
$pv = $max_pv + 1;

//テーブルにレコードを追加する
$sql = 'INSERT INTO DB
(TIME,IP,USERAGENT,ID,UV,PV,REFERER,PAGEURL,EX1,EX2)
VALUES
('.$time.',"'.$ip.'","'.$useragent.'","'.$id.'",'.$uv.','.$pv.',"'.$referer.'","'.$pageurl.'","'.$ex1.'","'.$ex2.'")';
if (mysql_query($sql)) {
//print $sd[1].'レコード追加成功<br>';
} else {
//print 'レコード追加失敗<br>';
}

//mySQLとの接続を解除
mysql_close();

}

?>

■■■■■■■■■■■■■■■■■■■■

■■■ 2.WEBページに追加するコード ■■■

<script type="text/javascript">
<!--//
ID = "TEST" //サイトID
D1 = document.referrer;
D1 = encodeURIComponent(D1);
D2 = location.href;
D2 = encodeURIComponent(D2);
D3 = "";
D3 = encodeURIComponent(D3);
D4 = "";
D4 = encodeURIComponent(D4);
document.write("<img src=\"http://kunisan.ddo.jp/counter/?ID="+ID+"&D1="+D1+"&D2="+D2+"&D3="+D3+"&D4="+D4+"\" width=\"1\" height=\"1\"><br>");
//-->
</script>

■■■■■■■■■■■■■■■■■■■■



PHP関連記事(リンク一覧): さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / PHP REVERSI(オセロもどき)の続き / PHP REVERSI(リバーシ) - オセロもどきゲームの公開 / PHP版-簡易アクセスブロック(IPアドレス、ホスト名、OS、ブラウザ名で制御) / ...(記事連続表示)

MySQL全機能バイブル ~現場で役立つAtoZ~
MySQL全機能バイブル ~現場で役立つAtoZ~ をAmazon.co.jpでチェック

新ホームページ「町の噂DB」公開

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月10日
新ホームページ「町の噂DB」公開前作の「駅近君」の公開からまだ1週間も経っていませんが、また新しいホームページを立ち上げました。

町の噂DB
http://kunisan.jp/machi/

内容は日本全国区市町村の地図、最新のつぶやき(うわさ話、旅情報、商品の宣伝など)、基本情報が同時に得られるというものです。技術的には「駅近君」と同様、PHP+MySQLの組み合わせでデータの照合などを行いつつ、Google Maps APIで地図を表示し、Twitter APIでつぶやきを取得し、Wikipedia APIで区市町村の基本情報を得る、ということをやっています。

「駅近君」と違うのは、情報引き出しのベースになるのが「駅名」ではなく、「区市町村」になっているところと、バリューコマースの広告がないことです。逆に言えば、それ以外のところで大きな違いはなく、プログラム面でも多くの部分をそのまま流用できました。



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

全国市町村要覧 [平成21年版]市町村の「現在」を知るための必携データブック!
全国市町村要覧 [平成21年版]市町村の「現在」を知るための必携データブック! をAmazon.co.jpでチェック
コメント:新ホームページ「町の噂DB」公開
名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2011年7月25日
都合により「町の噂DB」は閉鎖しました。

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インターネット公開の手順(前の日の記事)



WindowsPC関連記事(リンク一覧): エレコム ワイヤレスキーボード・マウスセット TK-FDM110MBK / ロジクール ワイヤレスマウスキーボードセット(無線) MK270G / 【2024年最新型】Omikamo Bluetoothキーボード 折り畳み式 テンキー付き / Bluetooth折りたたみキーボード SKB-BT-35BK(SANWA SUPPLY) / Panasonic Let's Note CF-SR3J9LAC - 息子の大学用パソコン / ...(記事連続表示)

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

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

自作PC(Windows7)にXAMPPをインストールして自宅サーバー化

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月8日
自作PC(Windows7)にXAMPPをインストールして自宅サーバー化先日、仮想マシン(VirtualBox)上にUbuntu(Linux)を入れましたが、これはもともとLinux上にWEB(ウェブ)サーバーを構築する上での勉強の足がかりとして考えていました。しかし、あるホームページにWindows上でWEBサーバーを構築できる「XAMPP」というソフトが紹介されていて、「モノは試し」ということで早速ダウンロード&インストールしてみました。

何年も前の話になりますが、自宅でWEBサーバーを立ち上げようと色々なホームページを当たったりしたことがあったのですが、まともに動かすには何種類もソフトをインストールしなければいけない上に、設定も面倒そうで、そのままあきらめた経緯があります。ところがXAMPPはインストールして管理ソフトを立ち上げ、「START」ボタンを押すだけでWEBサーバーが出来上がってしまいます。ネットワーク絡みなど、細かい設定は無くはないのですが、私が最初に自宅サーバーを立ち上げようとしていた頃を考えると、作業や設定が本当に簡単になりました。

せっかくなので、XAMPPのインストールから、ホームページをインターネット上に公開するまでの手順を紹介しておきます。ちなみにうちのパソコンの環境は以下の通りです。

OS: Windows 7 Home Premium(64bit版)
ルーター: WZR-HP-G300NH(BUFFALO製)
XAMPP Windows版: バージョン1.7.3

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

1.インストールファイル(自己解凍型RARアーカイブ)をAPACHE FRIENDSのホームページからダウンロードします。
http://www.apachefriends.org/jp/xampp-windows.html

2.ダウンロードしたファイルを開きインストールを開始します。
Destination folder(インストール先フォルダ)は、デフォルトの"C:\"のまま「Install」ボタンをクリックします。

3.コマンドプロンプトが立ち上がり、いくつか質問されますが、全てそのまま「Enter」キーを押して進めます。

4.コマンドプロンプト画面の最後はメニューです。1を選択してXAMPPコントロールパネルを開きます。

5.Apache(HTTPサーバー)、MySql(データベース)、FileZilla(FTPサーバー)、Mercury(メールサーバー)の右にある「Start」ボタンをそれぞれクリックして起動します。起動すると緑色で「Running」と表示されます。

6.起動途中、セキュリティの確認メッセージが出ることがあります。ここでは「アクセスを許可する」ボタンをクリックします。

7.ブラウザーを起動して、アドレス欄に「http://localhost/」と入力します。XAMPPの管理ページが表示されるので、「日本語」と書かれているリンクをクリックします。ここからサービス状況の把握や、パスワード設定などのセキュリティ管理を行うことができます。インターネット上に公開する前に、必ず画面左の「セキュリティ」からセキュリティ状況の確認とパスワード設定を行うようにしてください。

8.Windows左下のスタートボタンから、コンピューター→ローカルディスク(C:)→xampp→htdocsと開きます。ここにWEB用ファイル(HTML、PHP、CGIなど)を入れることで、ブラウザーからの閲覧が可能になります。例えば、ここに「test.html」というファイルを入れた場合には、ブラウザーのアドレス欄に「http://localhost/test.html」と入れると、ページを閲覧することができます。なお、このフォルダとcgi-binフォルダにデフォルトで入っているファイルは、セキュリティ面から削除した方が無難です。

9.続いて、同じネットワーク内の別パソコンからホームページが閲覧できるように設定します。まず、XAMPPをインストールしたパソコンのIPアドレスを確認します。わからない場合には、コマンドプロンプトを立ち上げて(Windows左下のスタートから、空欄に「cmd」と入れて検索)、「ipconfig」と打ち込んでIPアドレス(例:192.168.XXX.XXX)を確認します。

10.Winodwsのコントロールパネルを開き、Windowsファイアウォール→詳細設定→受信の規則→新しい規則と開きます。ウィザードが開いたら、規則の種類は「ポート」を選択、プロトコルは「TCP」を選択、特定のローカルポートは「80」と入力、操作は「接続を許可する」を選択、プロファイルは特に指定せず、適当な名前を付けて設定を完了します。

→ネットワーク内の別のパソコンのブラウザーのアドレス欄に、「http://(上記で確認したIPアドレス)/」と入力して、XAMPPの管理ページが表示されていれば成功です。

11.最後にインターネット側からのホームページが閲覧できるようにルーターを設定します。まず、ルーターのインターネット側IPアドレスを確認します。確認方法は色々とありますが、例えば下記サイトで確認が可能です。
http://www.cman.jp/network/support/go_access.cgi

12.ルーターの管理画面からポート変換メニューを開きます。(WZR-HP-G300NHの場合)Internet側IPアドレスを「エアステーションのInternet側IPアドレス」として、プロトコルはTCP/UDPを選択、任意のTCP/UDPポートを「80」と指定します。LAN側ポートは空白のままでも「80」と自動的に設定されます。

→自宅ネットワーク外のパソコンや携帯端末(3G回線のスマートフォンなど)のブラウザから、「http://(上記で確認したインターネット側IPアドレス)/」にアクセスして、XAMPPの管理画面が出たら完全に開通です。

私はKUNISAN.JP用ホスティングサーバーとして、WebARENAのSuiteXを利用していますが、XAMPPを使用してみた感想は…、

・通常のHTMLは問題なく開ける。
・CGI(Perl)は最初の一行目を「#!/usr/local/bin/perl」から「#!C:\xampp\perl\bin\perl.exe」とすれば普通に動く。
・PHPの日本語処理(特にフォームを使用した処理)は、SuiteXは基本UTF-8、XAMPPは基本SJISなのでプログラムの調整が必要。(php.iniでも調整可能)

あと、上記の説明では触れませんでしたが、パソコンのネットワーク設定が自動(DHCP)になっていると、パソコン立ち上げの度にIPアドレスが変わる可能性があります。加えて、通常のブロバイダ契約では、ルーターの再起動時にインターネット側のIPアドレスも変わってしまいます。パソコンを固定IPに設定して、さらにプロバイダと固定IP契約を結ぶと、どちらのIPアドレスも変わらなくなり、管理が楽になりますが、プロバイダの固定IPは通常毎月数千円のコストがかかってしまいます(もしくはダイナミックDNSサービスを利用する手もあります)。

ここではHTTPサーバーの利用を中心に手順を説明しましたが、データベース、FTPサーバー、メールサーバーについても、また機会があれば取り上げたいと思います。

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

XAMPPでMySQL(データベース)とFileZilla(FTPサーバー)とMercury(メールサーバー)の設定(次の日の記事)



WindowsPC関連記事(リンク一覧): エレコム ワイヤレスキーボード・マウスセット TK-FDM110MBK / ロジクール ワイヤレスマウスキーボードセット(無線) MK270G / 【2024年最新型】Omikamo Bluetoothキーボード 折り畳み式 テンキー付き / Bluetooth折りたたみキーボード SKB-BT-35BK(SANWA SUPPLY) / Panasonic Let's Note CF-SR3J9LAC - 息子の大学用パソコン / ...(記事連続表示)

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

XAMPPではじめる全部無料のかんたん+最新自宅サーバーfor Windows
XAMPPではじめる全部無料のかんたん+最新自宅サーバーfor Windows をAmazon.co.jpでチェック
コメント:自作PC(Windows7)にXAMPPをインストールして自宅サーバー化
名前: オーロラ 日付: 2010年10月11日
分かり易い説明、大変参考になりました。
ありがとう。

石神井公園駅上り線高架化完了

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月7日
石神井公園駅上り線高架化完了本日より、石神井公園駅の上り線が高架化されました。上り線と下り線の改札とプラットフォームが完全に分離されたため、間違って今までの改札(現在は下り線専用改札)を通ってしまうと、上り線のプラットフォームに行くことができません。うちのマンションは南口の方に近いので、上り線に乗るには、一旦南口の階段を降りて地下に行き、それから北口の階段を昇って上り線専用の改札を通る必要があります。少し不便になりますが、将来下り線も高架化が完了すれば、階段の昇り降りは無くなり、上り線・下り線の改札の行き来も自由になるので、それまでの辛抱と思うようにしています。

高架化オープン初日ということもあって、プラットフォームにはカメラを持った人が何人かいました。今日は風が強かったものの天気が良く、電車の写真を撮るには絶好の日でもありました。

特に用事はなかったのですが、電車で隣りの練馬高野台まで行ってみることにしました。いつもよりも高いところから見下ろす感じになりますが、よく考えると普段もあまり電車から外を見ることは無いので、特に感慨深さはなかったです。

あと、うちのマンションは線路沿いにあるので、高架化による騒音の影響はどうなのかな、と思いましたが、高架橋では電車特有の「ガタンゴトン」という音が弱くなっていて、電車の車輪とレールが摩擦する「ゴー」という音がメインとなり、以前よりも良くなった印象があります。

踏切の待ち時間も少なくなって、近隣住民としては喜ばしい限りです。

石神井公園駅全景
[ 石神井公園駅全景: 義母のマンションから撮影 ]

石神井公園駅上り線専用改札
[ 石神井公園駅上り線専用改札: 北口にあります ]

石神井公園駅上り線新プラットフォーム上
[ 石神井公園駅上り線新プラットフォーム ]




石神井周辺情報(リンク一覧): 来世は、きっとイタリア人 / スターバックスコーヒー エミオ石神井公園店 / 石神井とらの特製つけ麺(石神井公園) / うなぎ乃助 石神井公園店 / や台ずし 石神井公園町 / ...(記事連続表示)

配線略図で広がる鉄の世界―路線を読み解く&作る本
配線略図で広がる鉄の世界―路線を読み解く&作る本 をAmazon.co.jpでチェック

I-O DATA(アイ・オー・データ) HDC-EU1.0: 外付けハードディスク1TB

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月6日
I-O DATA(アイ・オー・データ) HDC-EU1.0: 外付けハードディスク1TBここ最近、5歳の息子がすっかりテレビ好きになり、我が家のREGZA(37ZV500)を占領するようになってきました。HDD(ハードディスク)への録画や再生の操作も覚えて、気に入った番組があると、リモコンを手に取ってすぐに録画開始、番組が終わってから同じ番組を繰り返し見たりしています。本当に気に入った番組だと、翌週の番組表を出して録画予約をしたりもします。

そんな感じで、昨年購入したNAS(BUFFALO製LS-WH2.0TGL/R1)が、ここ3ヶ月だけで約300GBもスペースが減ってしまいました。ほとんどが息子のテレビ録画分です。

当初NASを入れた目的は、妻と私のパソコンで別々に保存してあった写真ファイルやビデオファイルや音楽ファイルなどの一括管理と、パソコンの定期バックアップでした。その上、ついでにREGZAも繋げてしまえば、ファイル管理を全て一台で済ませられるという計算でした。REGZA購入時に併せて買った外付けハードディスク(I-O DATA製HDCN-U1.0L)は、NAS導入後に「使わない」としてオークションで売却してしまいました。

しかし、息子の「テレビ録画しまくり」は想定外で、このままではあと数カ月でNASがパンクしてしまいます。現在NASはRAID1で1TBx2のミラーリング構成(つまり使える容量は1TBのみ)になっていますが、これを合算した形で2TBで運用しようとしました。しかし、RAID1を解除するには、ハードディスクを一旦空っぽにする必要があるため、ファイルをどこか別の場所に移動しないといけません。ただ、REGZAで録画した番組ファイルは、USB等で別の機器に移動すると、見ることができなくなってしまうとREGZAの説明書に書いてあって、これは「やってはいけないこと」と分かりました。REGZA上で色々と操作すれば、番組ファイルの移動はできなくもないのですが、考えただけでもかなり面倒なことになってきました。

熟考した結果、一番シンプルな方法として、再び外付けハードディスクを購入することにしました。番組ファイルはNASから切り分けて管理します。

アマゾンと近所のヤマダ電機で一番安い外付けハードディスク(1TB)を調べたところ、アマゾンで販売されていたI-O DATAのHDC-EU1.0が一番安かったので、これを購入することにしました。以前オークションで売却してしまったHDCN-U1.0Lの落札価格よりも安く購入できたので、ある意味お得な買い物です。

HDC-EU1.0はパッケージが非常に簡易的で、無地茶色のダンボールにシールが貼ってあるだけです。説明書兼保証書もコピー用紙のようなものが一枚のみ入っています。その分(?)、REGZAへの取り付けも簡単で、電源を繋いでUSBケーブルを差し込み、REGZA上でハードディスクの登録を行って設定完了です。

前機種のHDCN-U1.0Lは、アイドル時にも時折「カリカリ」という音を立てたりしたので少々気になりましたが、HDC-EU1.0はそのような音は鳴らずに、快適にテレビを見ることができます。サイズも小さく、テレビ裏のスペースにスッポリとはまります。

新しい外付けハードディスクは「1TB」ということで、息子の番組録画のペースでは1年持たない可能性もあります。ただ、息子には「見なくなった番組は、ちゃんと削除するように」と注意したことと、仮に番組ファイルが満杯になるような事態になっても、NAS上の共有ファイルへの影響が無くなったことで安心感はあります。

ちなみに、息子については「テレビ見すぎ」の懸念もなくはないのですが、最近のバラエティ番組に多いテロップの影響で、だいぶ漢字が読めるようになってきました。先日もある番組のテロップだけを見て、「朝青龍引退だって!」と普通に言ってました。「バラエティ番組も悪くないな」というのが、私の最近の考えです。



家電製品関連記事(リンク一覧): 東芝レグザ(REGZA) 55Z740Xのリモコン受光部故障 / Sensaphonics Prophonic 2XS(イヤモニ)の故障と再制作 / ダイキンF363ATSSW - 19年ぶりにリビングのエアコンを交換 / GARMIN(ガーミン) Forerunner 965 / Sensaphonics Prophonic 2XS(イヤモニ)のリケーブル / ...(記事連続表示)

I-O DATA USB 2.0/1.1対応 外付型ハードディスク 1TB HDC-EU1.0
I-O DATA USB 2.0/1.1対応 外付型ハードディスク 1TB HDC-EU1.0をAmazon.co.jpでチェック

駅近君-不動産物件検索サイト(マンション、一戸建て、土地)

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月6日
駅近君-不動産物件検索サイト(マンション、一戸建て、土地)新しいホームページを公開します。タイトルは「駅近君」。マンション、一戸建て、土地などの不動産物件を検索できるサイトです。

駅近君
http://kunisan.jp/ekichika/

技術的にはPHP+MySQLの組み合わせで、バリューコマース経由のSUUMOの不動産広告を掲載しつつ、Google Maps APIで地図を表示し、Twitter APIでリアルタイムなつぶやきを流しつつ、Wikipedia APIで駅情報も出してしまうという、「とりあえず何でもやってみた」という感じのサイトに仕上がっています。

検索は駅名から行えます。あいまい検索にも対応していて、検索結果の候補が複数ある場合には、スコアの高いものがリスト上部に表示されるようになっています。ただ、データベースに「かな」情報が入っていないので、「かな」での検索ができないことが少々残念に感じています。

システム的には完成しましたが、デザインやレイアウトは今後も調整していく予定です。対応路線もアクセス状況を見ながら増やしていきます。



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

住まい買うとき売るとき '09→'10決定版 (住宅情報suumo)
住まい買うとき売るとき '09→'10決定版 (住宅情報suumo) をAmazon.co.jpでチェック

ニューヨークバーガー(Big America NEW YORK BURGER)

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月5日
ニューヨークバーガー(Big America NEW YORK BURGER)マクドナルドで今日から期間限定販売の「ニューヨークバーガー(Big America NEW YORK BURGER)」を食べてみました。

事前にマクドナルドのホームページでチェックした限りは、「ベーコンレタスバーガーにトマトを挟んで、クォーターパウンダーの肉に変えただけ」という印象でした。一口目こそ「やっぱり…」と思いましたが、食べ進めて行くとマスタードの辛さが鼻につーんと来ました。なかなか良い刺激です。ベーコンも香ばしさがあって美味しいです。

テキサスバーガーのバーベキューソースも特徴的でしたが、ニューヨークバーガーのマスタードもそれに負けずに主張しています。Big Americaシリーズはこれで2品目ですが、今までのマクドナルドのような万人受けの味から、「一歩だけ外に足を踏み出した」ような印象を感じます。ただ、子供が食べるには少々きつい味だと思います。



マクドナルド関連記事(リンク一覧): ドイツのマクドナルド(7年ぶり) / ギガビッグマック / トリプルチーズバーガー / 1年ぶりのマクドナルドでカマンベールてりたま / ハワイアン バーベキューポーク / ...(記事連続表示)

プレイモービル マクドナルドハッピーセット
プレイモービル マクドナルドハッピーセットをAmazon.co.jpでチェック
コメント:ニューヨークバーガー(Big America NEW YORK BURGER)
名前: 湯浅@IT 日付: 2010年2月9日
先日、ニューヨークバーガー食べようとしてマックに行き、店内のハンバーガーの画像を見て「なんだかなあ・・」と思い急遽違うハンバーガーを頼んだのですが・・・この世間の人気ぶりからすると美味しいのかも知れませんね!

マックとは全然離れますが、最近コンビニで「辛辛魚」という石神井にあるラーメン屋のカップラーメンが発売されてました。このラーメン屋ご存知ですか?
(食べてみましたが超辛いです。辛さに強い私でこれなので、お勧めはしません。辛いもの好きな人にはたまらないでしょう・・・)
コメント:ニューヨークバーガー(Big America NEW YORK BURGER)
名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月9日
「辛辛魚」はうちから歩いて1分のところにある、「麺処 井の庄」のメニューの1つです。辛辛魚は食べたことがありませんが、私には井の庄のラーメンはこってりしすぎなので、辛いのがダメな私にとってはダブルでダメそうなラーメンですね…。

ジョージアご褒美ブレイクを箱買い

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月5日
ジョージアご褒美ブレイクを箱買い私は缶コーヒーを良く飲むのですが、同じ銘柄のものでも、売っている場所で値段が随分と違うので、買うところを時折変えています。

普通の自動販売機で缶コーヒーを購入すると1本120円ですが、近所のディスカウントストアだと1本100円で購入することができます(種類が限定されますが)。たまに、スーパーなどで1本80円を切る値段のものが販売されていることがありますが、そういうものは大抵二流ブランド品で、味にうるさくない私でも「あまり美味しくないかも…」と思ってしまうものが多いです。

最近良く使うのがネット通販での箱買いです。よく利用するのはアマゾンですが、先日楽天の500ポイント贈呈があって、楽天で購入したりもしました。何よりも安くまとめて購入できる上に、持ち運びをしなくていいのが楽です。

今回購入したのは、「ジョージアご褒美ブレイク」です(アマゾン利用)。30本入りで2,670円(送料込み)と、1本90円弱の計算です。アマゾンは時期によって価格の振れが大きいので、こういった低価格の時にはすかさず購入するようにしています。

「ご褒美ブレイク」は甘さが少々強めで、程よい香りとミルク感があり、「上質な午後の休息」という副題の通り、昼食の後に飲んで少しのんびりしたい時に向いているような感じです。「朝からシャキッと」的な味ではありません。



コーヒー関連記事(リンク一覧): WANDA(ワンダ) 極 微糖 深煎りの極み 370gボトル缶 / 260mlの缶コーヒー / タリーズコーヒー(TULLY'S COFFEE)石神井公園店再オープン / マウントレーニア ダブル(Mt. RAINIER DOUBLE) 薫るエスプレッソ / ボスグリーン(BOSS GREEN) 微糖 - トクホの缶コーヒー / ...(記事連続表示)

(お徳用ボックス)ジョージアご褒美ブレイク190g缶×30
(お徳用ボックス)ジョージアご褒美ブレイク190g缶×30をAmazon.co.jpでチェック

Twitterでつぶやくボタン

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月3日
Twitterでつぶやくボタン最近すっかりTwitterにハマっています。mixiよりも気軽に参加できて、チャットのように他の人と時間を合わせる必要もなく、某巨大掲示板のようにウソや誹謗中傷にそれほど出くわさないということに加え、KUNISAN.JPホームページのリンクも気軽に貼れるということもあって(一部サイトでは、書き込みにリンクを貼りまくるとスパム行為になってしまうので)、頻繁にTwitterのページにアクセスしています。

先日、あるホームページを見たところ「Twitterでつぶやく」というリンクがあり、そこをクリックすると、Twitterが開いてコメント欄にそのページを宣伝する文章とURLが自動的に入りました。リンク先URLを「http://twitter.com/home?status=XXXX」として、XXXXのところにURIエンコード(UTF-8)した文章を入れる形です。このアドレスを開くとTwitter上でXXXXがデコードされて文章がコメント欄に入る仕組みになっています。これによりTwitterを使っている不特定多数の人に、ブログやホームページを知ってもらえる効果が期待できます。

ということで、KUNISAN.JPの以下のページにも「Twitterでつぶやく」機能を付けてみました。

適正スポーツ診断(ブログパーツ)
http://kunisan.jp/m/sports/
(診断結果もコメント欄に入ります)

電気代計算君
http://kunisan.jp/denki/
(計算結果もコメント欄に入ります)

新・ブログ掲示板
guest_view.cgi
(記事タイトルもコメント欄に入ります)

適正スポーツ診断はPHP、電気代計算君はJavaScriptを使ってURIエンコードを簡単にかけられたのですが、新・ブログ掲示板に関してはPerlでできていて、URIエンコードがうまくかけられませんでした。「おかしいな」と思って調べたところ、jcode.plモジュールがUTF-8に対応していないためと分かりました。代わりにUTF-8に対応しているJcode.pmモジュールを用いたところ、問題なくURIエンコードすることができました。

「Twitterでつぶやく」機能は、Twitterとホームページを連携させる方法の中では、初歩的なものと思います。今後はTwitter APIを用いるなどして、もっと動的なサービスを作りたいと思っています。まあ、しばらく先になるとは思いますが…。



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

「ツイッター」でビジネスが変わる! Twitter Power
「ツイッター」でビジネスが変わる! Twitter Power をAmazon.co.jpでチェック
コメント:Twitterでつぶやくボタン
名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2011年6月18日
Twitterの仕様が変わり、上記の方法では正しく動作しなくなりました。新しい方法はこちらをご参照ください。


※該当の記事タイトル一覧はリンク一覧から参照できます。