5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

カテゴリー: オープンソース

  • WordPress2.7にアップデート

    WordPressが2.7をリリースされましたので、アップデートしました。今回もWordPress Automatic Upgradeを使って簡単にアップデートです。3分の作業で完了です。

    ユーザー側の見た目は全く変わりません。当たり前?

    管理者側は相当変わっています。ダッシュボードは全然違っている。これはインパクトが大きい。ほとんど日本語化されているので(これは、前のバージョンから引き継がれたものか?)、英語がダメというWordPress管理者でも心配ない。これから、いろいろ触ってみます。

    そういえば、WordPressネタとして、携帯電話のプラグインをインストールしようとしたら、PHP5専用で動きませんでした。使っているレンタルサーバーは、まだPHP4なのです。9月位にPHP5にサーバーバージョンアップするという案内が来ましたが、いまだにバージョンアップしていないようです。予定は10月にバージョンアップする予定でしたが、案内ページも止まっています。現在、サーバー会社に問い合わせ中。

    この会社は、相変わらずの仕事をしています。なぜサーバー会社を換えないかというと、移行が面倒だから。それだけ。しかし、これからは考えなければいけないかも。

  • WordPress 2.6.5がリリースされていたのでアップデート

    WordPressの管理画面に入ると、WordPress本体がアップデートされているとか、インストールされているプラグインがアップデートされているとか言ってくれます。

    今回はWordPress本体が2.6.5にアップデートされていました。XSS の脆弱性が発見されたようです。

    そこで、WordPress Automatic Upgradeで簡単にアップデートしてしまいます。

    リンクをたどるだけで、アップデート。5分の作業でした。

  • PostgreSQL カラムサイズが増やせないので、いろいろ調べたら何とかなった話し

    ずっと昔に開発したコンテンツ配信のシステム。お客様から、大きなテキストが入力できないと連絡があった。

    調べてみると、DB上のテーブル項目の文字サイズが小さい。そこでカラムサイズを増やすことに。

    alter table ir_calendar alter text_col type character(256);

    としたところ、エラーになる。

    なんと、動いているPostgreSQLのバージョンが、7.4であった。このSQLは8.0でないと動かない。

    そこで、次のように新しいカラムを追加して、そのカラムをアップデートしてから、今までのカラムを削除して、元に戻すといった面倒なことを行いました。(こちらを参考にしたサイトがわからなくなった)

    ALTER TABLE ir_calendar ADD COLUMN new_text_col  character(256);
    UPDATE ir_calendar SET new_text_col  = CAST(text_col AS character(256));
    ALTER TABLE ir_calendar DROP COLUMN text_col ;
    ALTER TABLE ir_calendar RENAME COLUMN new_text_col  TO text_col ;

    以上で無事に大きなテキストが入力できるようになりした。

    結局の所、最初の仕様の見積りミスですね。反省。

    著:大竹 龍史, 著:山本 道子
    ¥2,950 (2025/04/01 13:05時点 | Amazon調べ)
    著:Piro, 編集:日経Linux
    ¥2,178 (2025/03/28 21:08時点 | Amazon調べ)
    著:三宅 英明, 著:大角 祐介
    ¥2,970 (2025/04/01 13:05時点 | Amazon調べ)
  • ブログをaccata.comのサーバーに移動しました – WordPressブログを移行した話し

    そろそろ借りているメインのドメインのサーバーの残りサイズが少なくなってきましたので、別に借りているaccata.comのサーバーに移動しました。

    accata.comは、アンドワークスの名前を使えない何でもありのサービスで使っています。例えば、お客さんが利用するメーリングリストのサービスとか、SSLでフォーム入力したいとか。

    今回の作業のメモです。WordpressからWordpressへのブログの移行ですので簡単かと思っていましたが、そうではなかったです。

    著:久保田涼子, 著:西原礼奈, 著:阿諏訪聡美
    ¥2,399 (2025/03/28 17:08時点 | Amazon調べ)

    なんやかんやでWordPressのサイト構築で躓くのは、PHPのプログラミングなのでした。

    まず、accata.comにWordpressをインストールします。これは5分程度の簡単な作業です。ここまで問題なし。あとはブログデータの移行です。

    WordPressのエクスポート/インポート機能でブログデータを移行してみました。無事に移行できました。しかし、大きな問題が。記事番号が改めて採番されてしまうようです。これではドメインとパスと変えただけでは、正しいaccata.comのページにアクセスできません。サーバーのリダイレクションの設定で、昔のドメインでアクセスしたときに、accata.comにある記事に自動的に移動してくれません。

    次にWordpressのMySQLテーブルを移行してみます。サーバーにインストールしているphpMyAdminを使えば簡単。しかし、accata.comにアクセスしてみると、404のページが見つからないエラーになります。

    悩むこと1時間、Wordpressの設定にある「ブログのアドレス (URL)」の設定が原因でした。Wordpressのサイト管理にはアクセスできませんので、直接MySQLのテーブルのデータをいじることで対応。wp_optionsテーブルのoprion_name項目がhomeのレコードをaccata.comに設定。これでアクセスできるようになりました。

    しかし、トップページから各ページにアクセスと、違うページが表示されてしまいます。これは、パーマリンク構造を数字ベースにしているため、.htaccessのRewriteで設定されているパスが違っているのが原因でした。

    一度、パーマリンク構造をデフォルトに戻して、各ページにアクセスできることを確認。その後、数字ページに設定して、.htaccessを書き換えることで無事に元に戻りました。

    最後に、古いドメインのWebサーバーに、ブログのディレクトリにアクセスされたら、accata.comのサーバーにリダイレクトするように設定しました。これは、リンク切れ対策です。

    以上で設定完了。これでaccata.comのサーバーにブログが構築できました。おそらく、この記事もaccata.comから配信されていることでしょう。

  • サーバー仮想化。ひとまず中断。

    DELLのサーバーとiSCSIのTeraStation ISが来て、サーバーのインストールをしています。

    しかし、ひとまず考え直しで中断することにしました。 当初の目論見としては、サーバーに仮想化技術を導入して、いくつかのサーバーを立ち上げることを考えていました。TeraStationISは外部のハードディスクとして、仮想化したサーバーを入れることにします。 最初にCentOS5.2の64bit版をインストールします。

    仮想化する製品として今まで使っていたVMware Serverをインストールします。今回は、64bit版をインストール。VMware ServerはRPMをインストールするだけで簡単。 新しいバージョンではVMware Management InterfaceというWebブラウザからアクセスできる管理ツールが使えます。こちらからゲストOSをインストールできます。ウィザードで質問を答えるだけで設定でき、仮想化されたCD-ROMドライブにゲストOSのイメージを割り当てておけば、普段のOSインストールと同じ手順でインストール開始です。

    ゲストOSとして、ホストOSと同じCentOS5.2の64bit版をインストールします。 ディスク領域もデータストア領域として、TeraStation ISのディスク領域をしてしておけばOKです。すべてのゲストOSの領域をTeraStation ISに置くことができます。

    今回は、ファイルサーバー、IMAPサーバーとして内部向けのサーバー、外部へWebサーバーの2つのサーバーをインストールします。 今回は、アカウントを一括してLDAPで管理するため、内部向けにOpenLDAPをインストールします。

    以上、ホストOSのサーバーを再起動すると、TeraStation上のLVMで構築したディスク領域が自動認識しないなどのトラブルがありましたが、とりあえずは動き出しました。 しかし、TeraStationのディスク領域にホストOSのファイルシステムを作成して、この上でゲストOSを動かしているので効率悪そうです。

    VMware Serverでは、ディスクブロックではなくてファイルシステム上にゲストOSを配置するので、仕方ないかもしれません。Xenのような仮想化を考えなければいけません。 あとは、ゲストOSのバックアップをどうするかとか、ディスクが足りなくなった場合、簡単に増やせるかとかを考えておかなければいけません。なるべく障害で中断される時間を短くするにはどうするかを考えなければいけません。 これからXenのほうを調べてみます。

  • WordPressのRSSフィードの時間がずれるのは、xfy Blog Editorが怪しい?

    以前からこのブログで言っているWordPressのRSSフィードの時間がずれる件ですが、どうもxfy Blog Editorが怪しそうです、xfy Blog Editorから記事を投稿したときに時間がずれます。WordPressのサイト管理の画面から投稿すれば、正常に時間が設定されます。

    xfy Blog Editorコミュニティでも同じ障害に遭われている方が何人かいらっしゃいました。しかし、xfy Blog Editorの開発元のジャストシステムからの回答は、再現無しということでした。

    xfy Blog Editorからのブログ投稿は便利なだけに、時間がずれる障害は小さい障害ですが残念なことです。

    現在使っているxfy Blog Editorは個人非商用限定版で無償提供ですので、強くサポートを望めないところですので仕方ないかもしれません。

  • 最近とほほの話しのその2、サーバーにキーボードがつながらない話し

    デルからサーバーが到着。最近の梱包は簡易梱包で取り出しやすい。

    早速、起動といきたいところだが、またまたやってしまった。

    キーボードがPS2でなくなっている。

    今あるサーバーでモニタ、キーボード、マウス(使わないが)を切換機で使おうと目論んでいたが、なんと今度のサーバーはPS2のコネクタがない。すべてUSBなのでした。

    モニタ(まだCRT)はコネクタを切り替えればいいのですが、手持ちにUSBキーボードがない。どうせネットワーク経由でログインしてしまうので、動いてしまえば、LANケーブルと電源がつながっていればいいのですが。キーボードがなければOSのインストールができない。

    仕方ないので、今使っているPCのキーボードを使いますか・・・・。

    あーあ、何だか最近抜けている。

    手持ちの外部DVDドライブをUSBで使えばいいと、わざと注文しませんでしたが、これでUSBのDVDドライブから起動できなければ最悪。

  • ブログ村から応答あり、という話し

    前述の件、早速プログ村の村長さんから回答がありました。見逃していたそうです(本当??)。

    回答とWordPressのDBの内容から察するに、WordPressのRSSの出力と記事テーブルの時間の格納に問題がありそうです。

    例えば22:52に記事を登録すると、ローカルでの作成時間は正しく22:52で格納されますが、GMT(UTC)の時間は4:52で格納されます。時差+9の倍です。この時間をRSSは4:52のUTCで出力するので、ブログ村では13:52で表示されます。つまり、ブログ村ではFAQの記述とは違って、時差の計算はやっているようです。記事を追加していくと、履歴を取ってくれますが、この辺りが怪しいそう。

    ということは、WordPressのほうにバグ報告を出さなければいけませんね。どこから出せばいいのでしょう?

    やはり、WordPressをアップデートするごとにソースを修正しないといけないみたいです。

    追記:

    今、WordPressのサイト管理で、投稿管理の記事の時間が-9時間になっていました。原因は別にありそうです。WordPressは世界中で使われているので、もちろん時差の計算にバグを残したままにしているわけないし。まずは、自分のサーバー周りをもう一度疑ってみなくては・・・。

  • せっかく便利な道具を持っているなら使ったら

    稼働しているシステムでメール送信でトラブル。メールを送ったのに届いていないらしい。

    本当にメールサーバーからメールを配信したかをログを調べる。しかし、こちらはログへのアクセス権限がない。

    仕方がないので、管理者(2つ上の発注元)にメールアドレスを伝えて調べてもらう。

    結果は正常に配信されているそうだ。しかし、コメントも一言書いてあった。

    膨大なログから調べなければいけないので、次回から送信日時も教えてくれなければ困る。

    それはそうですね。と理解したが・・・。

    しかし。何でログファイルを目視しなければいけないの? これって本当? サーバー管理者がやること?

    grepかければ簡単ではないの? ただ、やりたくない面倒なだけ?

    いいえ、発注元の方ですので、喧嘩は売りたくありません・・・。

  • QdmailでCakePHPのViewで送ると文字化けする話し

    現在、CakePHPのサイトを作成していますが、メールを送信する処理があります。今まですとmb_send_mail()を使ったクラスを用意していましたが、せっかくCakePHPを使っているということで、Qdmailというコンポーネントを使ってみました。

    PCに送るには問題なし。しかし、携帯電話宛のメールは文字化けします。

    調べてみると、cakeText()メソッドでViewを使うとUTF8で送信しているようです。Viewを使わず直接text()メソッドを使ってテキストで送ると、正常にiso-2022-jpで送ってくれます。

    Qdmailのサイトで調べて、charsetBody()メソッドでiso-2022-jpを指定してもだめ。テンプレートファイルをJISにしたら携帯電話で読めるようになるが、パラメータをアサインすると文字化け。1時間ほど悩む。

    Googleで「Qdmail cakephp 文字化け」で検索してみるとありました。ここのサイトでヒントが見つかりました。

    cakeText()メソッドの第5パラメータで iso-2022-jp を指定すればOK。Qdmailのマニュアルには見つかりませんでした。

    Qdmailのサイトには、非常に詳しくマニュアルが載っています。今回はこれを信じたのがいけなかった。ソースコードが読めるのなら、ソースコードを読まなければいけません。しかしQdmailのソースコードは、コメントが少ないので読みづらい。コメントの中にコードが埋まっている私とは大違い。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)