沖縄慰霊の日です。
こんな記事を読んだ。一昨日,この記事を読んだばかりなので,いろいろと複雑な心境だ。
一昨日の記事に対する国内メディアおよび周辺国のメディアの反応。いろいろ。擁護,攻撃,もちろん種々さまざまだが,東京新聞のように書かれると,「すわ」と思いたくなる背景があるのも,事実なのでね。東北大震災の津波以来,日本の原子力行政の言うことをまったく信じられなくなってしまった心情という,背景が……。
投稿アップデート情報 追記(6/22) 追記2(6/28) 追記3(6/28) 追記4(7/2)
この間から,気になっていたPHP Warningがあった。
PHP Warning: Illegal string offset ‘total_users’ in ~¥update.php on line 67
というやつで,一番初めは3月5日,2度目は4月11日で,あとはチョクチョク起こっている。日付から考えてPHPのバージョン関係だろうなあと思っていたが,前回ググったときは,何も探し出せなかった。今回,
Illegal string offset ‘total_users’というのを発見した。読んでみるとどうやらこれ関係のようである。
で,これに余計なコメントを付け加えた後で,記事をじっくり読んだら,こんなのがあった。Inconsistent Variable Usage。おまけに,20966.diffがあって,workaroundが書いてある(汗)。余計なコメントは間違ったことを書いたわけではないが,書かなきゃよかった。時間も経過しているので,削除もできない。せめて,20966.diffを当てた結果チェックしてから書けばよかったなあ。この頃こんなんばっか。
で,このPHP Warningだけど,上記の2つのスレッドを読んでみると次のようなことらしい。
WordPressがユーザ数を調べるのに,マルチサイトとシングルサイトで違う関数を使っていることが混乱のもと。PHP5.4未満では問題が顕在化していなかったが,PHP5.4からemptyの仕様が変わったせいでWarningが出るようになった。empty関数の挙動変更の「5.4.0 文字列のオフセットに非数値を指定した場合は TRUE を返すようになりました。」というところに起因しているようだ。emptyの「例2 文字列のオフセットに対する empty()」を参照。
放っておいても大した影響はなさそうだと安心したが,一応workaroundはやってみた。この次のUpdateのときにPHP Warningを確認してみよう。
追記(6/22):
昨日,プラグインをひとつアップデートしたが,PHP Warning: Illegal string offset ‘total_users’ in ~¥update.php on line 67 は出なかった。workaroundは役に立っているようだ。
追記2(6/28):
6月27日,Illegal string offset ‘total_users’にEric Mannさんから,次バージョンでこの件は修正されるという連絡があった。同日,WordPressについてver.3.4.1へのマイナーバージョンアップがあったが,これにおいては,update.phpは何も変更されていない。次バージョンというのは,ver.3.4.xであるとしてもメジャーアップデートの場合,あるいは,ver.3.5を指していると思われる。
追記3(6/28):
Illegal string offset ‘total_users’でのcogmiosさんの報告によれば,Illegal string offsetは出なくなった模様。update.phpへの対症療法ではなく,coreでの解決のようだ。うちの場合,例の言語の関係でWordPress本体の自動アップデートが出来ないので,今のところ未確認。
追記4(7/2):
今日,利用しているプラグインのうちの一つでアップデートがあったので,update.phpを使った。確かに,Illegal string offsetはでなくなった。Good Job!! — >> WordPress3.4.1。
投稿アップデート情報 追記(2013/2/14)
php5ts.dllのクラッシュによる再起動はずいぶん減ったが,Win版ApacheとPHPのおニューが出たときにはアップデートするように心がけている。しかし,PHPはあまりに早く対処すると怖いという経験がある。本日,4日遅れくらいで,PHP5.4.4(Jun-13 22:39:02UTC)にアップデートした。
Apache Loungeを見たら,下記のようになっていたので,php5apache2_4.dll-php-5.4-win32.zipをダウンロードし,中にあったPHP5.4.4用のphp5apache2_4.dllをPHPディレクトリにコピーした。
14 June 2012
php handler 5.3.14 and 5.4.4
php.iniは前版と変更点がなかったので,そのまま利用した。もし,参考にされる方がいたら設定については,本家のお世話-#28。を参照してください。
しっかし,php handlerが,小枝番ごとに変わっているところを見ると,まだまだ安定とは言い難いんだろうな。
追記(2013/2/14):
php5apache2_4.dll でググって来られる方がおられるようなので,追記。 PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに同梱されるようになりました。
WordPress 3.4「Green」の日本語版がリリースされたので,アップデートした。WordPressのスクリプトが,PHP5.4.xに完全対応してくれば,例のApacheのクラッシュにも好影響があるのではないかとの仄かな期待もある。ホンの仄かなものだけどネ(爆)。
本家のお世話-#23。にも書いている通り,マルチサイトにしてから親サイトの言語設定のせいか,ダッシュボードの「WordPressの更新」のところに日本語版のアップデートが表示されなくなっているので,今回も手動。ファイルを全部FTPで差し換えてから,ダッシュボードにアクセスしたら,一番上部に
Thank you for Updating! Please visit the Update Network page to update all your sites.
というのが,表示されていた。リンクをクリックして,「Update Network page」に行く。
————————————————————————————————————————-
Update Network
You can update all the sites on your network through this page. It works by calling
the update script of each site automatically. Hit the link below to update.
[Update Network] <<— ボタン
————————————————————————————————————————-
ということなので,ボタンをクリックしたら,数秒で,
All done!
になった。めでたし,めでたし。
今のところ,使用プラグインも含め,動きに特に変わった点は見られない。
チョコチョコとあちこち仕様が変わっているようだが,ルートディレクトリで以下の2ファイルがなくなっている。
wp-pass.php
wp-register.php
投稿アップデート情報 追記(6/23)
臨時サーバには,ウイルス対策ソフトとして,Avira Free Antivirusを入れてある。今朝,これが34個もの「PHP/WebShell.A.1[virus]」を報告してきた。検知場所は,C:WINDOWSTempのphpxx.tmpというわけで,現時点で悪さをしているわけではないらしい。
当然削除したが,せっかくCentOS6の練習機を建てたので,これでちょっとphpxx.tmpの中を覗いてみた。初体験。こんな感じ。
—————————————————————————————————————————
<?php
$auth_pass = "";
$color = "#df5";
$default_action = ‘FilesMan’;
$default_use_ajax = true;
$default_charset = ‘Windows-1251′;
preg_replace("/.*/e","x65x76x61x6Cx28ーーーー省略1ーーーーx63x6Fx64x65x28
’~~~~省略2~~~~’
x29x29x29x3B",".");
?>
—————————————————————————————————————————
見たところ,普通のPHP Script。ただし,本体部分は,エンコード後圧縮されている。
Windows-1251 は キリル文字で,この文字コードで保存されているらしい。
x65x76x61x6Cx28ーーーー省略1ーーーーx63x6Fx64x65x28 の部分をデコードすると,
eval(gzinflate(base64_decode( 同様に,x29x29x29x3B の部分は ))); になる。本体部分(~~~~省略2~~~~)は,素人が生半可にいじるのは危ないかなと思い,何もしなかった。何か結構,深刻なタイプのBackdoorで Windows にも Linux にも影響があると書いてあるし。
どこから着弾したのかと思って調べてみたが,よく分からない。よく分からないが,Apacheのログに,
78.85.9.30 – – "POST ~/uploadify.php" 404 "Googlebot/2.1" <<– 関係部分のみ抜粋
というのが,phpxx.tmpと同じ時間帯にズラッと並んでいた。自鯖上には uploadify.php は1枚もないから,HTTPエラーコードはすべて404になっている。これは失敗しているけど,開いているポートから,tmpファイルとして送り込まれたということだろうか。この辺りのことが,もともとよく理解できていないのだが,今回調べてもまだよく分からない。ご存知の方は,ご教示いただけるとありがたいです。
ところで,uploadify.php だが,6月9日づけで,WordPress Exploit Alert: Uploadify.phpという記事が見つかったから,脆弱性があるらしい。既に,パッチが出ているのかどうかははっきりしない。
書き忘れるところだった。UAがGooglebotになっているが,逆引きすると,ホスト名は a30.sub9.net78.udm.net になるので,詐称は明らかなようだ。
追記(6/23):
今日,WordPress Exploit Alert: Uploadify.phpを見に行ったら,新しい情報が書き込まれていた。関係のある方は,参考にされるといいかもしれない。
LINUX Serverを建てなくてはいけないのだが,その前にちょっと,CentOS6の使い方の練習をやってみようと思う。
/etc/sudoersというのがあるようなので,rootになって,
gedit /etc/sudoers
とやってみたら,何かすごく怒られたけど,sudoersが開くことは開いた。
## Allow root to run any commands anywhere
のエリアに,
centos ALL=(ALL) ALL
を追加して上書き保存しようとしたら,「読み込み専用のディスクにファイルを保存しようとしています。」とまた怒られた。「読み込み専用のディスク」と言うことなので,sudoers fileだけの問題ではないらしい。
よく見てみると,sudoers fileの8行目に
This file must be edited with the ‘visudo’ command.
というのがあった。visudoでググってみた。Man page of VISUDOというのがあった。しかし,いいページを見つけたな。JM Projectって,「JM Project は日本語オンラインマニュアルパッケージの作成、 配布を行なっているプロジェクトです。」ってことらしい。日本語Manの大元じゃん。
# visudo
とやったら今度はなんのお叱りもなく,sudoers fileが開いた。ただし,苦手なviで(泣)。ひとまず「↓」で該当場所まで移動する。「i」で挿入モードに切り替え,
centos ALL=(ALL) ALL
をさっきいれたいと思ったところに追加し,「←」で行頭まで移動。「Esc」で編集モードを抜ける。「o」で空白行を1行,挿入した次の行に追加する。挿入モードになっているので,再度「Esc」で編集モードを抜ける。普通のviは,「:wq」で上書き保存終了だが,visudoの場合は,「Q」と書いているので,恐る恐る押してみる。すぐに終わらずに下記のメッセージが出た。
Entering Ex mode. Type “visual” to go to Normal mode.
:
「Ex mode.」と言うことなので,「w[Enter]」を打って上書き。
“/etc/sudoers.tmp” 116L, 3819C written
:
と表示されたので,「q[Enter]」を打って終了。フーッ,終わった(苦笑)。
他のページで,viの使い方説明ページじゃないのに,ここまでviの使い方を細かく書いてるとこないよな。いつも,昔知り合いに教わったノートを引っ張り出してきて,見ながらやってるんだ。「習うより慣れろ」で,常時使っていると慣れるんだろうけど……LINUX Serverに移行するんなら,本当に慣れなくては!!
gedit /etc/sudoers で中を確認してみたら,ちゃんと行が付け加えられていた。
$ sudo yum updateをやってみる。出来た。
一昨日,2週間ぶりくらいで勝った鷹が,昨日も勝った(喜)。今日は月曜日だが,交流戦の変則日程で試合があるので,勝ってほしいな(祈)。
第4弾は切りづらくてバカ長くなってしまった。読みづらいこと甚だしいが,今のところ書き直す元気がない。だって,夕べまた,臨時サーバの調子が悪くて,おいでいただいた方のアクセスを別場所にとばして,弄っていたのだよー。このノートも本当に厳しい状態になってきた。やっぱり,ハードディスクかなあ。しかし,多少腑に落ちないところもある。何とか,サーバを帰宅させるまでは,LC550にがんばってもらいたいんだが……
ところで,転載分のFHさんの掲示板の話を読むと,自分の考えや皆さんの提案の紆余曲折が分かって面白い。あとになって振り返ってみれば,「あれは,違っていたなあ」と思うこともあるが,リアルワールドで,ゴチャゴチャ話しながらすると,ひょいと考えもしなかったようなことを思いつくことがあるのに,似たところがある。これが複数で当たることのよさ。昔から「3人寄れば文殊の知恵」というではありませんか。みなさま,ありがとうございました。
本家のお世話-#39。での,誤差確認を経て,皆さんの意見も「やはりちょっと温度が高すぎるようだ」と言うところに落ち着いた。また,xw4200の内部の構造から考えて,「ふたを開けて稼働させても,あまり冷却効果は上がらないだろうと思う」というjuneさんからのお話もあった。実際,xw4200のふたを開けて連続稼働してみたが,さして冷却効果は増さなかった。
しかし,私はここでちょっと脇道にそれた。本筋と全く関係ないわけではないのだが,Pen4のHyper-Threading Technologyの話が出てきて,サーバ機ならそっちの方が温度にもよさそうだというので,試そうとしたのだ。juneさんが,「セットアップとトラブルシューティング」の「3.7 Hyper-Threading 技術を有効にする(22ページ)」に書いてあるやり方を調べてくださったのだが,あとから考えるとこの説明書の記述が若干違っていた。「Device Options (デバイスオプション)」のところにあるという記述に引きずられて,ハマってしまったが,Hyper-Threadingの項目は,結局,「電源投入時オプション」のところにあった。いつものことながら,自分の思い込みにはあきれてしまう。ホント,困ったもんだ(爆)。
まぁ,最終的には達成できて,図1のように,デバイス・マネージャ上にCPUが2つ表示されるようになった。それから,xw4200には MAS3367NP がついていたが,このSCSI Diskの温度が,HWMonitorでもEverestでも測れていなかった。SCSI DISK対応のフリーソフトをネット上で探した。他にもあるのだろうが,HDDScan(HDD-SCANとは別のソフト)というのがあったので測ってみたが,朝一の電源投入直後,室温より4℃も低い17℃で,どうも,あんまり当てにできない。(転載Part4です。)
さて,ここに至って,チョクチョク C0000218 エラーが出るようになった。これが,xw4200の中をもう一回掃除し,使っていないIEEE1394のボード(AFW-2100)を外したりした後だったので,その辺に原因があるのかと思ったのだが,あとから考えると本家のお世話-#34。に書いたように, MAS3367NP がご臨終寸前だったらしい。しかし,この時点ではそんなことはわからないから,悪あがきもしてみたけど,
C0000218エラーのメッセージが,ハード関係でなく出ることもあるらしいということにすがって(何かソフトですむ手がありそうだと,そっちに走ってしまうのが常。リアルワールドでも,そうです。 <<--- なんちゃって。),CentOS6をインストールしてしまった。で,それでやれやれ起動するようになったワイと喜んでいたら,Disk Read Errorが出るようになった。改めて,前とは別方法で地道に MAS3367NP を調べてみたら,すごい数の不良セクタが見つかったわけだ。
SCSI DISKは MAS3367NP だけしか手持ちがないから,この際,ボード(LSI Logic LSI20320A-R Ultra320)も込みで外してしまった。
Maxtor 6Y160M0を整理して,CentOS6をインストールし直すことにしたのだが,そのためには,データの入ったままのMaxtor 6Y160M0のパーティションを,切りなおさないといけない。どういう訳か,この間利用したGparted-live0.12.0-5では起動できなかったので,たまたま手元にあった,Knoppix 5.1.0のLiveCDで起動し,該当のパーティションを切り直した。Knoppix 6.7.1でも起動できなかった。今回はその辺が目的ではないので細かく調べていないが,なんでだろう。
Knoppix LiveCDのGpartedをGUIで使用しようとするとrootのパスワードを要求されるので,Gpartedの使用前に,rootのパスワードを設定する必要がある。
コンソールを立ち上げて,
su
でrootになり,
passwd
と打つとパスワード設定画面になるので,使いやすいパスワードを設定する。このパスワードは,Knoppix LiveCDのこのセッションが終われば破棄されるので,使いやすいわかりやすいもので構わない。あとは,GUIでGpartedを起動し,普通通りパーティションを切りなおす。この作業は,CentOS6のLiveCD(i386)でも可能なのかもしれない。
ところで,xw4200はx64にも対応しているらしいが,メモリも2ギガしか積んていないし,x64関係をインストールするとどうなるかもよくわからないので,今回使ったものは,SCSI DISKに入れたのも,空けたパーティションにインストールしたのも,理研ミラーから落としたCentOS-6.2-i386-bin-DVD1.isoとCentOS-6.2-i386-bin-DVD2.isoだ。手順はWindows7 HP 64bit SP1+CentOS6のデュアルブート-#2。を参照。実は,「Minimal Desktop」のインストールだと,CentOS-6.2-i386-bin-DVD2.isoは必要ない。また,Hyper-Threading Technologyについては,「セットアップとトラブルシューティング」の「4.3 Hyper-Threading 技術を有効にする(28ページ)」に「Linux システムでは最新のシステムBIOS とSMP カーネル が必要です。」という文言があったが,インストール前にBIOSでHyper-Threading 技術を有効にしておけば,何も問題は生じなかった(インストール後 less /proc/cpuinfo をやってみたら,cpuが2つ表示された。 <<--- cpu情報を表示させるコマンド,終了は「q」キー)。BIOSについては,今回のドタバタの間に,メーカサイトからver.01.09 Rev. a (15 7 2005)を落としてアップデートしている。ずいぶん古い日付だが,xw4200の公式BIOSとしては,これが最新のようだ。 再起動する。 ようこそ画面で基本情報設定後,作ったばかりの一般ユーザでログイン。すぐに,端末を立ち上げてrootになり,yum update する。 ≪注意≫この後しばらくは端末上のrootでの話です。
hostsファイルを編集して,現サーバに接続できるようにする。
gedit /etc/hosts
と打つ。自宅サーバのIPv4を追加して保存。
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
インストール直後のCentOS6には,fuse-ntfs-3gが入っていないので,
yum install fuse-ntfs-3g
でこれをインストール。デスクトップから,データエリア内のパーティションを開いて読み書きを試してみる。できた。
Driver `lm90′:
* Bus `nouveau-0000:01:00.0-2′
Busdriver `drm’, I2C address 0x4c
Chip `National Semiconductor LM89/LM99′ (confidence: 8)
—————————————————————————–
≪注意≫ここでrootをexitします。
端末でsensorsとやって測定。大したデータ取れず。以下のとおり。しかも,どっちがどっちか分からないorz。
smsc47b397-isa-0480
Adapter: ISA adapter
fan1: 2898 RPM
fan2: 0 RPM
fan3: 0 RPM
fan4: 1535 RPM
temp1: +60.0°C
temp2: +0.0°C
temp3: +41.0°C
temp4: +0.0°C
hddtempでも測ってみた。ほんとかいな。今室温25℃なんだが。
# hddtemp /dev/sda
/dev/sda: Maxtor 6Y160M0: 39°C
HDDTEMPを自動起動するアプリに登録する。コマンドの欄には,hddtemp -d /dev/sda を記入する。ここで,OSを再起動。先の参考ページにはログインしなおすと書いてあるのだが,それではだめだった。
パネルにGNOME Sensors Appletを追加する。パネルを右クリックして,[パネルへ追加]を選択し,[パネルへ追加]ダイアログボックスから[Hardware Sensors Monitor]を選択して[追加]ボタンをクリックする。[Preferences]や[Configure Sensor]を自環境に合わせて,設定する。この辺が,転載Part5になる。
さて,このあとFHさんの掲示板を読み直していて,扇風機で冷やしてみるということをまだやっていなかったのに気づいた。なにしろ,次から次へと問題が起こったので。<<--- 言い訳(汗)。やってみなくてはということで,冷やしてみた。結構,冷えたねぇ。
fan1: 2202 RPM
fan4: 1249 RPM
temp1: +53.0℃
temp3: +30.0℃
/dev/sda:Maxtor 6Y160M0: 30℃
それと,このときの副産物として,ほぼ同じものを測定していると思っていたtemp3と/dev/sdaは,まったく違うものを測っているらしいことが分かった。temp3が何を示しているのかは,はっきりしないままだが。
この辺で,juneさんにAMIBIOSのHealth Statusを教えていただいたので,その関連でBIOS項目を見直していた。そして,システムファンのアイドル段階を手動ではあるが,7段階も変更できるということを初めて知った(大汗)。
で,これを7段階の5番目(「低 <-- 1234(5)67 --> 高」)にしてみたら,
fan1: 4026 RPM
fan4: 2671 RPM
temp1: +49.0°C
temp3: +36.0°C
/dev/sda: Maxtor 6Y160M0: 36°C
すごい。なんで5番目かというと、7番目だと,単に,ものすごーくうるさかったので(爆)。
FHさんから,「夏場に設定”7”で無事通過できればイイですね。」というレスをいただいて,長かった「FHの掲示板」での相談を終えた。最終 —>> 転載Part6です。
本当に,お世話になりました m(_”_)m。
レイ・ブラッドベリ(Ray Bradbury)が亡くなりましたねぇ。91歳だった。
華氏451度 (Fahrenheit 451),火星年代記 (The Martian Chronicles)なんかが有名だか,ウは宇宙船のウ (R Is for Rocket)や10月はたそがれの国 (The October Country)などの短編や何かが道をやってくる (Something Wicked This Way Comes)がなつかしいネ。
本家のお世話-#35。の最後に書いたように,運よくグリスのことを思い出したので,FHさんのところで相談して,買いに行ってきた。腕が悪ければ,何を使っても同じかとも思ったが,逆に腕が悪いからいいものの方がましかという思いもあって,その店で一番高かったArctic Silver 5というシルバーグリスを買ってきた(爆)。
グリスを塗るのに,もう一度シンクも外してよく見たら,まだ埃が見られたので,ついでにエアダスターで飛ばしておいた。エアダスターは,グリスと一緒に店で買ってきた。
グリスの除去は,どういうわけか家にあった消毒用のエタノールで行なった。まぁ,そこそこきれいになってるよね(図1)。で,要領もうかがったので,グリスを塗り直して再固定した。この辺,転載Part2をお読みください m(_”_)m 。 ここから,話は温度になってくるのだが,掲示板でのやり取りを見てると,ホント迷走してるねぇ。そのほとんどの原因は,私がサーバ機のハードウェア・スペックをちゃんと把握していなかったことにあるんだが(爆)。 実は,PCの温度を真剣に測ったことが,あんまりない。使ってきたPCは主としてノートタイプだったので,温度の改善としては,もともとついているチルトを使って傾けるとか,台に載せて底面に風が通るようにしてやるくらい。まぁ,ファンの掃除というのもあるだろうけど,ノートの場合,ファンまでたどり着くのも結構大変だし。 連続稼働後に測った記録画像が図2だ。これは,上段がHWMonitor,下段がEverestのものである。 ここで,温度測定ソフトの誤差がどのくらいかという話になって,一晩電源を落としてPCをしっかり冷やしたのち,朝一で電源投入直後の温度を測ってみた。これが右の図3になる。 |
この温度の話は,転載Part3あたりになるので,よろしく。
投稿アップデート情報 追記(2013/2/14)
php5ts.dllのクラッシュによる再起動は完全になくなったわけではないので,Win版ApacheとPHPのおニューが出たときにはアップデートするように心がけているのだが,PHPはあまりに早く対処すると怖いという経験がある。それに,ハードの不具合でバタバタしていたせいで後回しになっていたが,本日遅ればせながら,PHP5.4.3(May-08 18:26:37UTC)にアップデートしてみた。Apache Loungeを見たら,httpd-2.4.2-win32-VC9.zip(May-14)もタイムスタンプが変わっているようなので,これも一緒に入れ替えることにした。
php5apache2_4.dll-php-5.4-win32.zipも実体は変わっているようなので落として展開してみたら,PHP5.4.3用のphp5apache2_4.dllが入っていた。危ない危ない。気づかなかったら,またハマるところだった。これを忘れずにPHPディレクトリに入れること。
Apacheのhttpd.confとphp.iniは前版と変更点がなかったので,そのまま利用した。もし,参考にされる方がいたら両方の設定については,本家のお世話-#28。を参照してください。
ついでに,MySQLもmysql-5.5.25-win32.msiにアップデートした。
追記(2013/2/14):
php5apache2_4.dll でググって来られる方がおられるようなので,追記。 PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに同梱されるようになりました。