SOHO Windows Small Business Server 道具箱

SOHO、Microsoft Windows Small Business Server(SBS) 2003 R2

ショック… Yahoo! Japan が、Googleからの検索結果採用へ

2010年7月27日、Yahoo! Japan が、Googleの検索結果を採用することが発表されました。

両者の公式発表では、開始時期は未定となっています。

また、GoogleからのWEB検索結果だけでなく、検索連動型広告(Google Adwords)も、Yahoo! Japan に提供されるとのこと。

正直、ショックです。

以前は、Yahoo! Japan は、Googleの検索結果を購入していましたが、

2004年夏からGoogleと縁を切って、日本独自開発となる Yahoo! Japan のWEB検索(YST: Yahoo! Search Technology)が提供されるようになり、優れた日本語処理能力と、金にモノを言わせて購入した他社コンテンツの検索結果への表示には、びっくりしながらも、結構便利でした。

なので、

WEB検索で細かいこと、特に技術的なことを検索するときには、Google

芸能ネタやニュースなど、マスメディアが一次情報を握っている情報を検索するときは、Yahoo!

というように、使い分けていました。


それに、自分が運営している複数のWEBサイトのアクセス解析をみると、約60%弱はYahoo! Japanから、約30%強はGoogleから、という傾向でした。

日本では、欧米の統計と違って、Yahoo!のシェアが高いんですよね。


こう、いろいろと考えてみると、Yahoo! Japan が、GoogleのWEB検索結果を採用する真意がいまひとつわからない。

けれども、Yahoo! Japanの他社コンテンツ購買方式は変わらないようだから、日本では、Yahoo! Japan最強という表向き。  けど、Googleは、WEB検索結果の提供と、Adsenseの提供で、お金はガッツリ儲けますぜ、というところか。


Yahoo! Japan プレスリリース(2010/07/27)

Google の発表 (2010/07/27)

JUGEMテーマ:インターネット
 
| SBS 2003 管理者 | インターネット技術 | 20:07 | comments(1) | trackbacks(0) |

MS月例パッチの日に、料金未払いADSL回線がつながる?

ほんとうに仮説に過ぎないし、個人的な経験をもとにした記事です。 客観的な裏づけは何もありません。

ここ数ヶ月かおきに、電話料金が払えなくて、我が家のADSL回線が何度か停止した。

そのADSL回線停止期間中に、不思議なことに、MS月例パッチの日(第2火曜日?)かあるいは、その翌日に、ADSL回線が約24時間だけ つながるという現象に遭遇した。

電話料金が払えなくて、ADSLが止まってしまった身分としては、停止中にいきなりADSLがつながるのは、ありがたいことこの上ない。

MS月例パッチは、お金が払えない貧乏な人でもあててくださいね!という計らいなのか?

ありがとう!マイクロソフト&電話会社様! 貧乏人のことも考えてくれて!

JUGEMテーマ:インターネット
 
| SBS 2003 管理者 | インターネット技術 | 17:08 | comments(0) | trackbacks(0) |

htaccess でリダイレクト:エラー RewriteRule: bad flag delimiters

久しぶりに、 .htaccess (FreeBSD + Apache 2.2) で、リダイレクトを設定しようと思って
RewriteEngine On
RewriteCond %{QUERY_STRING} ^post=1$
RewriteRule ^(.*) http://○○○.com/?id=1 [L, R=301]

というようなコードを書いたら、500 Internal Server Error (涙)

エラーログを見てみると、

RewriteRule: bad flag delimiters

と書いてある。

調べてみると、bad flag delimiters は、「マズイ区切り文字(delimiters)」 というわけで、

[L, R=301]  の  「Rの前の'スペース'」を消したら、動いた。。。

久しぶりに、厳格な解釈をするコンピュータ様の威厳を感じた。。。

JUGEMテーマ:サーバー
 
| SBS 2003 管理者 | FreeBSD | 01:17 | comments(0) | trackbacks(0) |

IIS6.0にPHPをインストールしたら、SEPMで「レポートコンポーネントと通信できません。」

【現象】
SEPM にログイン後に「レポートコンポーネントと通信できません。」というエラーダイアログが表示される


【我が家での原因】

<<本来の動作の仕組み>>
SEPMにログインしたときには、
http://<既定のWEBサイト>/reporting で使われるPHP
SEPMに付属の、C:¥Program Files¥Symantec¥Symantec Endpoint Protection Manager¥PHP
が動作すべき。

<<今回の事象の原因となる動作>>
IIS 6.0PHP + FastCGI をインストールしたことにより、、新規にインストールした別のバージョンのPHP(C:¥PHP)が、上記のSEPM付属のPHPを乗っ取って動作している。

● つまり、SEPM が使用している PHP のバージョンと競合が発生している

<参考> SEPM にログイン後に「レポートコンポーネントと通信できません。」というエラーダイアログが表示される


【環境】
OS: Windows Small Business Server 2003 R2 Standard Edition
IIS 6.0
SEPMバージョン: 11.0.2000.1567 (SEP11 MR2)
SEPM付属のPHPバージョン: 5.2.5

新しくインストールしたPHPのバージョン: 5.3.2 - VC6 x86 Non Thread Safe
FastCGI のバージョン: Version 1.5RTW


【回避策/解決策】
試行錯誤した結果、FastCGIの設定を活用して、
  • SEPMで使う http://<既定のWEBサイト>/reporting を実行するときは、
    → SEPM付属のPHPを使う
      C:¥Program Files¥Symantec¥Symantec Endpoint Protection Manager¥PHP
  • PHPをインストールした目的である phpMyAdmin を使うときは、新規にインストールしたPHP (C:¥PHP) を使う
というように、SEPM と phpMyAdmin (今回、新規にPHPを必要としたアプリケーション) とで、違うバージョンのPHPインタープリタと、読み込むphp.ini ファイルを切り替えて使う。


【手順】
  1. システム環境変数の PHPRC=C:¥PHP¥ を削除
    <参考> SEPM の Reporting サイトで使用する php.ini ファイルを指定する方法
  2. FastCGIの設定ファイル fcgiext.ini を、手動で書き換える。(下記)
    <参考> Configuring the FastCGI Extension for IIS 6.0 - iis.net
    <参考> SEPインストールCD #2 に入っている FastCGI_Setup_Readme.pdf

    ----- fcgiext.ini -----
    下記は、「既定のWEBサイト(識別子 1 )」 配下に、SEPM の /reporting 仮想ディレクトリと、新規インストールしたPHPを使う /phpMyAdmin 仮想ディレクトリとが混在する場合の例

    [Types]
    php:/lm/w3svc/1/root/reporting=SymantecPHP php:/lm/w3svc/1/root/phpMyAdmin=PHP

    [SymantecPHP]
    ExePath="C:¥Program Files¥Symantec¥Symantec Endpoint Protection Manager¥Php¥php-cgi.exe"
    Arguments=-c "C:¥Program Files¥Symantec¥Symantec Endpoint Protection Manager¥Php¥php.ini"
    InstanceMaxRequests=10000 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
    RequestTimeout=500
    ActivityTimeout=900

    [PHP]
    ExePath=C:¥PHP¥php-cgi.exe
    InstanceMaxRequests=10000
    ActivityTimeout=600
    RequestTimeout=600 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:C:¥PHP¥
     
  3. IIS の PHP マッピングを変更
    IISマネージャで、[既定の Web サイト]の[Reporting]の[プロパティ]を開く
    → [仮想ディレクトリ]タブで、[構成]をクリック
    → [マッピング]タブの[アプリケーションの拡張子]で、
         拡張子phpのとなりにある実行可能なパスをクリックし、
         [編集]をクリック
    → パスを C:¥system32¥inetsrv¥fcgiext.dll に置き換える
  4. C:¥Program Files¥Symantec¥Symantec Endpoint Protection Manager¥Php¥php.ini ファイルに、下記を追記
    fastcgi.impersonate=1
    fastcgi.log=0

【結論/理想を言えば】
  • そもそも、SEPMをインストールするときに、「既定のWEBサイト」にインストールするのではなく、 「カスタムWEBサイトを作成する」を選んで、インストールすべき
  • そうすれば、後から「既定のWEBサイト」にPHP+FastCGIがインストールされても影響は受けにくい
  • 今回のケースでもSEPMをアンインストールして、「カスタムWEBサイト」として、再インストールするのが理想だけど、そうすると、各SEP11クライアントとの疎通の問題(オフライン問題)がまた発生してしまい、それを解決するには、かなりの手間を要するので、今回は、それを避けた。

JUGEMテーマ:プログラミング 
| SBS 2003 管理者 | Symantec Endpoint Protection | 03:25 | comments(0) | trackbacks(0) |

バッチファイルからPowerShellでZIP圧縮

バッチファイルで、ZIPファイルは作れないものか?

と、思って調べていくと、色々な方法があるもんですが、Windows PowerShell 2.0 を利用した方法がありました。

David Aiken - Compress Files with Windows PowerShell then package a Windows Vista Sidebar Gadget

に Windows PowerShell でZIPファイルを作る方法が記載されていました。

しかしながら、不思議な現象に直面。
 

  • Windows PowerShellのプロンプトから実行すると、サブディレクトリ内のファイルまで含めて、問題なくZIP圧縮できるのですが、
  • バッチファイルから当該スクリプトを呼び出すと、サブディレクトリの最初の1個のファイルだけがZIP圧縮されるか、あるいは、空のZIPファイルができる
という現象にぶつかりました。

で、いろいろ試した結果、David Aikenさんのスクリプトの中に、ZIP圧縮を開始した後に、

Start-sleep -milliseconds 500

というコードがあって、

これも調べてみると、Windowsの shell.application を使った方法では、複数のファイルやフォルダを圧縮する際に、圧縮がおわったら、次の圧縮を始める、という”同期的な”動作ができないんだそうです。 CopyHere というメソッドが開始されるとすぐに帰ってきてしまうのだそうです。

なので、500ミリ秒の待ち時間を入れている。

この待ち時間が足りないと、2番目以降に始まった圧縮ファイルをZIPの中に入れることができなくて、意味不明な名前のバイナリファイルができあがる。

で、結局、私が試した環境では、3つのサブディレクトリに、合計2,700個のファイルがあったのですが、上記の待ち時間を、8,000ミリ秒〜10,000ミリ秒、つまり、8秒〜10秒 にしてやると、すべてのファイルが正しくZIP圧縮されました。

でも、圧縮に要する時間なんて、ファイル数はもちろん変化するし、マシン・スペックや、他のプロセスの動作状況によっても変わるから、例え、10秒の待ち時間を入れたとしたって、安全じゃない。

バッチファイルはあきらめて、すべてをPowerShellで書くかなぁ〜。。。 などと思いつつ調べていくと、あるじゃありませんか、もっといい方法が!

吉岡照雄さんの ZIP.PS1 - PowerShellでZIP圧縮/展開する

吉岡さんのアルゴリズムは、待ち時間を入れるのではなく、ZIPファイルの中のファイル数を比較して、次の圧縮処理を始める。 合理的です。 すばらしい! 完璧です。

しかも、このアルゴリズムでは、余分な待ち時間を入れないので、全体の処理時間が速いです。

で、バッチファイルから呼び出す場合は、以下のような感じ。
Powershell -command "& { C:¥Documents` and` Settings¥user01¥デスクトップ¥MakeExZIP.ps1 C:¥Backup¥sample.zip C:¥Backup¥data_dir C:¥Backup¥settings¥mail_settings.ini }"

この例では、user01のデスクトップに、吉岡さんのMakeExZIP.ps1 が保存してあって、C:¥Documents and Settings¥ の空白(スペース)の前に、バッククォート ` を入れることによって、スペースが含まれたパスでも正常動作するようにしています。

C:¥Backup¥sample.zip が、圧縮ファイル。

C:¥Backup¥data_dir 配下のすべてのサブディレクトリ内のファイルと、C:¥Backup¥settings¥mail_settings.ini という1個のファイルをZIPに圧縮しています。


【参考にさせていただいたサイト】


JUGEMテーマ:プログラミング

 
| SBS 2003 管理者 | プログラミング・Script | 09:58 | comments(0) | trackbacks(0) |
    123
45678910
11121314151617
18192021222324
25262728293031
<< December 2016 >>

このページの先頭へ