2 - 連続表示

新規書き込み

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

ハワイアンバーガー(Big America HAWAIIAN BURGER)

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月22日
ハワイアンバーガー(Big America HAWAIIAN BURGER)マクドナルドのBig Americaシリーズ第3段は、ハワイアンバーガーです。ハワイの名物料理「ロコモコ」風に、タマゴとハンバーグとグレイビーソースの組み合わせです。ソースの香りとピリ辛感が特徴的と言えます。

とは言うものの、今までのBig Americaシリーズの中では、インパクトが少々弱く感じます。テキサスバーガーのバーベキューソースやニューヨークバーガーのマスタードソースは、マクドナルドの万人受けの味から少々はみ出た感がありましたが、ハワイアンバーガーのグレイビーソースは「想定内」と言えると思います。バンズにトッピングしてある粉チーズも、それほど強い主張はしていません。

次回(最終回)はカリフォルニアバーガーですが、「赤ワインを使用した特製ソース」というのが気になります。



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

おしごとチャレンジコンパクト マクドナルドレストラン
おしごとチャレンジコンパクト マクドナルドレストランをAmazon.co.jpでチェック

脱Perlへ

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月19日
Perlを使い始めたのが1999年3月。その年の間にPerlでアクセスカウンター、掲示板、チャットを制作し、それから数年後にはImageMagickを応用した「画像編集君」や、パズルゲーム「タイルdeパズル」を作ったりもしました。

それから時が流れて2007年10月からPHPを使い始めるようになりました。当初の目的は某Web広告がPerlでの記述に対応しておらず、PHPを使わざるを得ないということからでした。仕方なくPHPを学習した、というのが正直なところです。

しかし、その後PHPのプログラミングの容易さに魅力を感じるようになりました。Perlでは数行記述する必要のあるファイル関連の処理やメール送信処理など、PHPではたったの一行でできてしまいます。

結局ブログパーツのような小さいプログラムから、ショッピング系サイトやMySQLと連携したものまで、新しいプログラムはPerlは一切使わず、全てPHPで作成するようになってしまいました。先日完成したアクセス解析プログラムもPHPでできています。

現状では細かいメンテでPerlを使うことがありますが、その際にPHPとの記述の違いに若干戸惑うこともあります。また、Perlで中規模以上の改良を行う気力が起きてこなくなってしまいました。「Perlで改良する位なら、PHPでゼロから作り直した方が楽」ということも多々あります(先日のアクセス解析プログラムもそうです)。

現在、「直さなければいけないな」と思っているのが、本ブログ掲示板です。書き込みデータはサーバー上にテキストファイルとして保存してあるのですが、ある条件での抽出や並び替えの機能を付けたりするなど、Perlで機能を追加していくのは容易ではありません。

近いうちに書き込みデータをMySQLに移して、このホームページ全体をPHP化しようと思っています。現状ではブログのカテゴリー追加や左メニューの編集など、全てコードを手打ち入力していますが、これをある程度自動化したいと思っています。今現在、このホームページはメインとなるPerlのプログラム数本に、後付けした別の小さなPerlのプログラムとPHPプログラム数本で構成されています。これもPHPのプログラムだけで構成するシンプルな形にしようと思っています。

この先Webの世界がどうなるかわかりませんし、私自身もどのようになっていくかわかりませんが、今までに築き上げたコンテンツだけは大事に扱っていきたいと思います。あと、本ページのPHP化は、今後の自分のためにもなるのかな…、と。まあ、あまりお金に繋がるような話ではないと思いますが。



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

PHP 逆引きレシピ (PROGRAMMER’S RECiPE)
PHP 逆引きレシピ (PROGRAMMER’S RECiPE) をAmazon.co.jpでチェック

e-Taxで平成21度分の確定申告(青色申告)完了

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月17日
e-Taxで平成21度分の確定申告(青色申告)完了先ほどe-Taxソフトを使って、平成21年度分(2009年度分)の確定申告を済ませました。今回は初の青色申告でしたが、昨年「雑所得」分でe-Taxソフトでの申告を経験していたので、「右も左も分からない」ということはありませんでした。

ただ、昨年購入した日立製の公的個人認証対応カードリーダーライターが、Windows7の64ビット版に対応しておらず、新たに64ビット対応のソニーのカードリーダーライター(RC-S330)を購入する羽目になってしまいました。おかげで「電子証明書等特別控除」の5,000円よりも、カードリーダー2台+区役所までの往復電車賃+住民基本台帳カード発行費用を全て足した額の方が上回ってしまいました。金銭面だけを考えるなら、昨年のうちから電子申告など一切考えず、自転車で近所の税務署まで行って申告した方が安上がりでした…。

昨年、確定申告書の電子申告控除欄への記入を忘れてしまったため、今年中に電子申告を再びやらないと5,000円の控除が得られない状況でもあり、「新たにカードリーダーライターを買わずに、今年は電子申告無しで済ませる」という選択肢が無かったことも痛いです。控除なしの3,000円強の損よりは、「出費-控除」の1,000円程度の損で済ませた方が得策という結論でした。

どちらにしても出してしまったお金は戻ってこないので、e-Taxソフトを使って申告することになります。せっかくなので署名の手続きを書いておきますが、これの前提としてe-Tax上で書類の作成が全て終わっていることが条件です。
※e-Taxソフト上での書類の作成についてはこちらを、書類作成の前提となる記帳ソフトについてはこちらを、住民基本台帳カードの取得についてはこちらを参考にどうぞ。

1)カードリーダーライターのドライバインストール
2)カードリーダーライターをパソコンに繋いで認識
3)JPKI(公的個人認証サービス)ソフトをインストール
4)e-Taxソフトを起動、画面左から「電子署名」を押し、申告する書類を選択して、画面右下の「署名」ボタンを押す
5)ポップアップでカード選択(ICカード)、カード種選択(公的認証カード)、カードのパスワードを入力
6)2~3分ほどで「承認内容」が画面に出て署名完了

あとは画面左の「送信」から書類を送信して申告完了です。

昨年前半の会社在職時に多めに源泉徴収を取られていたこと、昨年10月の個人事業開業以降の所得が青色申告控除額を下回ったこと、それと住宅ローン控除などもあって、今回は「納税」ではなく、いくらか「還付」されることになりました。

昨年納税した際には、納付情報登録をして、銀行から指定の所に振り込んで…、という手順を踏みましたが、それが無かった分、申告の処理自体は今年の方が若干楽でした(書類作成は昨年より大変でしたが)。

それにしても、e-Taxの手続きや処理は総じて面倒で、青色申告者の1割程度しか利用していないということも頷けます。もっと金銭的なメリットが大きければいいのですが、私のようにe-Taxを利用することで損を出してしまうことがあるようなシステムでは、納税者の大半に普及することはほとんど不可能でしょうね。



個人事業開業関連記事(リンク一覧): 2度目の30kmラン / 2016年(平成28年)確定申告準備完了 - マイナンバーカード/個人事業終了/ふるさと納税 / やよいの青色申告14 / e-Taxソフトで平成23年分(2011年分)の確定申告を完了 / やよいの青色申告+e-Taxソフトでの確定申告まとめ / ...(記事連続表示)

SONY 非接触 ICカードリーダ/ライタ USB 対応 パソリ RC-S330
SONY 非接触 ICカードリーダ/ライタ USB 対応 パソリ RC-S330をAmazon.co.jpでチェック

PHPでWhois検索

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月17日
PHPでWhois検索ができるようになりました。ただし、Pearをインストールできる環境に限ります。逆にPearをインストールできる環境であれば本当に簡単です。

KUNISAN.JPサーバーは共有ホスティングサーバーのため、Pearのインストールはできませんが、代わりにネットブックのXAMPP1.7.3で試してみることにしました。コマンドプロンプトでカレントディレクトリを移動して、下記の通りコマンドを打ちます。

C:\xampp\php>pear.bat install Net_Whois

これでPHPにNet_Whoisモジュールがインストールされます。続いて、PHPで下記のようなプログラムを書けば完成です。

require_once 'Net/Whois.php';
$whois = new Net_Whois();
$data = $whois->query('IPアドレスまたはドメイン名');
print $data;

早速これを応用して試験的なサイトを作ってみました。

http://kunisan.jp/whois/

インラインフレームにNet_Whoisモジュールをインストールしたサーバーの応答が表示されます。



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

PEAR―PHPライブラリ
PEAR―PHPライブラリ をAmazon.co.jpでチェック

新・KUNISAN.JPサイト管理ページの完成

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年2月16日
新・KUNISAN.JPサイト管理ページの完成先週の金曜日にアクセス解析用のMySQLデータ追加プログラムを公開しましたが、その後蓄積されたデータを分析・表示するプログラムを作り始めました。土曜日の朝から食事、風呂、トイレ、睡眠以外はずっとプログラムを組み続け、ようやく昨晩遅くにほぼ完成しました。トータルで50時間位はかかったと思います。

管理用のページなので残念ながらアドレスの公開はできませんが、ざっと内容を紹介するとこんな感じです。

■トップページ
・各ページの最近一週間のアクセス数(UV、PV)表示
・各ページの開設時からのアクセス数(UV、PV)表示
・ドメイン全体のアクセス数合計(UV、PV)表示
・データ詳細画面へのリンク
・掲示板、ブログの「コメントあり」アラーム
・掲示板、ブログのブロック解除、編集画面へのリンク

■詳細画面の機能
・アクセス履歴一覧表示(UV、PV、アクセス日時、アクセス元サイトなど)
・各項目(フィールド)の昇順、降順切替
・日付でのフィルタリング
・キーワードでのフィルタリング
・グラフ表示(日別、時間別、アクセス元IPランキング、アクセス元ドメインランキング、閲覧ページランキングなど)
・IPアドレスのWhois検索

 

今までのアクセス解析プログラムは、サーバーのCGI処理での負荷限界があったため、1サイトあたりのデータが最大2500件を超えると、日付に関わらず古いデータから自動的に削除するようにしていました。しかし、今回製作したものは200GB超のスペースにMySQL+PHPという組み合わせで、基本的に古いデータもそのまま保持し続けます。現在のアクセス数でデータが蓄積されていくとして、軽く数十年の単位は持つ計算になるので、恐らくサーバーとして使用しているネットブックの方が先に寿命が来てしまうのではないかと思います(万が一に備えて、1日1回自動でデータのバックアップを取っています)。

当初、データベースにはテーブルを1つだけ置いて、各サイトにID(サイト名)を振り分けてデータを蓄積していきました。サイト別になっているPVやUVのカウントには、一度データベースから該当サイトのPVとUVの最大値を読み込んで、PHP上で1つ数字を加えて、アクセス履歴と共にレコードに追加するという形を取っていました。しかし、「数十万件のデータをサイト名でフィルタリング&グループ化して1つ取り出す」というのを、平均2秒に1回のペースでこなさなければならず、アクセスが少しでも集中すると、フリーズしたような状態になってしまい、正常にカウントされなくなる現象が出ることが分かりました。MySQLのバッファ設定をいじったりもしましたが、全く改善しません。ネットブックを調べてみると、CPU使用率が時折100%の状態になってしまうようです。Atom N280(1.66GHz)搭載程度のスペックでは、少々無理のある処理でした。

そのため、テーブルをサイト毎に分割して管理するよう変更し、さらにPVについてはフィールドの自動カウント機能(Auto Increment)を使うようにして、クエリー処理の負荷を減らすようにしてみました。するとCPU使用率が平均10%前後と大幅に下がり、比較的負荷の高い状態でも50%程度で収まるようになりました。

分析ツールはひとまず完成しましたが、後はこのデータを活用した「ニーズのあるサイト」を作れるようになれば、と思うところです。



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

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

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) / ...(記事連続表示)

全国市町村要覧 [平成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関連記事(リンク一覧): ブラザー(Brother)複合機 MFC-J4950DN / 息子のPCを新調 - GIGABYTE ゲーミングノート GAMING A16 CMHI2JP894SH / エレコム ワイヤレスキーボード・マウスセット TK-FDM110MBK / ロジクール ワイヤレスマウスキーボードセット(無線) MK270G / 【2024年最新型】Omikamo Bluetoothキーボード 折り畳み式 テンキー付き / ...(記事連続表示)

関連カテゴリー: 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関連記事(リンク一覧): ブラザー(Brother)複合機 MFC-J4950DN / 息子のPCを新調 - GIGABYTE ゲーミングノート GAMING A16 CMHI2JP894SH / エレコム ワイヤレスキーボード・マウスセット TK-FDM110MBK / ロジクール ワイヤレスマウスキーボードセット(無線) MK270G / 【2024年最新型】Omikamo Bluetoothキーボード 折り畳み式 テンキー付き / ...(記事連続表示)

関連カテゴリー: 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でチェック


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