2008-11-28

Windows 2008 で FileMaker Server 9 の Instant Web Publishing は動作しない模様...

さて、先日 Windows Server 2008 環境に FileMaker Server 9 Advanced を入れてからというもの、ぼちぼち動作を検証していますが、いろいろ試した結果、 Instant Web Publishing はどうやら動作しない模様です。

FMForums の方でも「恐らく動かないだろう」と言っている人がいるように、動く機能があるかもしれないし、動作的に微妙なものもあるだろうという感じなのでしょうか。
とにかく Instant Web Publishing の方は当方の調査では無理、という結論に達しました。

参考:
[Windows] FMSA9,0 on Windows Server 8
Windows Server 2008 上で FileMaker Pro Server 9 は動作するか?

あと、FileMaker Server 9 のアップデータが出ていたので、以下のページより V2 をダウンロードしてインストールしようとしたのですが、Windows Server 2008 環境でこの Setup.exe を実行させるとエラーメッセージが出てしまい、続行できませんでした。

FileMaker Server 9v2 & FileMaker Server 9v2 Advanced Windows 版 アップデータ




やはり、対応を謳っていない環境でのインストールは無理、ということなのかもしれませんが、この件については引き続き調査中です。

2008-11-25

64 ビット版 Windows Server 2008 の IIS7 で php が動くようにする

64 ビット版の Windows Server 2008 に 32 ビット版のみ提供されている php5 をインストールするのには、ちょっとコツがいることがわかりました。

従来の方法ではまず動かない

従来どおりにインストールを行い、phpinfo() を表示させようとすると、エラー 503 が表示されました。ISAPI フィルタもハンドラマッピングも php 向けに指定したにもかかわらずエラーが表示されるので、ネットで調べてみると、DefaultApplicationPool の「32ビットアプリケーションの有効化」を[True]にすると良いとあったので、True にしてみたところ、程なくして DefaultApplicationPool が停止してしまいました。

そのときに報告されたものがこのイベントエラーです。

イベントID:2280
モジュール DLL C:\Windows\system32\RpcProxy\RpcProxy.dll を読み込めませんでした。このデータはエラーです。

暫く試行錯誤を繰り返していたのですが、この環境では ISAPI フィルタによる設定は無理そうだということがわかってきたので、途中で FastCGI を使う方法に切り替えました。

FastCGI で PHP を動かす
IIS 7 のインストールオプションで、CGI を選択して IIS7 をインストールすることによって、php-cgi.exe を呼び出して実行させることが可能です。

手順を説明します。
1. php5 の最新版をダウンロードして、適当なところに配置する(例:c:\php)。
php5 はここからダウンロードできます。
2. php.ini-recommended ファイルをコピーして php.ini というファイルに名称変更し、これをメモ帳などで開いて次に該当する行を修正して保存する。
(先頭のセミコロンを外して修正。該当するものがない場合は行を追加。)

fastcgi.impersonate = 1
cgi.fix_pathinfo=1
cgi.force_redirect = 0
open_basedir ="c:\inetpub\wwwroot"
extension_dir = "./ext"

3. コントロールパネルより「システム」をダブルクリックして、左ペインのメニューから「システムの詳細設定」をクリック。“環境変数”ボタンをクリックして システム環境変数の一覧に表示される path 変数に php へのパスを追加。
(c:\php; を追加すれば良いです。)

4. インターネット インフォメーション サービス(IIS) マネージャーを開き、ハンドラマッピングから「モジュールマップの追加」を選択し、以下の情報を追加。

要求パス:*.php
モジュール: FastCgiModule
実行可能ファイル(オプション): C:\php\php-cgi.exe
名前:PHP

OK を押して保存します。

5. IIS を再起動して、php テストページを表示させる。
以下のファイルを作って phpinfo(); を入れた php ファイルを作成してブラウザで表示確認。

php の情報ページが表示されれば成功です。

今回は以下のサイトを参考にしました。
Using FastCGI to Host PHP Applications on IIS 7.0

2008-11-21

Windows Server 2008 の認証でつまずく

Windows Server 2008 を導入してから Windows ライセンス認証をするのを忘れていたのですが、残りが 31 日となっていたので、今のうちにライセンス認証をしておくことにしました。

ところが、認証手続きをしようとすると、次のようなエラーが発生。



ネットワークカードの TCP/IP 設定にも DNS サーバの IP アドレスがきちんと設定されていたため、ネット検索で以下の情報を見つけました。

Windows Vista のライセンス認証の手続きを行うとエラー メッセージ "エラーが発生しました" が表示される

要は、「プロダクトキーの変更」を選択して、プロダクトキーを入力することによって解決するということのようです。
プロダクトキーを入力しなおさなければならないのは、不正ユーザ対策のようですが、気づかないとこれで時間を取られてしまうので(私を含め)、ちょっと人騒がせな仕様だと思いました。

2008-11-20

Windows Server 2008 上で FileMaker Pro Server 9 は動作するか?

FileMaker社はこの構成をサポートしていないし、する予定もないらしい。

実際はどうなのか? 「Windows server 2008」「FileMaker Pro Server 9」をキーワードにググってみると、案の定、日本語ではほとんど情報がない。 やっぱり頼りになるのは英語サイト。


http://www.fmforums.com/forum/showtopic.php?tid/195407/



とりあえず動くらしい(「動かん」という人もいる)ということで、小社でもインストール。
どうやら動く。 上のサイトによると、動いているところでは、半年以上、問題なく動いているらしい。

とうことで、FileMaker社の保証はないけど、FileMaker Pro 5.5 に加え、FileMaker Pro Server 9 も Windows Server 2008 で動く(こともある)。

注:ファイアウォールでポート5003を開けるのを忘れずに。

2008-11-17

【Windows障害メモ】サーバの時刻が狂う

 ドメインコントローラのイベントビューアで NTP サーバのエラーが出ていました。
 イベント ID 11 NTP サーバー から応答がありませんでした

 NTP サーバの同期ミスということで、以下のコマンドを打って調べてみることにしました。

 NET TIME /querysntp

 結果は「このコンピュータは現在、特定の SNTP サーバーを使用するよう構成されていません。」だったため、外部の NTP サーバを登録して同期させることにしました。
 以下のサイトより、米国 NASA および東京大学の NTP サーバを指定してみました。

NTP サーバ一覧

 以下のコマンドで NTP サーバを指定することができます。この例では NASA の NTP サーバを指定しています。

 NET TIME /SETSNTP:198.123.30.132

 また、NTP サーバを複数指定したい時は、以下のように列記した NTP サーバ名(またはIPアドレス)を二重引用符で囲みます。この例では NASA の NTP サーバと東京大学の NTP サーバを一緒に指定しています。

 NET TIME /SETSNTP:"198.123.30.132 130.69.251.23"
 
 同期は 8 時間ごとに行われるということですが、レジストリキー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters の Period 値を修正することで、同期の頻度を変更できます。


0 = 毎日 1 回。
65535, "BiDaily" = 2 日に 1 回。

65534, "Tridaily" = 3 日に 1 回。

65533, "Weekly" = 毎週 (7 日に) 1 回。

65532, "SpecialSkew" = 3 回正常に同期されるまでの間、45 分ごとに 1 回。その後、8 時間ごとに 1 回 (1 日に 3 回)。[デフォルト]

65531, "DailySpecialSkew" = 1 回正常に同期されるまでの間、45 分ごとに 1 回。その後、毎日 1 回。

freq= 1 日に freq 回同期する。


一応は NTP サーバーを設定して同期することは確認できましたが、例のイベント ID がまた出ていたので、ひょっとすると二つ指定したどちらかの NTP サーバとの同期に失敗したのかもしれません。

参考ページ:
W32Time サービスのレジストリ エントリ

【Windows障害メモ】 リモートディスクにアクセスできない

◇現象
アクセスできていたリモートディスクに、いつのまにかアクセスできなくなる
(NICを交換が原因か?)

発生イベント
イベントの種類: 警告
イベント ソース: LSASRV
イベント カテゴリ: SPNEGO (Negotiator)
イベント ID: 40960
日付: 2008/11/17
時刻: 11:29:53
ユーザー: N/A
コンピュータ: SC420
説明:
サーバー cifs/192.168.X.X の認証エラーを検出しました。 認証プロトコル Kerberos からのエラー コードは "指定されたユーザーは存在しません。
(0xc0000064)" でした。


◇解決策
http://www.eventid.net/display.asp?eventid=14&eventno=4189&source=Kerberos&phase=1

There were password errors using the Credential Manager. To remedy launch the Stored User Names and Passwords control panel applet (註:コンパネの「ユーザ名およびパスワードの保存」のこと)and reenter the password for the credential .

試してみて駄目だった(ような気がした)ので、エントリそのものを削除、さらに再アクセスしてアカウントとパスワードを再入力したらうまくいった。 尚、上記の「ユーザ名およびパスワードの保存」にこのときした入力したそれらは記録されず、どのような状況下でここに登録または誤登録されるのかは不明(調べていない)。

以上

【Windows障害メモ】ActiveDirectory へのログイン失敗

 最近、ネットワークコンピュータのうち一台がドメインに参加できなくなるという現象が発生しました。
 そのコンピュータに関しては、一ヶ月ほど前にネットワークカードを交換してからというもの、他のネットワークコンピュータからディスクドライブの参照ができなくなってしまいました。
 そしてつい先日、ActiveDirectory のドメインコントローラになっているサーバ機の Kerberos 認証サーバのリセット作業を行った後は、そのコンピュータはまったくログインできない状態となりました。

 ActiveDirectory サーバ機にはイベント NETLOGON ID 5722、クライアント機には NETLOGON ID 3210 が記録されたので、原因を調べてみると、ドメインコントローラでの認証エラーのようだったのですが、ネット検索により、以下の解決方法に辿りつきました。

Windows NT/2000/XP/2003 ドメインにログオンできない(その2)
ドメインに参加できない:コンピュータ・アカウントを登録し直す

 これらの情報に従って、一度そのコンピュータをドメインから外してワークグループにしてから、再度ドメインに参加させることによって、何とか解決することができました。
 単純なようで、意外とこれは裏技的な対応方法ではないかと思います。今回は上記サイトに助けられました。

2008-10-21

Panda MOP のファイアウォール設定方法

さて、前回は Panda MOP (Managed Office Protection) インストールのトラブルについて書いたのですが、うまくインストールできた MOP の設定もぼちぼち始めています。WebAdmin と比較すると、アンチウィルス機能にファイアウォール機能が追加になっているところが大幅なアップグレードなのではないかと思います。

 アンチウィルスとファイアウォールのどちらをインストールするかは、Web 管理画面(https://managedprotection.pandasecurity.com/console/)のプロファイルで設定します。
 最初は DEFAULT プロファイルしかありませんが、新しいプロファイルを追加していくことによって、アンチウィルスとファイアウォール機能のインストールおよび設定条件を細かく指定していくことができます。

 
 ファイアウォールの設定は、プロファイルページの左に表示される「ファイアウォール」をクリックします。同じプロファイルを持つコンピュータに対し、まとめてファイアウォールを適用することも、クライアント側で個別にファイアウォールを適用することができるのも特長です。管理するコンピュータ台数が多い場合は、サーバ側で一括管理するのが楽かもしれません。

 デフォルトで Panda ルールが適用されるので、基本的なファイアウォール設定は自動的に行われますが、管理者が個別にルールを追加することもできます。使用する通信系プログラムがわかっている場合は「プログラム」、ポート別に管理する場合は「システム」を選択して設定項目を入力します。

 この設定はリアルタイムに反映されるわけではないので、設定後に次回自動更新のタイミングまで待つか、クライアント側で個別にアップデートを実行します。
 

2008-10-20

Panda Managed Office Protection に泣かされる

 Panda WebAdmin AntiVirus (以下Webadmin)の後継版として Panda Managed Office Protection (以下 MOP)がリリースされました。これにより、WebAdmin の提供は今年一杯になるそうです...。
 ということは、WebAdmin を適用済みのすべてのコンピュータに於いて今年中に MOP への移行が必要になるというわけです。

 WebAdmin の提供が近々終了になるだろうということはある程度予想していたため、英語ベータ版としてリリースされていた MOP を 8 月中旬あたりから少しずつテストインストールしてきたのですが、インストールなんて簡単という予想に反し、トラブルが続出してしまったため、ベータ版の段階から MOP に対する不安が一気に募ってしまいました。

 当方で発生したトラブルはこのような感じです。

1. Vista に MOP をインストールした後に Panda アイコンをマウスで右クリックして表示される Update メニューで定義ファイルの更新を行おうとすると、以下のメッセージが出てプログラムがクラッシュする。

Panda Interface Manager Application [Local and Mail Alerts] は動作を停止しました。

2. 弊社の Windows XP 機においては、MOP インストール途中に再起動を促すメッセージが表示され、その指示に従って再起動を行うと、また同じ再起動メッセージが表示され、延々と再起動のループから抜けられなくなる。

3. Windows Server 2008 で MOP をインストール中に、「Downloading signature file」でエラーが発生してしまい、先に進めなくなる。
  この現象については、SonicWall のセキュリティ設定を修正したところ、無事インストールが続行できるようになりました。


 一応その他の Windows Server 2000, 2003, Windows XP マシンには MOP のインストールに成功したのでホッとしておりますが、上記 1.、2. については未決のまま....。まだ泣かされております。

 現在、WebAdmin お使いで MOP について御存じない方は、この機会に以下の情報をご覧になることを強くお勧めしたいと思います。
 Panda WebAdmin Antivirus製品の販売及びサポート終了(END OF LIFE)
 および後継製品Panda Managed Office Protectionへのマイグレーションのご案内

2008-10-10

拠点間VPNネットワークの構築 (2) --- 回線の冗長化

近年、インターネット回線やルータなどのネットワーク機器はかなり安定してきているようですが、回線かルータのいずれかが落ちると拠点間の通信は一切できなくなるので、冗長化する --- 回線とルータを複数用意する--- ことが重要です。 

【回線とルータの冗長化イメージ図】
画像を追加
上図のように、重要な拠点間の回線とルータは二重化または多重化しておきます。 回線は異なるキャリアのものを使用し、一つのキャリアの回線(例:NTT Bflets)が落ちても、生きている他のキャリア(KDDI)に切り替えて運用を継続します。 回線の切替は自動的に実行される(SonicWALLによる冗長化の例)が理想ですが、そのようなネットワーク構成は通常、高額になります。 よって、規模の大きくない拠点においては、障害発生時は手動によりTCP/IPプロパティのデフォルトゲートウェイを切り替えれば良いでしょう。 また、回線にかかる負荷を分散させるために、拠点にあるPCの何台かを1つの回線へ、残りのPCをもう一つの回線へと、通信をゲートウェイの指定により割り振るのも良いと思います。


デフォルト ゲートウェイの冗長化に関するメモ
TCP/IPプロパティのデフォルトゲートウェイに複数のルータのIPアドレスを指定して冗長化すれば、ルータの障害発生時に自動的にゲートウェイを切り替えてくれる筈だが、冗長設定を行うと、通信が不安定になる(断続的に切断される)ので要注意。


回線メモ
◇KDDI
インターネットゲートウェイ 
イーサシェア 光ファイバー、100Mベストエフォート型、¥184,800/月~(関東) *1
Business-ADSL 下り最大12Mbps/上り最大1Mbps、ベストエフォート型、¥27,000/月~ *2
  1. 田舎は使用できないところが多そう。
  2. 微妙に(一部)NTTの電話網を使っているようで、NTTが落ちた場合、影響を受ける可能性有。
◇Usen
光ビジネスアクセス  光ファイバー、100Mベストエフォート型、¥52,500/月~
  • 田舎では使用できない。

2008-10-09

拠点間VPNネットワークの構築 (1)

一昔前であれば、膨大な初期費用とランニングコストを要した拠点間の高速ネットワーク。 近年の光回線等のブロードバンドと、各種ネットワーク関連機器の普及と低価格化により、従来に比し非常に低価格で実現できるようになりました。 今回は最近、小社で手がけた小規模な支店間VPNネットワークの構築について紹介します。


要件定義(お客様、ご要望

  1. 4拠点間+α VPNネットワーク構築
  2. 回線冗長性(ルータや回線障害時に回線を切り替え、業務を継続できること)
  3. 主なアプリはFileMaker Pro 5.5
  4. Windows Server 2008 と Terminal Service を導入、支店でも社内LAN並みのパフォーマンスを出すこと
  5. 堅牢なセキュリティ環境と集中監視・管理
  6. システム管理者が拠点のネットワークを遠隔保守
  7. 初期コストを最小化する
  8. 社内システム管理者の負担を最小化
  9. 拠点間の通信コスト限りなく0に、そしてスムーズな意思疎通

と、テンコ盛りの要件、しかも低予算...



1. 4拠点間+αのVPNネットワークを構築する

本社、工場、支店、土屋企画、出先ノートPC(緊急対応用)間のVPNネットワークを構築。  このうち、本社、工場、土屋企画間はSite-to-Site VPN(SonicWALL TZ180同士で暗号化)、支店と出先ノートPCはVPNクライアントにGVP(SonicWALL Global VPN Client)を使用。


4. 回線冗長性

万が一の回線やルータ障害の時にも、工場で生産や配送の指図書や送状が照会・印刷できますように。 大分前ですけど、OCNが大規模回線障害で何時間も不通になってる、って、NHKの夜のニュースでやってもやってましたね。 はい、うちも被害者です。


3. 主なアプリはFileMaker Pro 5.5

少しはクライアント/サーバっぽいFileMaker 8.5とか9を使うと、クライアント⇔サーバ間のパフォーマンスもよくなると思うんですけどね…  お客様の暗黙の(しかも強力な)要請により、既存のFileMaker Pro 5.5/FileMaker Pro Server 5.5によるシステムを継続利用。 既存システムのできる限りの延命も重要なミッションでございます。


4. Windows Server 2008 と Terminal Service を導入

「2008でFileMaker Pro 5.5が動くん?」 --- Ans:はい、立派に動いてますね。 しかもTerminal Server 上で。 

「印刷は? ローカルディスク利用は?」 --- Ans:お客さんの環境では、問題なく動作しておりますです。 

「で、Vistaは?」 --- Ans:動くかも…


5. 堅牢なセキュリティ環境と集中監視・管理

SonicWALL と Panda で、統合的、集中的な管理。企業の社会的信用にかかわるセキュリティ関連リスクの低減に、万全を期しましょう。


6. システム管理者が拠点のクライアントPCを含むデバイスを保守

遠隔地よりシステム管理者(≒小社)が、サーバ、クライアントPC、ルータ(SonicWALL)、プリンタ等を管理・保守できるようにしています。 請け賜っているのは SonicWALLの保守と各PCのセキュリティ管理だけなのですが、「これ、セキュリティの問題ではありませんね」って言えるまでの調査過程で、大体は原因が判明してしまうんですけどね。


7. 初期コストを最小化する

  • Dell PowerEdge R300 (RAID 1)
  • Windows Server 2008 + Terminal Service Client ラインセンス
  • SonicWALL TotalSecure TZ-180 × 4台
  • Panda WebAdmin クライアントライセンス(追加ユーザ分)

合計60万位。 既成のハード/ソフトだけでこれだけはどうしてもかかってしまいます(クライアントPCやプリンタは既存のモノで新規導入無し)。 ホントに大変なのは、これらの機器やソフト、PC、プリンタを最適に設定して、テスト、テスト、そしてテスト。この部分は小社の営業努力で ・゚・(ノД`)・゚・


8. 社内システム管理者の負担を最小化する

経営者  「システム、特にセキュリティなんかじゃ飯は食えんのよ」

小社 「ごもっともでございます(トホホ...)」


9. 拠点間の通信コストを抑える

IP電話より、Skypeとか、AOL IMの方が、使い勝手も、生産性が高いですね。

(続く)

2008-08-13

SonicWALL を使った Site-to-Site VPN の構築

 VPN ルータ同士を接続して常時 VPN 接続を確立することを Site-to-Site VPN と言いますが、最近弊社では SonicWALL 同士の Site-to-Site VPN 接続の設定テストを行っています。

 VPN ルータが各終点に一つずつの場合は、比較的設定は容易です。
 基本的には VPN のポリシー設定で「主格 IPSec ゲートウェイ名またはアドレス」に対岸のルータアドレス(ゲートウェイアドレス)を入力し、「事前共有鍵」に任意の共有鍵コード(両方のルータに同じ共有鍵を設定)を指定し、そして「対象先のネットワーク」に対岸 LAN のネットワーク(たとえば 192.168.3.0)とサブネットマスクを指定するだけです。

 しかし、ネットワークが落ちたりすると業務に支障が出るような環境では、回線を複数用意しているところもあります。そのようなときに、現用回線と予備回線の両方に対して VPN トンネルを張っておき、現用回線がダウンしたときに予備回線の VPN トンネルを使うことがあります。これを冗長 VPN ゲートウェイと呼んでいるそうですが、この設定は、理屈では「主格 IPSec ゲートウェイ名またはアドレス」に現用回線のルータアドレス、「副格 IPSec ゲートウェイ名またはアドレス」に予備回線のルータアドレスを指定すれば動くということになっているのですが、何故か副格ゲートウェイの方だけが採用されている状態となりました。主格の方が無視されている状態なので、現在この原因について調査中です。

2008-08-04

Windows Server 2008 の TS EasyPrint について

 前回の投稿に引き続き、今回は Windows Server 2008 の TS EasyPrint の動作を検証してみました。
 TS EasyPrint とは、リモートセッションが確立されている場合に、クライアント側のローカルプリンタを使って印刷が可能となるものです。従来は、サーバ側にもクライアントのドライバをインストールしておき、プリンタポートマッピング設定をしておく必要があったのですが、TS EasyPrint ではユーザによるプリンタポートマッピングが不要となるため、ドライバをサーバ側に入れなくても良い、というシナリオになるのでしょう。TS クライアントは Windows Vista SP1 であることが最低条件のようですが。

 上記に従って、VPN 経由で TS 接続を行い、プリンタ情報を見てみると、最初のうちはクライアント側プリンタ 2 台のうち 1 台(Canon BJ 895PD)が「リダイレクトされた」という表現でサーバ側に表示されていることを確認できました。このプリンタを使ってテストページ印刷には成功しました。
 しかし、もう一台のプリンタ(Dell All-in-one Printer 810)は表示されることがなく、ポート設定をいろいろ弄ってやってみたのですが、努力空しくこちらの EasyPrint は実現しませんでした。

 そうこうしているうちに、Canon BJ 895PD も出てこなくなり、TS EasyPrint の不安定感が募ってきました。ひょっとすると VPN 経由だと不安定になる可能性が高くなるのかもしれません。

 この辺はもうすこし研究課題にしたいと思います。

参考:
Windows Server 2008 のターミナル サービス

2008-07-28

Windows Server 2008 のインストールと Terminal Service 設定

 Windows Server 2008 を弊社にもインストールしてみました。対象サーバ機は Dell PowerEdge SC440 です。
 インストール自体はものの 30 分もあればできたのですが、最初の Administrator パスワード指定でちょっと手こずりました。Windows Server 2008 では、ローカルセキュリティポリシーの「パスワードは複雑さの要件を満たす必要がある」が有効に設定されているため、以下の条件を満たすようにパスワードを決定する必要があります。そしてようやくログインに成功。

 ユーザーのアカウント名またはフルネームに含まれる 3 文字以上連続する文字列を使用しない。
 長さは 6 文字以上にする。
 以下の 4 つのうち 3 つの条件を満たす必要あり。
   英大文字(A ~ Z)
   英小文字(a ~ z)
   10進数の数字(0~9)
   アルファベット以外の文字(!、$、#、%など)


 次にリモートデスクトップ接続を有効にするための機能を設定しました。ターミナルサーバーのインストールですが、サーバマネージャの「役割」というメニュー項目から追加します。
役割
 今回はターミナルサーバー、TS ライセンス、TS Web アクセスをインストールしました。
 
 さて設定ですが、ちょっと勉強が必要になってしまいました。
 RDP --- Terminal Service もしくはリモートデスクトップ接続を従来のように使えるようにするが、セキュリティレベルは落ちる。
 ネゴシエート --- クライアント側で SSL が有効になっている場合は SSL を使って接続するが、有効になっていない場合には RDP を使う。
 SSL(TLS 1.0) --- 常に SSL を使って接続する。

 ネゴシエートにしておけば、従来の TS/リモートデスクトップ接続と Windows Server 2008/Vista 対応の TS/リモートデスクトップ共有を混在させることができる模様です。ただ、SSL に特化すればおそらくセキュリティが一番高くなるのでこれができることに越したことはないと思います。

 SSL を使えるようにするには、TS/リモートデスクトップ接続のクライアント側がリモートデスクトッププロトコル 6.1 をサポートしている必要があります。この条件を満たすクライアントは次のとおりです。

 Windows Server 2008
 Windows Vista with Service Pack 1
 Windows XP with Service Pack 3
 
 ただし、XP with Service Pack 3 の場合は、ネットワークレベル認証がサポートされていないため、ターミナルサーバ構成で「ネットワークレベル認証でリモートデスクトップを実行しているコンピュータからのみ接続を許可する」のチェックを外しておく必要があります。
RDP-Tcp

2008-07-18

カラーレーザープリンタの奇怪

かれこれ5、6年前に約2万円で購入し、八面六臂の活躍をしたBJ S600 がそろそろポシャりそうなので、価格に手頃感がでてきたカラーレーザープリンタを購入しようかなと思い、調べて見ました。 すると、なんか奇奇怪怪な世界。

というのは、Brother MFC-9420cnという機種の本体(カラー3色と黒1色の計4本のトナー付、以下、トナー4本、と言う)の価格が、トナー4本より安い。 よくよく説明を見ると、購入時付属のトナーはスターターうんたらという減量されたものらしい。 「これじゃ、客はわかんないよ」と思いつつ、他のメーカーの低価格機も価格.comで調べてみると、トナー4本(6000枚程度印刷)で本体の半分~全額ちょっと欠ける位の価格になってしまう。 さらに、トナー以外の消耗品として、ドラムとか感光体うんたらとか、メンテナンスキットとか、うんたらベルトとか、メーカー毎に異なる様々なものがあり、しかも耐久期間もまちまち。 確かに公称のページ当たりの印刷コスト項目はあるのだけれども、これにドラムやらその他の消耗品の価格が反映されているのだろうかと不安になってくる。 で、当初どれが一番お買い得なのか?と思って作ったプリンタ比較表も、なんかあまり役に立ちそうもないような気がしてくる(この表に興味のある方は→これ)。 本体に対してトナーの価格が高く、奇怪な消耗品が数々あると迷路に入り込んだ気分。 トナーだけ買い換えて、ドラムやその他の高い消耗品の購入を迫られる段になったら、(エコは差し置いて)新機種に買い換えるのが一番経済的なような気もしてくる。 そもそも「レーザープリンタはインクジェットよりランニングコストが低い」と巷に言われる大前提も疑わしく思えて…

どうしようかなぁ?と迷っているところに、目に飛び込んできたのが、HP Officejet Pro K8600dn というインクジェット機。 Web記事によると、A4カラー1枚の印刷コストが6.3円、カラー印刷時35枚/分の高速、その他のスペックを比較してみても、レーザープリンタに勝るとも劣らない。 レーザープリンタと違って、よくわからない消耗品もない、少なくとも書いてはいない。

HP Officejet Pro K8600dn



ということで、K8600dnを購入することになりました。 吉と出るか、凶と出るかお楽しみ。 


(土屋)

2008-07-11

【応用その4】FX.php を使ってアンケートフォームを MySQL 対応にしてみる

 サンプルデータベースと PHP ソースコードはこちらからダウンロードできます。(本アーカイブは、不定期に差し替えが行われる可能性があります。あらかじめご了承ください。)

 *FileMaker API for PHP を使ったアンケートフォーム作成をお読みになっていない方は、先にこちらをご覧ください。

 FX.php は MySQL データベースへの接続にも対応しているため、アンケートフォーム作成の延長として、今回は既存のコードに MySQL データベースへのデータ書込機能を実装してみることにします。

 * 操作にあたっては、MySQL Server がインストールされていることが前提となりますので、予め MySQL Server のインストールと、文字化け対策のためにデフォルト文字セット(utf8)が有効になるように設定しておいてください。

 まずは、データベースを準備します。付属の create_table.php の $rootPass に MySQL の root パスワードを設定して同スクリプトを保存し、local の web サーバで実行してみてください。Comment データベース、cgi テーブル、webuser とそのパスワードが生成されます。作成するテーブル列は、create_table.php を参照してください。
 
 以下、次の順に Comment.php へコードを追加していきます。
1.使用するデータベース種別を MySQL にします。
データベース種別

2.接続先の MySQL サーバポート番号を指定します。デフォルトは 3306 です。
MySQL ポート番号

3. あとは既存の FX.php 接続とほぼ同じですが、最後のデータ書き込みのところで、FMNew() の代わりに PerformSQLQuery() 関数を使います。引数は第一パラメータに SQL クエリ文を指定し、残りはデフォルト値を指定します。

 PerformSQLQuery($query,true,false,'object');

 この部分をコードで表したものが次のとおりです。(列名)と値を使って $query SQL クエリ文をセットし、次の PerformSQLQuery で指定して実行します。
query

 FX.php & MySQL の組み合わせで実行可能になっているコードを Comment_mysql.php に用意してありますので、併せて確認してみてください。

参考リンク:
MySQL オフィシャルサイト

2008-07-09

【応用その3】アンケートフォームにセッションを追加してみる(リロード対策)

 サンプルデータベースと PHP ソースコードはこちらからダウンロードできます。(本アーカイブは、不定期に差し替えが行われる可能性があります。あらかじめご了承ください。)

 *FileMaker API for PHP を使ったアンケートフォーム作成をお読みになっていない方は、先にこちらをご覧ください。

 PHP 経由で FileMaker データベースにデータ書込を行う手法として、簡易アンケートフォームの作り方をベースに説明を進めてきました。
 すでにお気付きの方もいらっしゃるとは思いますが、実はこのままでは実際の運用には不向きな部分があります。

 それは、最後のお礼ページです。
 このページが表示される直前に FileMaker データベースへのデータ書込とメール送信を同時に行うわけですが、Web ブラウザのリロードボタンを押してページをロードするたびに同処理が実行されてしまうため、ゴミデータとゴミメールが増えてしまう可能性があります。
 実際問題として、お礼のページをリロードしてしまうユーザも結構多かったりするので、リロード操作が行われてもデータ送信、メール送信は一回だけ実行するような仕組みが必要となります。

 これを効率よく処理する方法として、PHP のセッションをここで組み込んでみることにします。
 PHP のセッションはスーパーグローバル配列と呼ばれ、読み込まれたページにかかわらず値を保持しておくことができるものです。FileMaker のグローバル変数に共通している部分もあるので、そう捉えると理解しやすいと思います。

 ユーザによるページリロード対策は、データ書込とメール送信が行われたかどうかを判断し、それが No なら書込・メール送信を許可、Yes なら不可にすればよいわけです。これをフラグを使って表現するとさらに明確になります。仮にフラグ名 を done フラグとしましょう。

 未書込の状態 --- done フラグはオフ (FALSE、偽)
 書込済の状態 --- done フラグはオン (TRUE、真)

 done フラグがオフ(FALSE)のときに書き込みを実行し、その操作が終わったら done フラグをオン(TRUE) にします。

 この値をセッションに入れておくことで、ページが何度リロードされても呼び出しはセッションから行うため、一度オンになったフラグはオフになることはありません。

 この処理を PHP で記述すると次のようになります。
1. セッションの開始と有効期限を決めます。
セッション開始
 セッションの有効期限のデフォルトは 180 分ですが、簡易アンケートで特に詳細な確認が必要なわけではないため、ここでは有効期限を 5 分にしています。5 分経過するとセッションは破棄されて無効となり、その後にページをリロードすると、白紙のページが表示されるようになります。
 session_start() 関数でセッションを開始するわけですが、この関数は、セッションが存在しない場合は、新たにセッションを作成します。これに対し、セッションがすでに存在している場合はそのセッションを再度呼び出します。つまり、このアンケートフォームで言えば、最初にアンケート入力フォームのロードを行った時点でセッションの作成を行い、それ以降、ページがロードされたり次のステップに進むたびに session_start() 関数から同一のセッションを呼び出すわけです。

2. 次に、done フラグの初期化を行います。
セッション初期化
 初回ページロード時に一度だけ done フラグに FALSE (データベースへの書込とメール送信が行われていない状態)をセットします。

3. お礼のページを出すときに、done フラグが FALSE であることを確認し、それに該当すれば FileMaker データベースへのデータ書込とメール送信を行い、その後に done フラグに TRUE (データベースへの書込とメール送信が完了した状態)をセットします。
 以下、赤線を引いた部分に注目してください(コードが長いため、中略を入れてあります)。
done フラグのセット

 これでセッションの実装が終わりました。サンプルコードを使って動作を確認してみてください。

2008-07-08

SonicWall Total Securityによる回線速度低下

 SonicWall Total Security(以下、SonicWall)を導入し、セキュリティ関連の設定をした後に、回線速度のチェックをすると、導入前に比べて回線速度が低下していることに愕然とするかもしれません。しかし、外部から渡ってきたパケットの精査が SonicWall の機能であり、その精査に費やされる処理時間のことを考慮すれば、回線速度が低下するのは当然と言えば当然なのでしょう。

 以下、SonicWall のセキュリティ機能で、速度低下が著しいものとそうでないものを調べてみました。

  • 導入すると極端に速度が落ちるもの
    アンチスパイウェア
    侵入防御 (IPS)

  • 若干速度が落ちるもの
    電子メールフィルタ
    ゲートウェイ アンチウィルス

  • さほど速度が低下しないもの
    コンテンツフィルタ


 もちろん、セキュリティ対策としてできるだけ多くのサービスを有効にしておくのが望ましいと思いますが、社内で利用しているネットワークサービスが使用に耐えられなくなるほど回線速度が落ちてしまうのでは、あまり実用的ではないでしょう。
 社内のネットワーク運用に最も適したサービス設定を行い、セキュリティをどうしても向上させる必要があるのなら、回線そのものの品質をアップグレードさせるのが現実的な運用方法と言えるかもしれません。

2008-07-04

SonicWall Global VPN Client のインストールが失敗したり、クラッシュしてしまうときのちょっとした改善案

 SonicWall には仮想プライベートネットワーク機能(VPN: Virtual Private Network, 以降 VPN)が搭載されているので、SonicWall を購入して VPN ライセンスを購入することによって、VPN 公開ができるようになります。
 この SonicWall VPN にアクセスするためには、クライアントとなるコンピュータに SonicWall Global VPN Client (以降 SWGVC)をインストールと接続設定を行う必要があります。

 インストーラを実行して指示に従えば終わりというパターンが通常で、アプリケーションを使うほとんどのユーザがそのような感覚でインストーラを実行していると思います。
 しかし、最近の FileMaker Server 9 のインストールトラブルのように、物によってはスムーズにインストールできないものもあるので、すぐできて当然という安易な姿勢で臨むと泣きを見る羽目になることもあったりします。

 SWGVC もなかなか癖のあるソフトウェアと言え、マシン環境によってはすんなりインストールできたり、インストール初っ端から躓いたり、設定の段階で躓いたりと結構トラブルに見舞われため、ここでその経験談をまとめてみることにします。

  1. 最初のインストールで躓くとき
     SWGVC をインストールした直後に起動しようとすると、SWGVC のレジストリ登録に失敗したというメッセージが出て失敗することがあります。こうなると、起動は絶対にできないので、一度 SWGVC をアンインストールし、さらにレジストリ情報を消去するプログラム SWVPNClientClean.exe を実行してから完全にインストール情報を消去した上で、SWGVC を再インストールする必要があります。

  2. SonicWall にアクセスできないとき
     ピア IP アドレス(SonicWall の IP アドレス)を正しく設定し、接続ユーザ名とパスワードを正しく指定したにもかかわらず、ステータスが接続中だったり、IP アドレス取得中のままになってしまうことがあります。ログを見ると、"The peer is not responding to phase 1 ISAKMP requests." が残っていることがあります。
     この場合は、SWGVC の Peers タブより、LAN Settings にクライアントネットワーク側のルータ IP アドレスを入力したり、NAT Traversal を 「Disabled」、Interface Selection を「LAN Only」に変更することによって改善することがあります。
    SWGVC
    参考リンク:
    SonicWall VPN Client Doesn't Work Behind NAT Firewall(英文)
    Sonicwall - The peer is not responding to phase 1 ISAKMP requests(英文)
    NAT Firewall on router blocking sonicwall VPN?(英文)
    NAT Firewall on router blocking sonicwall VPN...(英文)

  3. 接続が確立された直後に SWGVC がクラッシュするとき
     これが一番厄介だと思います。今のところ Windows XP Service Pack 2 で発生する可能性が高いことは経験からわかってきたのですが、すべての同様の環境で発生するとも言い切れず、このような現象が発生するコンピュータでは、SWGVC のインストール、アンインストールを繰り返したところで症状が改善することはまずないでしょう。
     しかし先日、客先でどうしてもこのような現象が発生する SWGVC を動かす必要があり、苦し紛れですが Windows 互換モードで実行することにより事なきを得ました。以下、方法を簡単に説明します。
     1) 今までどおり SWGVC を実行させてVPN 接続を行い、Connected が出た直後に SWGVC がクラッシュすることを確認します。
     2) SWGVC のプログラムアイコンを右クリックして「プロパティ」を選択し、表示されるダイアログより「互換性」タブをクリックします。そこで「互換モードで実行する」にチェックを付けて、以前の OS のリストの中からできるだけ最新のものを選択して実行してみます。
    Windows 互換モード
     この方法で、今のところ Windows 98/Windows ME の互換モードで実行に成功しています。今までいろいろ試してみたが、クラッシュしてどうにもならないという方はダメ元で試してみる価値はあると思います。

【応用その2】FX.php を使ったアンケートフォーム作成 --- 従来のファイルメーカー Pro データベースで Web アプリケーション作成

 サンプルデータベースと PHP ソースコードはこちらからダウンロードできます。(本アーカイブは、不定期に差し替えが行われる可能性があります。あらかじめご了承ください。)

 *FileMaker API for PHP を使ったアンケートフォーム作成をお読みになっていない方は、先にこちらをご覧ください。
 
 さて前回の FX.php 解説に引き続き、今回は FX.php を使って従来の FileMaker データベースにアクセスする方法について触れてみることにします。今回もまた、今まで使ってきたアンケートフォームにちょっと修正を入れるだけです。アンケートフォーム作成のおさらいが必要な方は、こちらを先にご覧ください。

 FileMaker API for PHP を利用するためには、FileMaker Pro 9 と FileMaker Server 9 がインストールされていることが条件となるため、従来に比べるとコスト的に敷居が高くなってきています。安定したデータサーバ運用を目指すのなら、もちろんこれらを導入するのが確実ですが、FileMaker Pro 5.x/6 で機能的に十分に満足している方には、ちょっと手が出にくいパッケージであることも確かでしょう。

 そこで、FX.php と FileMaker Pro 5.x/6 の Web コンパニオンプラグインを組み合わせてもデータベースへの書き込みを実現できるため、既存のシステムをそのまま Web 公開データベースとして活かすことも可能となります。
 ただし、通常版は 10 アクセスユーザ数(10 IP アドレス)という制限が伴うため、現実的な運用にあたっては FileMaker Pro 5.x/6 Unlimited が必要になることは注記しておきたいと思います。

 それでは実際に既存のサンプルコードを修正していくことにしましょう。
 処理は前回の FX.php 接続とほぼ同じですが、今回はそれに加え、文字コードの変換が必要となります。
 FileMaker Pro 9 では内部コードを UTF-8 で処理しているため、ソースが UTF-8 で記述されていれば問題はなかったのですが、FileMaker Pro 5.x/6 では内部コードを Shift-JIS で扱うため、このままデータを送るとエラーが起こったり、文字化けが発生してしまいます。

 そこで、今までの処理に文字コード処理を追加します。

  1. FX を使用することを宣言する(FX インスタンスを作成する)。

  2. 使用するデータベース名とレイアウト名を指定する。

  3. 使用するユーザ名とパスワードを指定する。

  4. データ送信時の文字コードを Shift-JIS に変換する。

  5. 追加するフィールドと、そのデータを指定する。

  6. レコード追加を実行する。



 上記を FX.php の記述規則に従って置き換えると、次のようになります。

 赤線を引いた部分と、赤で囲った部分が前回と異なってはいますが、その他はすべて同じです。
 指定の通り、FX インスタンス作成時に、使用するデータソース(データベース)が FileMaker Pro5.x/6 であることを知らせます。
 そして、データ送信前に文字コードセットを UTF-8 から Shift-JIS(SJIS) に置き換えます。

 ただし、FMP7/8/8.5/9 に対してこの文字コード変換を行うとデータ書き込みに失敗してしまうため、必要に応じて、データソースが FMPro5/6 のときだけ文字コード変換を行うという条件を追加する必要があります。
 この条件を追加するとこのようになります。

 変数 $databaseType には、コードの最初の方で予め "FMPro9" もしくは "FMPro5/6" のいずれかを設定しておきます。こうしておくことによって、使用するデータソースに応じて処理を切り替えられるので便利です。
 ソースの詳細は、サンプルコードをご覧になってみてください。

 先に PHP ソースについて解説しましたが、最後に FileMaker Pro 5.x/6 データベースファイルの作成と設定方法について説明します。

1. データベースファイルを作成します。FileMaker Pro 5.x/6 を起動し、Comment.fp5 というファイルを作成し、以下のフィールドを作成します。

 [RecID]、[作成日]、[作成アカウント]、[修正日]、[修正アカウント]は管理用のフィールドですが、作成しておくと便利でしょう。

2. レイアウト名を cgi に変更します。
3. 「アプリケーション環境設定」ダイアログを出し、プラグイン一覧より、Web コンパニオンにチェックを付けて「設定」ダイアログを開きます。

 セキュリティに「ファイルメーカー Pro アクセス権」を指定し、TCP/IP ポート番号に 80、もしくは 591 を指定します。

4. ファイルの共有設定で、以下のようにチェックを付けることによって Web コンパニオンを公開します。


5. パスワードを指定します。図のように、web というパスワードを作成し、web で公開させる最低限のアクセス権を決めます。

 この他にフルアクセスを許可するパスワードが必要となりますので、ここでは Admin を作成してあります。

 以上で準備が整いました。
 FMPro5/6 用の設定を施した comment_fp5.php というファイルをサンプルに用意してありますので、参照してみてください。

参考: FX.php vs FileMaker API Benchmarks Discussion(英文)