カテゴリー
everyday life

放鳥トキ子育てライブ。

投稿アップデート情報  追記(5/26)  追記2(6/18)  追記3(13/3/30)

 忘れてたんだけど,始まっていた。見に行ったら,もう,開始後,15時間経っていた。見づらい角度だけど,それは仕方ないね。無事,子育てを終えてもらうことが第一義だから。
 しかし,ずっと見てたらだんだん目がなれて見やすくなるのに気づいた。画像がかなりいいから,フルスクリーンモードで見たほうが見やすい。

 プレーヤ削除 —>> 追記(6/18)
 
 
追記(5/26):
 昨日,1羽目が巣立ちしたみたい。
    録画日時 : 2012/05/25 13:54 JST   巣立ったっー!(隣の枝にジャンプします)
なんだってさ。


Video streaming by Ustream
 
 
追記2(6/18):
 以下のお知らせが出たので,「放鳥トキ 子育てライブ」のプレーヤは外しました。TOKI LIVEに行ってみるのも,楽しいですよ。
————————————————————————————————–
<お知らせ>
「放鳥トキ 子育てライブ」の映像配信は6月10日をもって終了いたしました。
多くの方々にご視聴いただき誠にありがとうございました。

なお、野生復帰ステーション順化ケージで訓練中のトキのようすが下記URLからご覧になれます。

◆TOKI LIVE
http://www.ustream.tv/channel/toki001

「放鳥トキ 子育てライブ」では、野生下で36年ぶりにヒナの誕生が確認されたトキの子育ての様子を配信してきました。
2012年4月22日以降、佐渡島内で確認されたヒナ3羽は、皆様に見守られながら、順調に成長し、5月下旬に巣立ちしました。
6月6日現在、林の外で親鳥2羽・幼鳥3羽が元気に空を舞うようすが確認されています。
皆様のご視聴・ご声援、本当にありがとうございました。

追記3(13/3/30):
 今年も,ライブが提供されています。
 こっちです。 —> http://www.ustream.tv/channel/toki002 by 環境省

カテゴリー
Windows

本家のお世話-#33。(PHP5.4.2へアップデート)

投稿アップデート情報  追記(2013/2/14)

 PHP 5.4.1に変更―04.23(月)―してから,例のcrashは2度起こった。まあ,安定していると言ってもいいだろう。で,May-04 01:09:54 UTC にPHP 5.4.2 がリリースされたので,アップデートしてみた。( @00:30)

 php.iniについては,5.4.1と違いがないので,これをそのまま使う。php5apache2_4.dll をPHPディレクトリに追加するのを忘れないこと。もちろん,Apacheの再スタートもね。

追記(2013/2/14):
 php5apache2_4.dll でググって来られる方がおられるようなので,追記。 PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに同梱されるようになりました。

カテゴリー
everyday life

@pagesのサーバー,復旧。

投稿アップデート情報  追記(5/1)

 なんかね,「Broken Link Checker」が,4/27 @23:15 付けで
http://atpages.jp/admin/login.php について,「サーバーが見つかりません」
を出してててさ,juneさんとこのサブブログも,SoRAさんところもつながらなくて,ググッたら, @PAGES お問い合わせフォーム というのがあった。

さらに,今日にいたり,「【重要】【@PAGES】接続障害に関するお詫びとご対応状況のお知らせ」というメールが来た。@15:19になっている。上記の@PAGES お問い合わせフォームにおいては,「【緊急4】(復旧)2012年04月28日 接続障害に関するお詫びとご対応状況のお知らせ(19時現在)」というのが,増えてるが,誰が何をやらかしたんだろう。詳しい経緯は,いまだに不明。

我が家みたいな自宅サーバじゃないから,有料会員の賠償とか大変だろうなあ。ご愁傷様です。

今は,我が家のサブや知人関係は,すでにアクセス可能。全部戻ったのかな。しかし,いまのところすごく不安定みたいだ。@21:40

追記(5/1):
以下のようなメールが来た。
————————————————————————————————————————————–
Subject: 【@Pages】接続障害復旧のお知らせ
From: “[@PAGES]” <atpages@xxxxxxxx.com>
Date: 2012/05/01 17:49
To: o6asan@xxxxxx.com

いつも@Pagesをご利用いただきありがとうございます。
26日からatpages.jpドメインのすべてのサーバに対する接続障害が発生し、
ユーザの皆様には多大なご迷惑をおかけしましたことをお詫び申し上げます。

━━ 目 次 ━━━━━━━━━━━
1.障害と現在の対応状況について
2.atpage.jpについて
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.障害と現在の対応状況について
ドメイン管理会社から連絡があり、ネームサーバーの登録を復活するという旨の
返信をいただきました。

弊社で確認したところ、atpages.jpドメインでの接続について
一部回復を確認しており、今後順次回復していくと予定しております。

なお、ドメイン管理会社より停止理由を頂いておりますが、継続し
協議を行い、再発防止に努める予定です。

2.atpage.jpについて
本日より、5月末までの間、atpage.jpへ接続された場合には、
atpages.jpへ転送するように設定を行います。
6月以降につきましては、転送処理は行いませんので、
atpages.jpをご利用いただきますようお願いたします。

この度はご不便をおかけし、誠に申し訳ございません。
重ねてお詫び申し上げます。

今後とも@Pagesをどうぞよろしくお願い致します。
————————————————————————————————————————————–
しかし,何が原因だったのだろうね。サーバのソフトやハードの不具合による接続障害って言うのはよくあるけど,今回は,atpages.jpに対するネーム・サーバの割り当てが消えてる状態だったからねぇ。誰かがものすごーいドジをやらかしたとしか思えないんだが。

今回のwho isの状態を見たときにすぐに思い出したのは,レジストラの延長を忘れて顧客のSITEが全部使えなくなったって言うどっかのホスティングサービスの話だったが,今に至るもネット上にそんな話は沸いてないから,違うんだろう。ますます謎だ。しかし,大型連休前で,サービス側もクライアント側も,担当者は焦ったろうなぁ。上にも書いたが,本当にご愁傷様です。何とかなったようで,よかったなぁ。

カテゴリー
Windows

覚え書-#9。

投稿アップデート情報  追記(4/28)  追記2(5/2)

 前稿のように PHP 5.4.1 にしてしまったので,事後報告になるが,ここ4・5日あたふたしていたことを書いておく。

 Apache 2.2.x までは
     [notice] Parent: child process exited with status 3221225477 — Restarting.
だった error_log のメッセージが Apache 2.4.x では
     AH00428: Parent: child process exited with status 3221225477 — Restarting.
になったので, AH00428 でググッて
     Apache randomly stop responding [Solved]を見つけた。そこで,4/23 @18:13,
     AcceptFilter http none   すでに使用中
     EnableSendfile Off   出力ファイルのメモリバッファをapacheからWinに移行。
     EnableMMAP off   出力ファイルのメモリバッファをapacheからWinに移行。
conf に2行を追加してみたが,クラッシュがいっそう激しくなり,@22:28 に仕方なく元に戻した。その後,さらに5.4.0RC8を使っていた。こっちのが,少しましだったので。

 やはりページの処理に無理のかかっているときに落ちる気がするのだが,ページが増えてきたせいもあるだろうか。今のところキャッシュの考慮はまったくやっていないのだが,したら違うだろうか。

 ググッていたら,http://mikenekoworks.com/?p=1512 に
     PHP5.4がセグメンテーションフォルトしまくるんでAPCを3.1.10に更新したら幸せになった。
というのがあった。もちろんLINUXの話だろうし,今回のとは無関係かもしれないが,もしかして APCとかmemcacheとか使ってやったら,私も幸せになれるかしらん。

 まぁ,落ち着いたら,APCとかmemcache の導入も考えてみることにしよう。

追記(4/28):
 以下の構成で安定したよー,ぱちぱち。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記2(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

カテゴリー
Windows

本家のお世話-#32。(PHP5.4.1へアップデート)

投稿アップデート情報  追記(4/28)  追記2(5/2)  追記3(2013/2/14)

 ここのところ,いろいろやってきたが,何をやってもphp5ts.dllがらみのcrashが解決しない。
 気づかないうちに,PHP5.4.1がリリースされていたので,この際,これに変えてみることにした。

 ≪注意≫ 細かい設定は,5.4.0 と同じ。(本家のお世話-#28。参照)

 php.iniについては,5.4.0のものを流用。ただし,;extension=php_sqlite.dll の1行がなくなっているので,このextensionをアンコメントしている場合は,注意が必要。もっとも,削除された拡張モジュールにPECLに移行という但し書きがあったから,残っていたこと自体が,単なる消し忘れだったのかもしれない。
 あと,忘れずに php5apache2_4.dll を展開してできたファイル群に追加すること。<<---- 自戒を込めて。  さて,今差し替えました。crashがなくなるよう祈ってまーす。(4/27 @0:33) 追記(4/28):  php-5.4.1-Win32-VC9-x86.zip に差し替え後,1度もcrashが起きていない。今までは,1日に少ない日でも4回は crash + restart が起きていたから,もう大丈夫ってことだろう。やはり,PHPのバイナリのほうの問題だったみたいだねえ。  現在のサーバの構成は,以下のとおり。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記2(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

追記3(2013/2/14):
 php5apache2_4.dll でググって来られる方がおられるようなので,追記。 PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに同梱されるようになりました。

カテゴリー
Windows

記事にしたほうがよかったかも。(で,Apache 2.4.2)

投稿アップデート情報  追記(4/28)  追記2(5/2)

 今朝,りりさんからコメントをもらって,書いた返事がバカ長くなってしまって,表題のように思った次第。

 Apache Lounge でバージョン 2.4.2 が出たときにステイブル バイナリだということで導入したけど,ちょっと早まったかなと思っていた。Bug #61577の件もあるし,「Apache、セキュリティを修正した最新安定版「Apache HTTP Server 2.4.2」リリース」なんていうのもあるし。

 上のリンクでの 2.4.2 は org での話。この間から,Lounge と org では末尾が一つずれていた。ここで触れられている「Windows版では「AcceptFilter None」の実装が変更されたため、mod_sslとの非互換性が発生している」という件に関しては,Apache 2.4.2 Win32 & Win64 availableの「SSL issue.」の書き込みと,SSL connection error… AcceptFilterを見て,大丈夫だろうと踏んだわけ。実際,その辺に関しては,
     <IfModule mpm_winnt_module>
       AcceptFilter http none
     </IfModule>
を入れて以来,あまり問題なく動いているように見える。

 それで,今日そんなこんなで Lounge の zip を見てたら本家のお世話-#28。で書いたのとリリース日が違うことに気づいた(VC10版も,VC9版も,20 Apr ’12 になっている。UTCで,です。)。
 さっそく落として比べてみたら,ファイルも変わっている。これで, org との枝番のずれは解消されたのかなと思ったが,Changelog Apache 2.4を見る限り,変わったのは,OpenSSL from 1.0.1 to 1.0.1a だけなので,そういうわけでもないみたい。しかし,困るよ。名前は変わらず,こっそりファイルの実体だけが変わってちゃ。

 今日も,crash 4回なので,ちょっと,20日版に差し替えてみます。あまり意味はなさそうだけど。
 org 版 2.4.2 の Lounge版というわけではないみたいだし。(@17:44 入替完了)

追記(4/28):
 結局,上記のApache の差し替えは, crash + restart には無関係だった。
 しかし,PHP 5.4.1 がリリースされたので差し替えたら,その後crashがなくなった。今までは,1日に少ない日でも4回は crash + restart が起きていたから,もう大丈夫ってことだろう。やはり,PHPのバイナリのほうの問題だったみたいだねえ。
 現在のサーバの構成は,以下のとおり。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記2(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

カテゴリー
everyday life

本家のお世話-#31。(WordPress3.3.2へアップデート&他)

投稿アップデート情報  追記(4/28)  追記2(5/2)

 WordPress 3.3.2 日本語版が出たので,淡い期待を抱きつつ,アップデートしてみた。淡い期待というのは,
Apache2.4.2とPHP5.4.0で起こっているクラッシュ&再起動に,何かいい影響はないだろうかという淡い期待である。時期的には,もう少し経たないと,新しいPHP仕様への完全対応は無理かもしれないとは思っている。WordPress 3.4に期待すべきかも知れない。

 「本家のお世話-#23。」に書いたように,親サイトの言語設定のせいかブログの「WordPress Updates」のページに日本語版が出てこないので,手動でアップデートした(4.22 @10:11)。今回,ファイル構成に特に変更はないようだ。

 ところで,相変わらずテンポラリ・サーバのままで運用している。

 juneさんから伺った HP Insight Diagnostics を調べてみたら,ちゃんとPC内にリンク先が書いたユーティリティがあったのでチェックしてみたが,異常は見つからなかった。もっとも,これが調べてくれるのは,システムの構成に出てくるデバイスレベルなので,電源の状態とかは分からない。しかしねぇ,どうもいろいろやってみたけど,サーバソフトを動かしていないとかなり負荷をかけても電源落ちはおきなかったから,ハードよりもこっち起因がメインだな。

 ところで,テンポラリ・サーバ上で以下のテストをやっている。
 Apache2.4.2+PHP5.3.10 の構成で2日。(2012.04.17 @1:23から2012.04.19 @1:23まで)
   エラー発生アプリケーション httpd.exe、バージョン 2.4.2.0、エラー発生モジュール php5ts.dll、バージョン 5.3.10.0、
が2度起こった。

 バクジラでなんか不可思議なことが起こり,その後,まともになったと言っていたApache2.4.2+PHP5.4.0RC8 の構成で2日。(2012.04.19 @1:23から2012.04.21 @1:23まで)
   エラー発生アプリケーション httpd.exe、バージョン 2.4.2.0、エラー発生モジュール php5ts.dll、バージョン 5.4.0.0、
が1度起こった。

 Apache2.4.2+PHP5.4.0 の構成で,(2012.04.21 @8:42から)なんだが,2012.04.22 @11:32までですでに4回のクラッシュが起きている。間にRC8を入れてみた効果は何もないようだ。もうちょっとこのままで運用してみるつもり。

 実際に,もともとのサーバ機に戻すときは,掃除もしっかりやっておかないとネ!! 「まだ,やってないのかっ」て,まだなんです(汗)。

追記(4/28):
 以下の構成で安定したよー,ぱちぱち。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

 ということで,もともとのサーバ機に戻すことを考えなくては(爆)。

追記2(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

カテゴリー
everyday life

本家のお世話-#30。(自宅サーバダウン)

投稿アップデート情報  追記(4/28)  追記2(5/2)

 本日サーバがダウンしてまして,今復旧しました。もっとも,もともとのサーバ機は,原因不明(今のところ)の不調で使用できないため,テンポラリ・サーバとして,もらい物PCで書いたLaVieC PC-LC5505Dを使っています。若干レスポンスが違うかもしれません。aguse越えでアクセスできましたので,外部からのアクセスもO.K.だと思います。

 ところで,困るのはもともとのサーバ機です。起動後しばらくすると,電源が勝手に落ちてしまいます。ルータ・イベントビューア・Apache,いずれのログにもめぼしいエラーが出ていません。ハードですかね。

 前稿のように,Apache2.4+PHP5.4にアップグレードしたのですが,それ以来,php5ts.dllクラッシュ起因のApache再起動に悩まされてきました。昨日,帰宅してみたら,電源が落ちていて,イベントのログにびっくりするぐらいのApacheの再起動が記録されていました。昨日から泊りがけの来客があって,あまり長く触れなかったので,もう一度起動してそのままにしておきました。

 夜寝るときに見たら,また落ちてたんで,Apache2.2+PHP5.3に戻して寝たのですが,朝にはまた落ちていました。なんか,感触としては,電源ユニットあたりの問題じゃないかと思っているのですが……
 もともとのサーバ機は,HPのサーバ専用機ではありますが,中古だし,製造から考えると7・8年たつんです。そろそろ,寿命だったところにWeb Server application の過負荷が引き金になっちゃったのではないかと。あくまで,完全な憶測です。もうちょっとしっかり調べて見なくてはいけません。しかし,どっと疲れているところです。

追記(4/28):
 以下の構成で安定したよー,ぱちぱち。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

 ということで,もともとのサーバ機に戻すことを考えなくては(爆)。

追記2(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

カテゴリー
Windows

本家のお世話-#29。(Apache2.4.2へアップグレード-#2)

投稿アップデート情報  追記  追記2(4/14)  追記3(4/28)  追記4(5/2)

 続きをすぐにアップしようと思っていたんだが,ホークスの試合があって遅くなってしまった(汗)。近頃,Twitterのタイムライン片手に試合を見るというさみしいことをやっているのだが,今日は久しぶりにTwitterを読まずに済んだ。やっぱり,リアルな同席者のほうがいいな(爆)。

 さて,サーバに関してはここからが本番(汗)。

 現在,自鯖の各ソフトのバージョンは

  • WindowsXP Pro SP3(x86) -
  • Apache2.2.22 ✓
  • MySQL5.5.22 -
  • ActivePerl-5.14.2.1402 -
  • PHP5.3.10 ✓

なので,バージョンアップするのは,✓をつけた Apache と PHP ということになる。

 まずは現状をバックアップ。

  • 万一の場合を考えて,Apache2.2.22 ,PHP5.3.10 のフォルダを丸ごとコピー。
  • 同様に,ドキュメントルート内とcgi-bin内のファイルをを丸ごとコピー。
  • phpMyAdmin で WordPressのデータベースを保存。

 Apache2.2.22 ,PHP5.3.10を完全に削除する。どちらも手動インストールなので,削除も手動で行う。

  • Apacheサーバ停止。
  • フォルダ Apache Software Foundation(Apache2.2.22)とPHP(PHP5.3.10)を完全に削除。
  • 今回は,Apacheサーバの場所が変わるので,サービスとして登録してあるApacheを
    httpd.exe -k uninstall
    で削除。

 Apache2.4.2 ,PHP5.4.0 を導入する。

  • 仮構築で作ったApache24,PHPフォルダを丸ごとC:直下にコピーする。
  • コマンドプロンプトから,Apache24/bin に移動し,httpd.exe[Enter] で一応テストラン。
  • 同様に,httpd.exe -k install[Enter] でサービスとして登録。
  • 使い勝手のために,ApacheMonitor.exe のショートカットを作り,スタートアップフォルダに入れる。ショートカットからサーバを停止する。
  • WordPress でmod_rewriteを使っているので,Apacheのhttpd.conf を開け,
    LoadModule rewrite_module modules/mod_rewrite.so
    をアンコメント。
  • 先ほど保存したlogファイルを Apache24/logs にコピーする。
  • Apacheサーバ起動。

 どうも,動きが遅くときどきエラーが出るので,「プログラムの追加と削除」からMicrosoft Visual C++ 2008 関係をすべて削除し,改めてダウンロードしたMicrosoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)をインストールし,MicroSoft Updateからパッチを当てた。パッケージのバージョンによってエラーが出ることもあるらしいので。

 「案ずるより産むがやすし」とか(笑),なんか無事に構築完了。もっとも,PHP5.4.0が問題なく動くかどうかは,しばらく動かしてみないとわからないので,当面評価は保留だな。

追記:
 errorlogに下記が出ていた。
     (OS 64)指定されたネットワーク名は利用できません。
     : AH00341: winnt_accept: Asynchronous AcceptEx failed.
 この場合,2.2.22までは httpd.conf に
     <IfModule mpm_winnt_module>
       Win32DisableAcceptEx
     </IfModule>
を入れていたところなので,Win32DisableAcceptEx 後継の AcceptFilter を使い,
     <IfModule mpm_winnt_module>
       AcceptFilter http none
     </IfModule>
を入れてみて,様子見。

 Apache2.2.22+PHP5.4.0 のときと比べるとものすごく頻度が減ったが,やはり,
     szAppName : httpd.exe   szAppVer : 2.4.2.0   szModName : php5ts.dll
     szModVer : 5.4.0.0   offset : 000e890f
が起こっている。いろいろググってみた結果,Bug #61577 php5ts.dll crashes when specific extensions are loaded を発見。ドンピシャの記事なんだが,今のところ本当にバグかどうか異論もあるようだし,解決法も見つかっていないみたい。php_mbstring.dll,php_gd2.dll,php_curl.dll が3つそろうとという検証を2人がしているようなので,いよいよのときは,php_curl.dllを無効にしてみるかな。
 ただ,頻度は激減したので,これについてもしばらく様子見の予定。

追記2(4/14):
 php5ts.dllのクラッシュによる再起動があまりに激しいので,Apache2.2+PHP5.3に戻した。しかし,次稿のようなことになって,頭が痛い。

追記3(4/28):
 以下の構成で安定したよー,ぱちぱち。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記4(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

カテゴリー
Windows

本家のお世話-#28。(Apache2.4.2へアップグレード-#1)

投稿アップデート情報  追記3(4/28)  追記4(5/2)  追記5(11/10)  追記6(2013/1/3)

 Apache Loungeで,Apache2.4.x系ステイブルが出た(VC10版は,6 Apr ’12 だけど,VC9版は,7 Apr ’12 になっている。UTCで,です。)ので,早速アップグレードに取り組んでみることにした。ただし,さすがに稼働中のサーバ上では危なすぎるので,ひとまず,ローカルに仮構築。

 完了後は,以下のようになる。

  • WindowsXP Pro SP3(x86)
  • Apache2.4
  • MySQL5.5
  • ActivePerl5
  • PHP5.4

 ≪注意≫ ローカルの構築なので,アップロード作業がすっぽり抜けている。ここを参考に実際のサーバをリモート場所に構築しようと思う方は,ファイルの書き換え後の更新アップロードを忘れないようにしてください。

 さて,Apache2.4.x系のインストールから。

  1. httpd-2.4.2-win32.zip と httpd-2.4.2-win32-VC9.zip のどっちを使うかなと思ったが,後者はMicrosoft Visual C++ 2010 SP1 再頒布可能パッケージ (x86)をインストールしなくていいようなので,こちらを使うことにする。httpd-2.4.2-win32-VC9.zipをダウンロード。
  2. httpd-2.4.2-win32-VC9.zip を展開する。展開ファイル中のReadMe.txtに,「Upgrading to 2.4 from 2.2とOverview of new features in Apache HTTP Server 2.4を参照せよ」とあったので,一応見に行った。
    Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)のインストールは必須であるが,今回の環境においては既に済んでいる。
  3. httpd.conf のカスタマイズから行う。
    • ServerRoot は,Program Files下に変更せず,デフォルトのまま(つまり,c:/Apache24)。自鯖は,WindowsXPなので問題ないが,Windows7あたりでは,UAC(User Account Control)の関係でいろいろと不具合を聞くので,この際今後のことを考えて,デフォルトのままの設定で行こうと思う。
    • ServerAdmin <管理者のメールアドレス> に変更。
    • ServerName <DNS name>:80
    • カスタマイズには関係ないが,以下のところに注意。Apacheのインストールが初めてなら何も思わないだろうが,ここはRun-Time Configuration の変更に伴って書き方の変わったところのひとつだ。ただし,旧の書き方をしている場合でもmod_access_compatによって,下位互換が実現されるらしい。モジュールのところを見ると,
      LoadModule access_compat_module modules/mod_access_compat.so
      はデフォルトで有効になっており,モジュール群のうち一番初めにロードされるようになっている。

      新しい書き方は,以下の通り。
           <Directory />
             AllowOverride none
             Require all denied
           </Directory>

      Apache2.2では,以下のようになっていた。
           <Directory />
             Options FollowSymLinks
             AllowOverride None
             Order deny,allow
             Deny from all
           </Directory>

    • DocumentRoot “c:/Apache24/htdocs”  —>>  DocumentRoot “G:/WEB/example”
      <Directory “c:/Apache24/htdocs”>  —>>  <Directory “G:/WEB/example”>
    • Options Indexes FollowSymLinks  —>>  Options FollowSymLinks
    • AllowOverride None  —>>  AllowOverride directive-type
      directive-typeに使えるキーワードについては,AllowOverride ディレクティブを参照のこと。
    • 自鯖の場合は,rotatelogsを使って,ログを取っているので,
      ErrorLog “logs/error.log”  —>>  ErrorLog “|bin/rotatelogs -l -f logs/error.%Y-%m-%d 86400”
      アクセスログに関しては,AWStatsの関係上commonではなくcombinedを使うので,
      CustomLog “logs/access.log” common  —>>  コメントアウト
      CustomLog “logs/access.log” combined  —>>  アンコメント
      し,さらに,
      CustomLog “logs/access.log” combined  —>>  CustomLog “|bin/rotatelogs -l -f logs/access.%Y.%m.%d 86400” combined env=!no_log
      no_logについては,「本家のお世話-#4。」参照。

      ちょっと下に書いてあるが,テストランの結果,|bin/rotatelog は |bin/rotatelog.exe でないと動かないことが判明。使う場合は必ず拡張子をつけてください。

    • これも,カスタマイズとは関係ないが,
      # Configure mod_proxy_html to understand HTML4/XHTML1
      <IfModule proxy_html_module>
      Include conf/extra/proxy-html.conf
      </IfModule>
      が追加されている。
  4. ディレクトリ Apache24 を,そっくり C:直下に移動する。
  5. コマンドプロンプトを起動し,Apache24bin に移動して,テストラン。httpd.exe[Enter]
    (OS 2)指定されたファイルが見つかりません。 : AH00089: Couldn’t start ErrorLog p
    rocess ‘bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M’.
    AH00015: Unable to open logs
    というエラーが出る。パイプがうまく働いていないのかと思って,
    ErrorLog “C:/Apache24/bin/rotatelogs -l -f C:/Apache24/logs/error.%Y-%m-%d 86400”
    にしてみた。今度は,
    AppName: httpd.exe AppVer: 2.4.2.0 ModName: msvcr90.dll
    ModVer: 9.0.30729.6161 Offset: 0003bdbc
    が出る。いろいろ試してみて,正解はなんと rotatelogs.exe だった。つまり,2.2.22 までは拡張子なしで通っていたのだが,2.4.2 では .exe まで書かないとダメってこと。
    つまり,  ErrorLog “|bin/rotatelogs.exe -l -f logs/error.%Y-%m-%d 86400″  でO.K.
    えーーーーーーーーっ。こんなにハマったのに!!(号泣)
  6. 気を取り直して,サービスとして登録。
    httpd.exe -k install
    使い勝手のために,ApacheMonitor.exe のショートカットを作り,スタートアップフォルダに入れておく。
  7. ドキュメントルートに,Apache24/htdocs にある index.html をコピーし,ブラウザから,http://localhost/ を確認,無事「It works!」が表示された。

 MySQL5.5 をインストールする。

  1. MySQL Community Server から,mysql-5.5.22-win32.msi をダウンロード。
    えーっと,今気が付いたんだが,「JavaScript 有効」にしておくと「» No thanks, just take me to the downloads!」というリンクが表示され,これをクリックすると,各ミラーがわかるって形なのねぇー。いつものPCは,「JavaScript 無効」なので知らなんだ。
  2. インストール方法は,mysql-5.5.18-win32.msi と全く同じ。(MySQLの再導入を参照)

 次に,ActivePerl 5 をインストールする。

  1. ActivePerl-5.14.2.1402-MSWin32-x86-295342.msiをダウンロードする。
    途中に,チェックボックスがあるがすべてデフォルトのままでインストール。
  2. コマンドラインから, perl.exe -v[Enter]で,バージョンなどが表示されれば,インストール成功。pathも通っている。
  3. Apache の httpd.conf を開き,
    ScriptAlias /cgi-bin/ “c:/Apache24/cgi-bin/”  —>>  ScriptAlias /cgi-bin/ “G:/WEB/cgi-bin/”
    <Directory “c:/Apache24/cgi-bin”>  —>>  <Directory “G:/WEB/cgi-bin”>
    この後のところも,Run-Time Configuration の変更に伴い書き方が変わっている。
    cgi-bin 以外のディレクトリで CGI スクリプトを使う気がある場合は, #AddHandler cgi-script .cgi をアンコメントし,場合によっては .pl を追加するなどする必要がある。
    自鯖では,そのつもりがないのでデフォルトのまま。
  4. G:/WEB/cgi-bin に,Apache24/cgi-bin にある printenv.pl をコピーし,テキストエディタで1行目を perl.exe の場所に書き換える。
    #!D:/programs/perl/bin/perl.exe  —>>  #!c:/perl/bin/perl.exe
  5. Apacheを再起動後,ブラウザから,http://localhost/cgi-bin/printenv.pl を確認。環境が表示されれば,成功。 printenv.pl は削除しておく。

 さて,PHP5.4のインストールに入る。Apache2.4.xとの連携はうまくいくだろうか。ここのブログを読んでくれてる方はご存知の通り,アップデートに失敗したまま,放置プレイである。もっとも,うまく動いてくれるかどうかのチェックは,仮構築では無理な気がする。本鯖の場合も,短時間の稼働ではエラーは出なかったし。

  1. http://windows.php.net/ からphp-5.4.0-Win32-VC9-x86.zipをダウンロードし,ファイルを展開する。
  2. 展開ファイル内の php.ini-production を php.ini にリネームし,下表のようにカスタマイズ。
      デフォルト カスタム
    1 ;default_charset = "UTF-8" default_charset = "UTF-8"
    2 ; extension_dir = "ext" extension_dir = "(ドライブ文字):PHPext"
    3 allow_url_fopen = On allow_url_fopen = Off
    4 ;extension=php_curl.dll extension=php_curl.dll
    5 ;extension=php_gd2.dll extension=php_gd2.dll
    6 ;extension=php_mbstring.dll extension=php_mbstring.dll
    7 ;extension=php_mysql.dll extension=php_mysql.dll
    8 ;extension=php_mysqli.dll extension=php_mysqli.dll
    9 ;extension=php_openssl.dll extension=php_openssl.dll
    10 ;date.timezone = date.timezone ="Asia/Tokyo"
    11 ;sendmail_from = me@example.com sendmail_from = 自分のメールアドレス
    12 ;mbstring.language = Japanese mbstring.language = Japanese
    13 ;mbstring.internal_encoding = EUC-JP mbstring.internal_encoding = UTF-8
    14 ;mbstring.http_input = auto mbstring.http_input = pass
    15 ;mbstring.http_output = SJIS mbstring.http_output = pass
    16 ;mbstring.encoding_translation = Off mbstring.encoding_translation = Off
    17 ;mbstring.detect_order = auto mbstring.detect_order = UTF-8,ASCII,SJIS,EUC-JP,JIS
    18 ;mbstring.substitute_character = none mbstring.substitute_character = none

    14-18 に関しては,デフォルトのままでも動くと思う。特に,17に関しては,自鯖の環境でこうしているので,参考にされる場合は各自対処してください。

  3. 展開時のフォルダ名を PHP にリネームし,そっくり C:直下に移動する。
  4. Apacheが2.4.x になったので,php5apache2_x.dll が変更になる。Apache Lounge から php5apache2_4.dll-php-5.4-win32.zip をダウンロードし,展開後,出来たディレクトリ内の php5apache2_4.dll を PHP 直下に移動する。
         PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに
         同梱されるようになった(12/28追記)
  5. php5apache2_4.dll に同梱の ReadMe.txt に従い,Apache の httpd.conf の LoadModule の一番最後に
    LoadModule php5_module “c:/php/php5apache2_4.dll”
    を追加。PHP のインストールディレクトリ名について,大文字,小文字が入り乱れているが,Windowsは大小を区別しないので,無問題。気になる場合は,自分のインストール環境にそろえてください。
    AddHandler application/x-httpd-php .php
    PHPIniDir “C:/PHP”
    については,httpd.conf の末尾に以下の形で追加。
         <IfModule mod_php5.c>
           AddHandler application/x-httpd-php .php
           PHPIniDir “C:/PHP”
         </IfModule>
    AddType application/x-httpd-php .php だったのが, AddHandler application/x-httpd-php .php となっている。今まで,AddType と AddHandler の違いなんて考えたこともなく,どこかで見かけた通りに設定してきたが, AddType と AddHandler を読んでみると, AddHandler の方が妥当なようだ。
    <IfModule mod_php5.c> と </IfModule> で挟むのは,Apache モジュール mod_so の書き方が変わっていないので,あったほうがいいかなという程度。
  6. Apache の httpd.conf の
    DirectoryIndex index.html  —>>  DirectoryIndex index.php index.html
  7. テキストエディタで,<?php phpinfo() ?> を記入した test.php を作り,ドキュメントルートにコピー。Apacheを再起動後,ブラウザから http://localhost/test.php を確認し,phpinfo() ページが表示されれば,インストール完了。
    ドキュメントルートの test.php は削除し,php.ini の
    ;disable_functions =  —>>  disable_functions =”shell_exec, suexec, passthru, phpinfo”
    に変更後,Apacheを再起動。

 一応,仮構築はできた。あとは,本番ですな。(ドキドキ)

早速の追記:
 書き忘れです。PHPのパスを通していないが,Apacheから使うだけなら通さなくても問題ない。
 と書いたのだが,近頃ググっていて,パスがらみのトラブルを見たので,WinVista・7・8やWinサーバ系だと違うのかもしれない(12/27追記)。

追記(4/12):
 次稿に書いたが,
     (OS 64)指定されたネットワーク名は利用できません。
     : AH00341: winnt_accept: Asynchronous AcceptEx failed.
に対して,
     <IfModule mpm_winnt_module>
       AcceptFilter http none
     </IfModule>
を入れてから,調子がいいように思える。

追記2(4/14):
 php5ts.dllのクラッシュによる再起動があまりに激しいので,Apache2.2+PHP5.3に戻した。しかし,次々稿のようなことになって,頭が痛い。

追記3(4/28):
 以下の構成で安定したよー,ぱちぱち。

  • WindowsXP HE SP3 (x86) 無理やりSP3をあててる
  • Apache 2.4.2 (VC9) (x86) Apache Loungeから
  • MySQL 5.5.23 (x86)
  • ActivePerl 5.14.2.1402 (x86)
  • PHP 5.4.1 (Thread Safe) (VC9) (x86)

追記4(5/2):
 今朝,8時半ごろ, crash + restart が起きた。5日強で1回だから,劇的に減った。ありがちなメモリリークとかも調べてみないといけないかな。

追記5(11/10):
 PHPの設定について,extra-confを作る話を「覚え書-#12。」に書いたので,そっちも見てください。

追記6(2013/1/3):
 VC11 でビルドの Apache 2.4.6 win32 binary について新記事を書いた。