カテゴリー
Linux

CentOS6の練習-#4(インストールされたPackage)。

 現時点でインストールされているパッケージのリストを確認。
   # yum list installed
とやると,一覧が画面上を流れる。特定のパッケージのインストール状況とかを知りたいんであれば,
   yum list installed|grep openssh
とかでいいんだが,今の場合は一覧なので,画面上を流れられても困る。記録のためにフラッシュメモリー上に書きだすことにする。

 で,ちょっと,覚え書。USBフラッシュメモリのマウントのしかた。

  • USBフラッシュメモリを挿す。 <<— 当たり前か(笑)。
  •    # dmesg
    でデバイス名を調べる。  sdb: sdb1  になっていた。
  • マウントポイントを作る。 <<— 初回のみ。
       # mkdir /mnt/flash
  • マウントする。
       # mount -t vfat /dev/sdb1 /mnt/flash
  • installed.txtに書きだす。 <<— 今回はこれをやりたくてマウントしたので,ここの操作は当然毎度変わる。
       # yum list installed > /mnt/flash/installed.txt
  • アンマウントする。
       # umount /mnt/flash
カテゴリー
everyday life

&の&amp;への変換。

投稿アップデート情報  追記(7/19)  ……  追記3(7/20)  追記4(8/14)  追記5(2014/2/24)

 この間うち,シバケンさんとこの「シバケンの掲示板」で,「ひえの文字」という話があった。たまたま覗きに行ってたので,なんでだろうと思った。

 通常のひえは「稗」だが,くさかんむりのついた「薭」てのがあって,これが実体参照で「&#34221;」ってやっても出ないという話だった。今どきのブラウザやOSで,そんなのありかなぁと思ったんだが,FHさんの「FHの掲示板」でも同じことが起こっていた。そういえば,TODOSで「惊奇日本」と書こうとしたときも「&#24778;奇日本」になっちゃったよなあと思いだした。

 で,FHさんとこの掲示板は,KENTさんとこの「Joyful Note」だってことを知っていたので,これをダウンロードしてちょっと調べてみた。TODOSで使っている「WEB PATIO」はスレッド型で少し複雑なので,前にテスト設置したときに前もっての設定とかが面倒だった記憶があるので,「Joyful Note」を調べることにしたわけだ。

 「Perlのお勉強」も飽いちゃって,あのまま放置プレイだが,それでも,高々,6回しかやっていないこれが少し役に立ったね(爆)。joyful.zip を展開してできるinit.cgiにこういう部分があった。これの13行目で,問答無用で「s/&/&amp;/g;」をやってるから,「&#34221;」の頭の&が&amp;になってしまって,実体参照が効かなくなるわけだ。

 じゃ,この行(つまり,13行目)をコメントアウトしてしまえばいいじゃないかというカスタマイズは,すぐに思いついた。が,割とちゃんとした掲示板の作り手のみんながみんな「& → &amp;」ってことは,セキュリティでまずいからだろう。しかし,まずさの度合いが大したことなければ,目をつぶっちゃおうかと思ってググってみたが,あまりにも,常識なのか,どうまずいのかを教えてくれるところはなかなかなかった。そんな中で,なるほどと思ったのが,「【PHP関連】「&」(アンパサンド)をエスケープしなければならない実例」という記事。やはり,13行目を,問答無用でコメントアウトするのは,大変,まずいようだ。

 ということになれば,次に思いつくのは,&に続く文字の条件分岐で処理を分けてやろうということだ。しかし,Perlに疎い悲しさ,どうやったらいいかわからない。投げちゃおうかと思ったころに,運よく発見したのが,「&の実体参照への変換」。どんぴしゃり,やりたいことをやったサンプルスクリプトを置いてくださっていた。これを参考に(いや,流用して),init.cgiのフォームデコードの部分をこういうふうに書き換えた。

 で,実体参照に関係ない「&」はちゃんと「&amp;」になり,実体参照はちゃんと実体が表示される「o6asanの掲示板Shift-Jis版」ができた。このテストのために作った「o6asanの掲示板」だが,これは自鯖上にはないから,このまま残しておいて,自鯖が落ちているときの連絡用として使うのも手だなと考えているところである。

追記(7/19):
 後知恵だが,ちゃんと表示されないのは「’JIS’ 補助漢字」なんだから,初めからUTF-8で行けばいいんじゃないのというわけで,「Joyful Note」のスクリプトをUTF-8デフォで作りなおしてみた。Perlがよくわかっていない私だが,これは割と簡単だった。
 Jcode::convert に関係あるcgi ファイル上の 12カ所の sjis を utf8 に書き換え。
 admin.cgi,check.cgi と tmpl 内の html 上の charset=shift_jis を charset=UTF-8 に書き換え。
 *.cgi,*.html,*.datをUTF-8エンコードで保存し直す。

 init.cgiの内容の書き換えは全くしないで,こんなことで,UTF-8デフォのJoyful Noteができた。 —>> ここにおいてます。

追記2(7/20):
 EUC-JPでも確認してみた。init.cgiを変更しなければ,「補助漢字」は表示されなかった。当たり前だが,
 Jcode::convert に関係あるcgi ファイル上の 12カ所の sjis を euc に書き換え。
 admin.cgi,check.cgi と tmpl 内の html 上の charset=shift_jis を charset=EUC-JP に書き換え。
 *.cgi,*.html,*.datをEUCエンコードで保存し直す。
の必要もある。EUC-JPデフォのJoyful Noteは ここにおいてます。

追記3(7/20):
 稼働中掲示板への対処だが,UTF-8に文字コードを直すのは大変で,現実的ではないと思う。

 init.cgiの差し替え方式なら,レンタル掲示板の場合であっても,管理会社の担当者がその気になってくれれば,「補助漢字」を表示させるのは可能だと思う。init.cgiを上書きアップロードすれば,上書き後に投稿される記事に限り,「補助漢字」が普通に表示されるようになり,そこまでに書き込まれていた掲示板の記事は影響を受けない。

 万が一,こちらのカスタマイズを利用される方がいるといけないので,大事なお約束事項を(爆)。
 お約束===この記事のカスタマイズを利用される方は,あくまでも自己責任でお願いいたします。

追記4(8/14):
 掲示板を整理した。で,もし落として違いを試してみようと思う方がいらっしゃったら,こちらへどうぞ。

追記5(2014.2.24):
 ドメインを移管したので, XREA においてあったものは,なくなった。

カテゴリー
everyday life

停電がありました。

 今朝8時前に,知り合いが電話してきました。「大丈夫だった?」と。

 実はそのころにはもうおさまっていたのですが,夜半から明け方にかけて,大雨が降りました。我が町には,山側と町側(山側と比べと言う意味ですが)に2ヶ所アメダスがあります。それの記録を見てください。すごいですよね。山側は,大体大雨と言うと,ニュースの記録にいつも出るくらい良く降るところなのですが,それにしても,80mm/h近い数字なんてはじめてみました。ニュースを見ると,県内では100mm/h以上降った
ところもあったようです。

 裏の小川を見に行ったら,もう大分水量が落ち着いていましたが,日ごろ跡のないところまで泥がついていて,相当に増水していたのが感じられました。

 さて,この記事を書こうとしたら,自鯖につながりません。あれっと思って見に行ったら,落ちてました。今回は,例のやつではなくて停電のようです。雷もすごかったから瞬断があったのでしょう。臨時サーバはノートなのですが,バッテリが完全にオダブツ状態なので,一瞬でも停電すると立ち直れません。朝5時過ぎに電源が落ちてから,さっき私が入れなおすまで,4時間ばかりサーバ落ち状態だったようです。毎年夏になると雷によるサーバ落ちがあります。まあ,無停電対策をするほどのサイトでもないので,そのままですが。

 雨は上がっても,これだけ降ると当分は土砂災害が心配ですネ。

カテゴリー
Linux

CentOS6の練習-#3([Minimal]インストール)。

投稿アップデート情報  更新(7/13)

 さて,いよいよLinux サーバの構築を始めます。Webサーバの構築だから,「本家のお世話」の関係だが,ひとまずはテスト構築なので,「CentOS6の練習」に入れた。何はともあれ,Minimalのインストールまで。
 今日(7/13),CentOS6.3のリリースノートを拾い読みしていたら,「MinimalCD と full DVD から Minimal を選んだ場合は完全に同じわけではないから気をつけてね」と書いてあった。6.2についても同じことが書いてあった。どこが違うんだろう。それもどっかに書いてあるんだろうなと,思った。 yum update したら,6.2が6.3になったんだが,今後,サーバについては,MinimalCDを基準に行こうと思っているので,この際,も一度MinimalCDからやり直しておこうということで,ちょっと書き換え。

  1. xw4200を,CentOS-6.2-i386-bin-DVD1から起動する。Minimalのインストールだから,CentOS-6.2-i386-minimal.iso を使ってもいいんだが,この間作ったDVDがあるのでそれを使用した。CentOS-6.3-i386-minimal.isoから起動する。
  2. 一番上の「Install or upgrade an existing system」のままで[Enter]。
  3. |Disk Found|では「Skip」を選んで[Enter]。
  4. CentOS6のロゴが表示されたら,[Next]をクリック。
  5. Japanese(日本語)を選び,[Next]をクリック。
  6. キーボードは日本語が選ばれていると思うので,そのまま,[次(N)]をクリック。
  7. 「基本ストレージデバイス」を選んだまま,[次(N)]をクリック。
  8. 「新規インストール」を選んだまま,[次(N)]をクリック。
  9. ホスト名は,自鯖のホスト名を設定。
    左下の「Configure Network」に入って,System eth0 の IPv4について自宅LANの情報を設定する。「自動接続する」のところを必ずチェックする。これについては,ルータなどの設定も必要になる。
    [次(N)]をクリック。
  10. タイムゾーンは,「アジア/東京」のまま,左下の「システムクロックで UTCを使用」のチェックをはずし,[次(N)]をクリック。
  11. rootのパスワードを設定。絶対に忘れないように,控えを!! [次(N)]をクリック。
  12. 「既存のLinuxシステムを入れ替える」を選び,左下の「パーティションのレイアウトをレビューまたは修正する」にチェックをしたのち,[次(N)]をクリック。もう1度,[次(N)]をクリック。 「変更をディスクに書き込む」をクリック。
  13. |ブートローダーのオペレーティングシステムのリスト|から「Others」を削除して,[次(N)]をクリック。
  14. [Minimal]をインストールするので,そのままで,[次(N)]をクリック。
  15. DVD CDが排出されるので,取り出した後,光学ドライブを閉じて,「再起動(T)」をクリック。
  16. CentOS release 6.2 (Final) CentOS release 6.3 (Final)
    Kernel 2.6.32-220.e16.i686 on an i686 Kernel 2.6.32-279.e16.i686 on an i686

    login:
    と表示されるので,ユーザ名はrootを使用し,先ほど決めたrootのパスワードで,ログインする。

  17. ここでアップデートを行っておく。
    # yum update
  18. SELinuxの状態の確認。
    # getenforce
    Enforcing <<– 有効です。
    Minimalのノーカスタマイズってことは,xが入っていないので,すべてコマンドラインからなわけ。それでたったこれだけで疲れた。ひとまず,シャットダウン。shutdown -h now (爆)
カテゴリー
WordPress

WordPress3.4.1へアップデート(xrea,atpages)

 xreaのs370と@pagesのwww39で表題のアップデートをやってみた。

 プラグインについては,どちらもtmpフォルダを作ってパーミッションを707にしておくとか,wp-config.phpにそのことを書き込んでおくとかの手当てで,うまくいくことは確認済みだったので,あっさり行くだろうと思ったら,@pagesのwww39の方でずっこけた。どうしてもうまくいかない。xreaのs370と@pagesのwww39のどっちにおいても,WP Multibyte Patchをアップデートしなければいけなかったので,こっちを先にやったのだが,それについてはうまくいった。

 本体のアップデート時の@pagesのエラーメッセージでは,.tmpのupgradeフォルダへの書き込みで失敗しているようだったので,これのパーミッションを変えてみたがダメ。

 やってるうちに,@pagesの方は,FTPでのファイルのやり取りもできない状態になってきた。考えるに,FTPでのこの一時に扱えるファイルの大きさ制限が足を引っ張っているのではないかいな。でないと,プラグインのアップデートとの違いが理解できないヨ。wordpress-3.4.1-ja.zipはそれだけで5MBを超えてるから,展開されるともっと大きいんだろう。仕方ないなということで,時間をおいてから手動でアップデートした。

 xreaの方は問題なく自動更新されたが,WordPressのトップディレクトリのwp-pass.phpとwp-register.phpについては自動では削除してくれなかったので,あとでFTPから手動で削除した。

 更新後の動作については,どちらの場合も問題なく動いているようだ。

カテゴリー
everyday life

覚え書-#10。

 今朝,サーバ(LaVieC PC-LC5505D)に目をやったらWindowsXPのロゴが見えまして(汗)。で,そのまま,とんでもなく時間がかかっています。仕方がないので放っておいたら,[F1]を押せが出まして,理由はキーボードエラーになっていました。この間,メモリを1枚外しました。その後,一番疑っているのは,HDDなんですが,しかし,エラーチェックでは今のところエラーが出ないんです。

 なんか,この再起動が起こるときは,いつもHDD部分が半端ないほど熱くなっていまして,そのままの状態だとうまく起動しないんですが,しばらく冷やしてやってからだと,うまく起きてくれる気がするのです。今朝も,1回電源を落としてしばらくして再投入したら動き出して,そのまま,今も動いています。開けてやって,いろいろ調べたほうがいいのでしょうが,いまだに,xw4200を再稼働していないので,二の足を踏んでいます(爆)。

 ところで,夕べ,大飯原発が再稼働されました。UStreamなんかを見ていると,結構ゴボウ抜きなんかもあったように見受けられるのですが,あまりマスメディアには載っていないような気がするのは気のせいでしょうか。というわけで,「溺れる者は(ハハハ)をもつかむ」わけです(爆)。まぁ,ネットの情報というのは,玉石混淆ですから十分気をつけて見ないといけませんが。

 何の場合でも,賛成派と反対派の両方の意見を知りたいのは人情です。そんなわけで,近頃こんなところも読んだりしています。朝日・毎日・読売・日経というところのWeb版のヘッドラインは一応目を通すので,こんなことを載せたりするところを読んでおけば,いくらかバランスを取ることになるかと思ったりして。

 しかし,今日会った若い主婦2人に原発再稼働の話をしたら,2人とも知りませんでした。そんなものなんですかねぇ。ちょっと,ショック。2人とも子供の世話とパートでものすごく忙しいということは酌量しても……。

カテゴリー
WordPress

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

 WordPress 3.4.1の日本語版がリリースされた。メンテナンスとセキュリティの関係ということ早速アップデート。で,大きな変化はないのだが,改善の一つとして,
—————————————————————————————————————————————–
   警告を引き起こしたり、場合によってはメールの送信を妨げることのあった特定バージョンの
   PHP (5.2.4, 5.4) が動作しているサーバーや一般的ではない設定 (safe mode, open_basedir) が
   なされているサーバーでの互換性の改善
—————————————————————————————————————————————–
というのがあって,あるプラグインからの通知メールについて改善がみられるかもしれないという若干の期待がある。

カテゴリー
Linux

CentOS6の練習-#2(uhelperの話)。

 ちょっと内蔵フロッピィを使おうとしただけなのに,こーんなにハマったというお話(爆)。

 あるデータをフロッピィに移そうとして気づいたのだが,内蔵のフロッピィドライブが見えていない。どうやら,floppy moduleがロードされていないようだ。
   $ modprobe floppy
でmoduleをロードしてやろうとすると,
   FATAL: Error inserting floppy (/lib/modules/2.6.32-220.23.1.el6.i686
   /kernel/drivers/block/floppy.ko): Operation not permitted
と怒られるが,rootならロード可能。この間 sudoers file をいじって,sudoを使えるようにしたところなので,
   $ sudo modprobe floppy
で,moduleをロードする。

 デスクトップのコンピュータ内に「フロッピー・ドライブ: フロッピーディスク」というなんか鬱陶しい名前のアイコンが現れた。

 この段階では未マウントなので,mountではフロッピィに関して何も見つからないが,
   $ sudo parted -l
で,すべてのパーティションを表示させてみると,
   エラー: /dev/fd0: ディスクラベルが認識できません。
というように表示される。フロッピィディスクを挿入し,mount pointを作ろうとすると,どういうわけかファイルが存在すると蹴られる。ではというわけで,存在すると蹴られたmouny point名を使って,sudo mount /media/disk でマウントしてみたが,
   mount: /etc/fstab や /etc/mtab 内に /media/disk を見つけられません
というエラーが戻ってきた。

 しかし,/etc/fstab や /etc/mtabにはなくても,さっきのメッセージから考えて,「何かフロッピィ関係で変化があってるはずだ」と思いながらゴソゴソやっていて,「フロッピー・ドライブ: フロッピーディスク」アイコンのコンテキストメニューに「マウント」があるのに気づいた。それっと,クリックしてみたらダメだったが,「メディアを検出」というのを先にやったらマウントできた。mountで確認してみると,
   /dev/fd0 on /media/disk_ type vfat (rw,nosuid,nodev,uhelper=udisks)
となっている。アンマウントもデスクトップ上で,コンテキストメニューから出来た。

 これを参考に,下記で端末からマウントしてみたら出来た。
   sudo mount -o rw,nosuid,nodev,uhelper=udisks /dev/fd0 /media/disk

 mountで確認してみると,下のようになっていて「同じだぁ」と思ったんだが,ちょっと違った。まず,デスクトップ上でアンマウントしようと思うと,さっきと違ってrootのパスワードを要求される。
   /dev/fd0 on /media/disk type vfat (rw,nosuid,nodev,uhelper=udisks)

 よく見ると,上は disk_ になっている。もう一回これでやってみた。
   sudo mount -o defaults,nosuid,nodev,uhelper=udisks /dev/fd0 /media/disk_
 なんとというか当然というか,
   mount: マウントポイント /media/disk_ が存在しません
と蹴られた。

 端末からのマウントに成功した,さっきの
   sudo mount -o rw,nosuid,nodev,uhelper=udisks /dev/fd0 /media/disk
の方なんだが,
   sudo mount -o rw,nosuid,nodev /dev/fd0 /media/disk
というように,uhelper=udisksがない形でやっても,動きは同じ見たいなんだよな。で,ググって見ました。

 uhelper=udisksというのはなかったんだけど,uhelper=halという題名で,uhelperのことを書いているページが見つかった。uhelper は unprivileged umount request helper ということで,特権なしでアンマウントするときのヘルパーとらしい。というわけで,これがちゃんと動いているときはrootのパスワードなしでアンマウントできたわけだ。

 しかし,manに記載がないのはどうしてだろうかと,uhelperでググってみたら,UMOUNT(8)があった。man mount には書いていないが,man umount に書いてあるじゃないのと,UMOUNTを見たら記載がない。英日のLinux Programmer’s Manual の バージョンも日付(26-July-1997)も同じようなのに何でだろう。単なる訳落ちですか。

 ちなみに,CentOS6の英語manと日本語manを調べてみたが,これの場合も日本語manにおいて,下記の訳がそっくりなかった。日本語訳はすべて訳が終わっているわけでは無いので,ページごとそっくりないほうが納得いくんだが……部分だけって何でだろう。
——————————————————————————————————————
   NOTES
      The syntax of external umount helpers is:

      /sbin/umount.<suffix> [-nlfvr] dir | device

      where the <suffix> is filesystem type or a value from “uhelper=” mtab
      option.

      The uhelper (unprivileged umount request helper) is possible used when
      non-root user wants to umount a mountpoint which is not defined in the
      /etc/fstab file (e.g devices mounted by HAL).
——————————————————————————————————————

 ところで,上記の場合,どっちのマウントでもroot権限になってしまい使いにくいので,実際には,下記でマウントする形にした。メディアを検出をやっていない場合は,-t オプションも必要なようだ(多分)。
   sudo mount -t vfat -o rw,uid=xxx,gid=xxx /dev/fd0 /media/disk

カテゴリー
everyday life

沖縄慰霊の日。

 沖縄慰霊の日です。

 こんな記事を読んだ。一昨日,この記事を読んだばかりなので,いろいろと複雑な心境だ。

 一昨日の記事に対する国内メディアおよび周辺国のメディアの反応。いろいろ。擁護,攻撃,もちろん種々さまざまだが,東京新聞のように書かれると,「すわ」と思いたくなる背景があるのも,事実なのでね。東北大震災の津波以来,日本の原子力行政の言うことをまったく信じられなくなってしまった心情という,背景が……。

カテゴリー
WordPress

本家のお世話-#44。(Illegal string offset ‘total_users’)

投稿アップデート情報  追記(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。