Apache HTTP Server 2.4.1

2012.02.22(水)

 ついに,出ましたねぇ,2.4.x系お初のGA(Apache HTTP Server 2.4.1)。

 orgでは,2/21リリース。loungeでは,同じ枝番で2/15になっているが,こっちのほうは,「this is fairly new」となっており,GAではないようだ。

 実際,Apache HTTP Server 2.4.1 Releasedにも,「重要: Windowsユーザへ:Win32DisableAcceptExの代わりにAcceptFilter Noneを使うことになっているが,mod_sslとの同時使用時に問題があるようだ。今のところ,Apache 2.4.1は,まだすべてのWindowsサーバをカバーしているとは言えない。httpd 2.4のステイブルなWindowsバイナリのディストリビューションはまだないが,近いうちに種々の依存関係が解決されて,そちらのほうもベータからGAになるだろう。」という記述がある。

ActivePerl+ImageMagick

2012.02.17(金)

 この間書いたようにLAMP系にも触れていたいということで,XREAのフリースペースを利用している。「Ajax Edit Commentsフリー版(v.5.0.7.0)のLAMP系での使い方。」でも,4つテストしたレンタルサーバの一つとしてここで試してみた。

 で,現在のXREAのフリースペースでの私の主題目は,Perlによるcgiの勉強である。現在,私が使っているXREAのサーバのPerlのバージョンは5.8.8である。自鯖のほうでもPerl5.x.xを使っているので,cgiとしても基本的にはそれに従う方向で書く勉強をしている。そんなわけで,パッケージやモジュールを使った書き方を学ぶことになる。

 昔,齧ったことのあるPerlに比べて,モジュールのありがたさを満喫しているところだ。今まで使ってきたモジュールは,XREAのサーバにはすべて導入されていた。まぁ,標準モジュール以外で使ったのは,Image::SizeとImage::Magickだけだから,XREAあたりでは当然なのかもしれない。
 一方,自鯖のほうには,どちらも入っていなかった。Image::Sizeのほうは,Perl Package Manager(PPM)で簡単にインストールできた。Image::Magickのほうは,実はこの間アンインストールしたばかりだ。早速,再インストールした。
 見た目は似たようなブログCMSであるWordPressMovableTypeだが,大きな違いの一つはWordPressはPHPスクリプトの塊,MovableTypeはPerlスクリプトの塊ということだ。

 インストールが終ったときに,WordPressは「たったこれだけで終わりよ」みたいに簡単さを誇示しているが,WordPressしかインストールしたことがなかったら,あんまり印象に残らないアピールだろう。でも,本当に楽なほうだと思うよ。

 MovableTypeもバージョンが進むにしたがって,どんどん楽になってきていたので,極端に難しい方ではないと思うが,最初に導入したときには本当に苦労した。全く経験がなかったせいもあるが,サーバがWindowsだったので情報が少なかったということもあると思う。そして,何よりハマったのがPerlの追加モジュールのインストールだったのだ。その中でも,Image::Magickについては,いろいろと手こずった。

 ActivePerl上でのImageMagick(=PerlMagick)のインストールで気を付けるポイントは,結局のところ2つなのだ。

  1. ひとつは,使おうとしているActivePerlに対応しているバージョンのImageMagickを使うこと。
  2. もう1つは,インストール後必ずWindowsを再起動すること。

 ほかに,staticを使うかdllを使うかとか,Visual C++ 2010 Redistributable Package (x86) or Visual C++ 2010 Redistributable Package (x64)のインストールとか,x86とx64のどちらを使うかとかあるが,これについてはImageMagick(=PerlMagick)に書いてある。
 しかし,上記の2つは,結構気づかない。
 1.のほうは,ImageMagickをインストールするときに,ActivePerlv5.xx.x build xxxxに対してPerlMagickをインストールするという項目がある。ここで,前もってインストールしてあるActivePerlのバージョンが書かれていれば絶対に間違いないし,わずかにバージョンが違うだけでもダメなのだ。

 2.のほうは,本当に落とし穴で,ImageMagickインストール後にPerl Package Manager(PPM)上ではちゃんとモジュールが見えるのだが,それでもWindowsを再起動しないままで使えたことは一度もない。実際,今回もOSを再起動しないまま使ったら,Image::Magickが見つからないというエラーが出た。

 初めのころは,ほんっと,ハマったよー。おかげで,濡れ衣を着せちゃったことさえあるくらいなのだ(笑)。

ウェブマスター ツール 。

2012.02.16(木)

 googleのウェブマスター ツールの設定をしてみた。googleのアカウントはむかーし作ったけど,ほとんど使ったことがない。

 しかし,ウェブマスター ツールには,サイトのマルウェア診断がある。これを利用させてもらうことにした。なんでかというと,今日の我が家の検索キーワードに「wordpress thumb.php 脆弱 修正」というのがあって,うちの記事WordPressのテーマでゼロデイだって?!を読みに来た方がいらっしゃった。うちの場合は,クラッキングされたという記事ではなくて,Scottのつぶやきがらみの記事だったんだけどね。

 まぁ,そういう方はちょくちょくいるんだ。で,同検索ワードでググったところでは大した数ではないのだが,「wordpress クラッキング」というキーワードだと,ひと月以内でも結構な数が引っ掛かることが分かった。

 幸いにして,今までそういう目にあったことはないけど,Robのとこの例もあるし,何事も「転ばぬ先の杖」というじゃありませんか。

本家のお世話-#26。(Apache2.2.22へアップデート)

2012.02.15(水)

 待っていたApache Lounge版のApache2.2.22が出た。早速ダウンロード。

 News & Hangoutによると,APR 1.4.6 と zlib 1.2.6 待ちだった模様。Changelog Apache 2.2はこんな感じ。

 いろいろ変わっているんだが,httpd.confで変わっているのは,次の部分だけ。
     ***** Apache2.2.21
      427: # MaxRanges: Maximum number of Ranges in a request before
      428: # returning the entire resource, or 0 for unlimited
      429: # Default setting is to accept 200 Ranges
      430: #MaxRanges 0
     ***** Apache2.2.22
      427: # MaxRanges: Maximum number of Ranges in a request before
      428: # returning the entire resource, or one of the special
      429: # values ‘default’, ‘none’ or ‘unlimited’.
      430: # Default setting is to accept 200 Ranges.
      431: #MaxRanges unlimited
     *****

 httpd.exeをちょっと停止。展開したファイルを現在のものと置き換え。いつもログファイルの保存を忘れるので,注意。httpd.exeを再起動。

 初めてインストールする場合は,本家のお世話-#14。(Apacheの再導入)を参照してください。

この分だと……

2012.02.08(水)
 寒いですね。今朝は,目が覚めてから1時間ほども布団の中でグズグズしていました。(笑)

 今日は一日降っていました。現在,大雪注意報・雷注意報が発令中のようです。この冬,結構,降雪はあるのですが,積雪まで至っていません。しかし,この分だと明朝は積もっているかも。

 動画は,18:10くらいのものです。この時間だと肉眼ではかなり暗いです。デジカメで撮ったままだと,しんしんと降っているのがよく見えたのですが,アップするためにflvにしたらちょっと厳しくなりました。見えやすいように少し手は加えたのですが,難しいですね。明るくなって,日没後の雰囲気が損なわれています……


 事後の報告です。9日朝は積もりませんでしたぁ。
 屋根や田畑が白くなった程度で,動画の状態とあまり違いませんでした。

Facebook, Twitter & Google+ Social Widgetsを入れてみた。

2012.02.07(火)

 流行に乗ってみようかと,「いいね」ボタンと「Tweet」ボタンを付けてみた。ホームのところもつけたらあまりにもうっとおしかったので,個別ページと固定ページを表示したときだけに見えるようにした。
 しかし,それでもうざい気もする。使ったプラグインは,Facebook, Twitter & Google+ Social Widgets

覚え書-#7。

2012.02.06(月)

 XREAと@pagesにWordPress3.3.1のシングルサイトを構築したけど,XREAのサイトからは通知メールが来るが,@pagesのサイトから通知メールが来ない。というわけで,の「WP Mail SMTP」をインストールした。

 今度もうまく働いてくれるだろうか。一応,テストメールは無事に来た。

Ajax Edit Commentsフリー版(v.5.0.7.0)のLAMP系での使い方。

2012.02.04(土)

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

 Ajax Edit Commentsフリー版(v.5.0.7.0)の件の追加記事です。

 昨日から,juneさんと一緒にああでもないこうでもないとやってきたが,どうやらできた気がする。@pagesとXREAと,どちらも同じ方法で成功したのでその方法をまとめておく。

 WP Ajax Edit Commentsのフォーラムにも後で報告しておこうかな。

 使えるようになっても,「Stack overflow at line: 2 too much recursion」のエラーは残る。今回,このエラーのせいでAjax Edit Commentsフリー版(v.5.0.7.0)が動かないのではないかと誤解したところからややこしくなったが,結局は別の問題のようである。

 では,一つずつ手順を書いていく。

  1. ダッシュボードのプラグイン・メニューから,Ajax Edit Commentsバージョン 5.0.7.0を新規追加で,あるいは,アップデート・メニューからインストールする。インストールの終了時にプラグインを有効化するボタンがあるが, ここでは絶対に有効化してはいけない。
  2. FTP接続ソフトでサイトにアクセスし,/wp-content/uploads の直下にaecというディレクトリを作り,パーミッションを707or777にする。
    新しいAjax Edit Comments はスクリプトがaecというディレクトリを作って使うようになっているのだが,所有権とパーミッションの設定がうまくいかないくて,動かないようだ。
  3. ダッシュボードのプラグイン・メニューから,Ajax Edit Commentsを有効化する。aec下にはadmin.js,edit-comments.css,ajax-edit-comments.js,comment-editor.css,frontend.js,popups.js が必要だが,この時点では,admin.jsとedit-comments.cssしかない。Ajax Edit Commentsの設定ページに行って,[設定の更新]ボタンを押すことで,他の4つのファイルも生成される。
  4. スクリプトが生成した admin.js,edit-comments.css,ajax-edit-comments.js,comment-editor.css,frontend.js,popups.js の所有者がサーバになっているので,これを他のファイルと同じく自分に変更する。shellが使えるならコマンドを打てばいいが,たいていは無理。そこで,まず,aecをそっくりダウンロードする。
  5. 次にaecをそっくり削除する。中だけを削除しようとしても所有者が違うのでうまくいかないよ。ここで,2.でaecを手動で作成したことが生きてくるわけ。まぁ,場合によっては,ディレクトリが空でないと削除できないということもあるかもしれないが。
    削除後,再度aecを作り,ディレクトリのパーミッションを707or777にする。
  6. aecの中の6つのファイルをアップロードし,パーミッションを606or666にする。

 これでうまくいくはず。健闘を祈る(爆)。

追記:
 本家のファイルを見ると,aecの下に <?php // Silence is golden. の記載されたindex.phpもある。これも手動で作っとくべきかな。

追記2(2/7):
 一応無事つかえてはいるけれども,どう考えてもWordPressのプラグインとはいえない。インストールして有効化したらすぐ使えるというのが,こういうプラグインのスタイルである。プラスアルファとして,オプション設定が必要なことはあるが,サーバの設定じゃあるまいし,FTPで接続してとかshellを使ってとか,ゴリゴリやらなきゃならないなんて,WordPress本体の設置においてすらまれなことだ。ましてや,ものはプラグインなんだから。
 Ver.4.1.8.3までは原作者のAjay と Ronald の名がみえるが,history.txtを見ると4.1.9.9からはRonの名前だけで,現在はその名すらない。なんかどうもすったもんだを感じさせる記録だネ。
 1月末にRonに出したメールにはすぐに返事が来て,もう手を離れているのでそれほどできることはないけれど,何とかいろいろやってみるということだった。ネット上に旧安定板が出ているようだが,もしかしたら彼が関係あるのだろうか。本当のところは分からない。すべて藪の中だ。
 いずれにしても,現在のバージョンについては,http://ithemes.com/ に責任がありそうなので,サポートフォーラムを見に行ったが,どうも頼りになりそうになく感じたので,Ajax Edit Commentsのサポートからもらったメールに入っていたとこ宛てに,苦情を書いてみた。一昨日のことだ。しかし,今のところ返事は来ていない。どうなるかわからない。http://wordpress.org/extend/plugins/wp-ajax-edit-comments/ での対応を見ていると,あまりあてにはなりそうにない。このプラグインがこのせいでダメになるとしたら,残念なことだ。

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

投稿アップデート情報  追記(2/7)  追記2(2/7)  追記3(2/9)

 Effective DoS attacks against Web Application Plattforms ? #hashDoS のように PHP5.3.9 に追加されたコードに,remote からのコードの実行を招く別の欠陥があるという指摘があったばかりだが,PHP5.3.10 が出た。PHP News Archiveよれば,「All users are strongly encouraged to upgrade to PHP 5.3.10.」ということなので,早速やる。

 Apacheもorg版は2.2.22になってるんだが,Lounge版はまだのようだ。

  1. 何はともあれ,php-5.3.10-Win32-VC9-x86.zip をダウンロード,サーバ機がWindowsXpSP3(x86)なので。
  2. 適当なところに,ファイルを展開。
  3. 5.3.9 の php.ini-production と 5.3.10 の php.ini-production を
    fc /n c:\php.ini-production c:\php\php.ini-production >c:\compare.txt
    で比べてみた。相違点はなかったので,php.iniは 5.3.9 のものをそのまま使う。
  4. php.ini以外の展開したファイルと5.3.9のファイルをそっくり差し換える。

 
 ところで今日は立春ですね。

追記(2/7):
 そういえば,PHP 5.4.0がRC6まで行っている。次の候補版のリリースは2月2日と書いてあるが,少し遅れいてるみたいで,RC7は,まだPHP Quality Assurance Team Web Page.にしかないようだ。遅れているわけではなくて,NEWSもちゃんと出ていた。http://www.php.net/のトップに記載がないだけらしい。  斜字体は2/9追記
 NEWSを読んでいてもピンとこないことばかりで,これらのテストをしようなどという大それた気は毛頭ないのだが,NEWSを読んでいてちょっと気になる項目があった。「<?= は今後short_open_tagの設定にかかわらず,有効になります。」と書いてある。そういえば,どっかほかのところでも,そんなことを読んだ気がする。
 short_open_tagについては,昔,痛い目にあったことがある。5.3.10のphp.iniを調べてみたら,
    ; short_open_tag
    ; Default Value: On
    ; Development Value: Off
    ; Production Value: Off
となっていた。使っているのは,php.ini-production だから,自鯖では当然Offになっているわけだ。で,恐る恐るOnにしてみた。こいつが関係あるのは,確か,PHPをXMLと組み合わせたときの<?xml ?>とかに関係あるだけだったと思うから,今は,WordPress以外のスクリプトはほとんど使っていないし,使ってる分も自分で作ったものだけのはずだから,大丈夫だとは思うんだが……

 さて,Apacheを再起動。

 大丈夫みたい。ホッ。これでこの件に関しては5.4.0にするときも問題なしだね。

追記2(2/7):
 ここのところ,1週間ばかりhttp://www.gknw.de/mirror/curl/win32/に接続できなかった。http://curl.haxx.se/を見ると,version 7.24.0が出ているみたいだけどと思いながら,他に落とせるところはないだろうかと探していて,http://fossies.org/windows/www/curl-7.24.0-ssl-sspi-zlib-static-bin-w32.zip/を見つけた。
 で,今まで読み違えていたcurl.exeに関することと,最近のPHPにはもともとlibeay32.dll も ssleay32.dll含まれていることに,気づいた。どこかで勘違いして,「curl.exeがPHPのライブラリとしている」と思い込んでしまっていたのだが,実はいらなかった。どこで勘違いしたのだろう。cURLのインストール手順には,「libeay32.dll および ssleay32.dll が PATH の通った場所に存在する必要があります。」とちゃんと書いてあるのに!! 落ち込む。
 一応趣味だから,libeay32.dllはversion 7.24.0にしたけど……(爆)

@pagesにWordPress3.3.1をインストールする。

2012.02.03(金)

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

 この間から,juneさんがAjax Edit Comments v5.0.7.0の検証に取り組んでくださっている。そのために,@pagesでWordPressをインストールしたら(www22.atpages.jp),いろいろエラーが出たというので,私も試しにWordPress3.3.1をインストールしてみたが,私の使用サーバ(www39.atpages.jp)のほうでは特にエラーなしで,同じことの経験はできなかった。

 juneさんのほうで出たエラーは,
◎wp-admin/index.php
  require_once(ABSPATH . ‘wp-admin/includes/dashboard.php’);を
  require_once(‘./includes/dashboard.php’);

◎wp-admin/widgets.php
  require_once(ABSPATH . ‘wp-admin/includes/widgets.php’);を
  require_once(‘./includes/widgets.php’);

◎wp-admin/nav-menus.php
  require_once( ABSPATH . ‘wp-admin/includes/nav-menu.php’ );を
  require_once( ‘./includes/nav-menu.php’ );

◎/wp-admin/update.php
  timer_start();の下
  require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );を
  require_once( ‘./includes/upgrade.php’ );

などなどらしい。@PAGESにwordpressインストールでエラーで同様のエラーを経験された方の記事があった。全部パス関係なのでサーバ設定のせいだろうが,どこが違うのだろう。

 それから,プラグインなどの自動更新で接続情報のページが出たとき,
  > ホスト名をFTPソフトと同じように
  > wwwXX.atpages.jp
  > にすると何故かエラーになっちゃいました
  > localhost
  > で正常に通信できるようです。
ということもあったらしい。これも私の使用サーバでは起こらなかった。これレンサバの設定がまずいよね。

 ところで,せっかくだからやったことを書いておく。私のほうでインストールしたWordPress(www39.atpages.jp上です。)でも,一応,Ajax Edit Comments v5.0.7.0のテストをやってみた。やはり,スクリプトが勝手に作るaec以下の所有権の相違が,足を引っ張っているようだ。したがって,それを作らない古いバージョンなら,問題ないということなんだろう。

==============================以下,www39.atpages.jpへのWordPress3.3.1のインストール。

 @pagesにユーザ登録する。

 WordPressではデータベースを使うので,管理画面(URLは「[@pages]新規登録のお知らせ」メールに記載されている。)にアクセスして,DB(mysql)利用の準備をする。
 WordPressのconfigでいるので,以下の項目を控えておく。
    データベースホスト名
    データベース名
    データベースの接続ユーザ名
    パスワード

 以下のデータで,FTP接続ソフトの設定をし,PASVモードでアクセス。
    ID : 自分が登録したID,「[@pages]新規登録のお知らせ」メールに記載。
    パスワード :「[@pages]新規登録のお知らせ」メールに記載。
    FTPサーバ :「[@pages]新規登録のお知らせ」メールに記載。
 展開したWordPressのファイルをアップロードするのだが,一括でやると,「1Gの範囲ならファイルサイズの上限はありませんが、一回の転送で1MByteを越えると5KByte/sに転送量を制限されます。」に引っ掛かってしまうようだ。一度でできなかった分は再度アクセスしてアップすればO.K.

 WordPressをアップロードしたディレクトリ(ホームページURL/ワードプレス専用ディレクトリ/)にブラウザからアクセスする。
 メッセージに従って進めていくが,パーミッションを変えていないせいで,「wp-config.php ファイルへの書き込みができません。」が出るので,wp-config.php を手動で作成してFTP接続ソフトでアップロードする。このときにWindowsのメモ帳は絶対に使わないこと。BOMで痛い目に合うよ。

 あとはログインして,必要なことをダッシュボードから設定する。

 プラグインを更新で,
「ダウンロードに失敗しました。 ファイルストリーミングの送り先となるディレクトリが存在しないか、書き込み不可になっています。」が出るので,FTP接続ソフトでドキュメントルートに/tmpを作り,パーミッションを707にする。
 wp-config.phpの「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の行より上に
define (‘WP_TEMP_DIR’, ‘/usr/local/www/htdocs/ユーザーID/public_html/tmp/’);
を追加。これでプラグインページからの更新ができるようになる。
==========================www39.atpages.jpへのWordPress3.3.1のインストール,ここまで。

 さて,ここで,Ajax Edit Comments v5.0.7.0の実験。

 エラーの嵐って感じだったが,何とか,コメント送信まではできるところにたどり着いた。しかし,一番肝心な編集機能が使えない。アへ。

 一応,やったことを書いておく。

 /wp-contentの直下に/uploadsを作りパーミッションを707にする。
 インストールしたときにこの下にaecというディレクトリができるが,これのパーミッションが書き込み不能で,しかもownerが自分IDじゃなくて,番号(ApacheのIDじゃないかと思う)になっているせいで,いろいろ不都合が出ているみたい。

 ひとまず,Ajax Edit Commentsを停止する。

 FTP接続ソフトアクセスし,まずはスクリプトが作ったaecを削除。手動でaecを作り直して,パーミッションを707にする。再度,Ajax Edit Commentsを有効にする。

 今度は,aecの中にいくつかファイルができている。これのownerがまた番号。でまず,aec下に存在するファイルをすべてダウンロード後,Web上のものをすべて削除。改めてアップロードするとすべてのファイルのownerが自分IDに代わって,何とかAjax Edit Commentsが使えるようになる。レンタルサーバで所有者変更のコマンドが使えないので,こんな面倒なことになる。

 しかしだ,aec下に新しいファイルができるたびにこの問題が生じるので,フルにコントロールが使えない。のだろう,多分。orz

追記:
 aec配下のファイルについて,所有者だけでなくパーミッションも変えてやったら,コメントするたびにaec配下にゾンビのごとくファイルが増えていたのが止まった。パーミッションは606。
 しかし,相変わらず編集機能は使えない。

追記2(2/4):
 Ajax Edit Commentsフリー版(v.5.0.7.0)のLAMP系での使い方。,書きました。