5丁目通信(仮称)

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

タグ: オープンソース

  • CakePHPのサイトをサーバーに配置してはまった話し

    ローカルPCで開発していたCakePHPのサイトをサーバーに配置したら動かなかった。対応していく過程のメモ。

    まずはPHPのバージョン。最新のPHP5.3にしたのは間違え。大量にエラーをはく。これは使っているCakePHPのバージョンがPHP5.3に対応していないため。以下のページに対応方法が書いてある。

    PHP 5.3だとCakePHPで大量のエラー

    あまりいじりたくないので、PHPのバージョンを下げる。前の記事のようにPHPの複数のバージョンを切り替えるようにしておく。インストールしてあったバイナリのMySQLとPostgreSQLの指定の方法がわからないので、こちらもソースからコンパイルしなおし。

    次はページが真っ白になったり、ページが見つからなっている。mod_rewriteが動いていないことが判明。httpd.confでのパスの指定が間違えていた。単純なミス。

    以上、一日テストサーバーの構築で潰れた。プログラムの修正は半日で済んだのに・・・。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • 違うPHPのバージョンを切り替えできるようにした話し

    昔CakePHPで作成したWebサイトの機能追加を行っているのですが、そのサイトはPHP4なのです。テストするため、PHP4の環境が必要です。

    PCですとXAMPPで一発インストールなのですが、みんなで参照するLinuxサーバーではそうはいきません。今まではyumで簡単にインストールしていきましたが、PHP4は古いバージョンなのでyumでのパッケージインストールもできません。

    しかたないのでソースからコンパイルです。PostgeSQLとかMySQLもソースからインストールしていきます。今回はとても時間がかかる。PHP4 だけではなく、いまはPHP5 もテストで使うであろうと考えて、切り替えるようにしておきます。参考になったのは、

    【PHP】複数バージョンのPHPを使う方法

    です。違いはApacheがパッケージでインストールしているとか、PHPのバージョンの違いです。

    以上、自分が設定したことを忘れそうなので、手順はEvernoteにメモしておきます。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • CakePHP: The requested address AjaxURL was not found on this serverが出た話し

    CakePHPではまったことの覚え書きです。CakePHPに興味なければ飛ばしてください。

    サーバーにAjax関係をCakePHPで実現して、ファイルをアップしたとき、ブラウザのデバックを見るとAjaxのURLが404でエラーが返ってきました。URLを単独で実行すると

    The requested address "AjaxのURL" was not found on this server.

    とエラーになります。いろいろと検索してみると、

    • app/tmp/cache/modelsの下のファイルを削除する。
    • app/tmpのパーミッションを777にしろ。

    など出てきますが、どうもうまくいきません。

    結局、基本に戻ってajaxで呼び出されるアクションの

    Configure::write('debug', 0);

    Configure::write('debug', 3);

    にデバッグモードにしてみると、何のことはない、このアクションのViewファイルが作成されていないだけでした。

    こんなことで、3時間も無駄にしてしまいました。基本に戻ることが大事です。

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

    オープンソースカンファレンス2010に参加しました。場所は多摩センターの明星大学です。とても広いキャンパスです。

    OSCには2回目の参加です。もう50回だそうだ。そんなに長い間やっていたんだ。

    たくさんのオープンソースのコミュニティ(ユーザー会)が出展していた。いろいろオープンソースを使っているが、どのコミュニティにも所属していない。皆さん楽しそうですね。

    やはり、最後のライトニングトークがおもしろかった。HPからじゃんけん大会の賞品として、小さなサーバーを出していました。ディスクも何台か入るがとても静かで小さなサーバーです。Linux系のOS以外でも、仮想化してOpenSolarisとかNetBSDとか、コミュニティのメンバーが無理矢理インストール大会して動かしていましたよ。

    次回も参加したいと思います。東京だったらね・・・。

  • 会社のサイトを見てのお問い合わせ

    突然、知らない会社から電話があった。何でも会社のサイトを見ての電話だった。何でも、オープンソースのPBXであるAsteriskの設定の質問であった。今はAsteriskは全く対応していないのでサポートできないと答えておいた。それだけではかわいそうなので、代わりにAsteriskのユーザーグループのサイトにサポートしてくれる会社が載っていることを教えてあげた。

    おそらく昔書いたブログを見て連絡をくれたようだが、直接電話をもらったのは初めて。サイト経由からの連絡で、セールスはたまにはありますが。

    引越が落ち着いたら、またAsteriskで電話をつなぎますか・・・。

  • 名刺サイズの用紙で横方向に印刷する方法の話し

    子どもの小学校のPTA会長をやることになりました(この件は、追々書いていきましょう)。入学式の準備で小学校に行きました。そこで首から提げるネームカードが必要になりました。小学校では身元を提示しなければいけません。そこでネームカードの作成を引き受けることになりました。

    ネームカードを簡単に作るには、A4サイズに12枚名刺が並んだ用紙に印刷して切り離すのが簡単でです。しかし、これでは

    縁のぎざぎざがいやな感じです。12枚きっちりだったらいいのですが、8枚とか半端な枚数だともったいない。そこで名刺サイズに裁断された用紙を買ってきました。

    しかし、この名刺サイズの用紙はプリンタに制限があります。まずは小さな名刺サイズに対応したプリンタではないとプリントできません。持っているエプソンのEP-301はこれはクリア。

    まずはどんなソフトで印刷するかを決めます。これから各委員会のメンバーの名札を印刷しなければいけないので差し込み印刷に対応するソフトにします。筆まめという選択もありますが、汎用的につかえるということで

    OpenOffice.orgのBaseにします。Sun Report Builderというアドインもインストールします。名簿データはOpenOffice.orgのCalcで作成しておきます。マイクロソフトオフィスのExcel、WordとかAccessなんて持っていないもので・・・。

    しかし、OpenOffice.orgのBaseは使いにくいのです。自由なレイアウトができません。例えばテキストの均等割り付けとか、テキストとテキストの間の調整とか、画面の編集と印刷プレビューとが合わないとか、突然編集できなくなるとか、いろいろ使いにくいところがあります。最悪は異常終了になること。まだまだ安定していません。

    とりあえずがんばってOpenOffice.org Baseでラベルを印刷できるようにします。Sun Report Builderのアドオンをインストールしておけば、Access並にレポート作成は簡単になります。

    横方向でレイアウトしたので、紙を横で入れると紙送りをしません。よく印刷設定を見てみると名刺サイズの用紙は縦方向しか対応していないのです。90度回転するオプションを探しましたがありません。縦で印刷しようとすると、もちろん横方向に印刷するのではみ出ます。さて、どうしたものか・・・。

    解決方法は、一度PDFファイルに出力します。JUST PDFなどのPDFファイルの編集ソフトで90度回転してから、縦方向で印刷します。多少手間がかかりますが、これで正しく横方向の名刺サイズの印刷が完了です。

    以上、長々を書きましたが、次に名札を印刷するときの覚え書きです。横方向の名刺を印刷するときも使えます。

  • Thunderbirdでメールをすべて読んだことにするショートカットがあったのね、という話し

    以前、Thunderbirdフォルダ内のメールをすべて読んだことにするCtrl+Shift+Cがなくなったと書きましたが、親切な方はコメントで教えてくれました。

    「フォルダを既読にする」は、Ctrl+Shift+CではなくShift+Cになったそうだ。試してみると、ほんとうにShift+Cだった。Ctrl+Cはコピーだものね。

    これでThunderbirdで斜め読みができる。いちいちマウスの右クリックだと面倒だったので、とても快適。

  • CakePHPでhasManyのモデルに対して条件式を書いた話し

    CakePHPロゴ

    ただ今、CakePHPでWebサイトを開発しています。今回は、検索条件を設定して抽出して結果をリストにするという、定型的な検索サイトです。

    あるモデルに対して検索条件を与えるのは普通です。CakePHPの場合、belongsToのような外部参照の関係であるモデルにも検索条件を与えても、簡単に抽出してくれます。

    しかし、hasManyの関係にあるモデルの項目に検索条件を書いてあげるとSQLを発行しているところでエラーになります。SQLのデバックログによると、hasManyのモデルに対しては、SQLでleft joinを作ってくれません。これで、未定義のテーブルということでSQLエラーになります。

    Googleで検索してみると、このように書けばOKと書いている。しかし、これではhasMany以外の関係のモデルを検索してから、hasManyのモデルにフィルターをかけているだけなので、検索結果が違ってくる。

    無理矢理SQLを生成してみることもやりましたが、ビューに渡す結果を生成するのが大変なので止めました。

    いろいろと調べてみると、ここにありました。後からhasManyのモデルに対してjoinを設定すればいいのです。モデルに対して、beforeFind()を定義してあげることが必要でした。CakePHPのソースを追ってみると、findAllのところでオプションにjoinが使えるように定義されていました。これで無事にhasManyのモデルでも条件式を書くことができました。

    すべてのサイトに感謝です。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • レンタルサーバー会社からの回答がようやくきた話し

    spamメールが頻繁に届く件。2週間かかってレンタルサーバー会社から回答がありました。遅すぎる!

    最初のメールは、

    弊社にて、スパムメールが増えるように設定等は行っておりません。恐れ入りますが、スパム対策などをお客様側で行っていただくよう 何卒よろしくお願いいたします。ご確認いただけましたら幸いです。

    とのこと。メールサーバーの機能にスパムメールの対策があると明示されているし、以前同じ障害があって連絡したら対応してくれたので、再度問い合わせしました。

    すると、

    現在も引き続きspamが多く転送されておりますでしょうか。

    調査の結果、cpanelの一部バージョンとspamassassinの設定の問題で、spamが正しく判定されていない状態があったようです。

    現在は正常にspamの遮断を行っていると思われます。

    spam検出ツールのspamsassassinはオープンソースで提供されており、特に海外のspamには強いのですが日本語のメールでは誤判定率が高く、正常なメールまで削除されることを防ぐため比較的spamが通りやすい傾向になっております。

    誠に申し訳ございませんが、可能であるならばお客様のクライアント側でのspam対策も併せて行っていただくことをお勧め致します。

    との回答がすぐにありました。つまり、やはりspamフィルターの設定の問題であったようです。今回のクレームは2点です。

    • 回答が遅すぎる。2回催促しても音沙汰無し。これはひどい。
    • サポートしているはず機能を、サポートしていないと言い切って話しを終わらせようとした。

    spamassassinのフィルターの機能が低いのは諦めて、Thunderbirdのフィルター機能と地道に手作業で振り分けますが、最初の回答はいかがなものでしょう。

  • こんな禁煙席は意味ないのに・・・。

    最初に断っておきますが、私は世の中からタバコが無くなればいいと思っている人間です。タバコが大嫌いです。出向した会社をやめたのは、タバコが原因かもしれません。

    さて、秋葉原でオープンソースのOSの名前が入ったカフェで食事を取った時の話し。食事をするのは、禁煙であるのが条件です。そのカフェの表には禁煙の看板が立っていました。安心して注文してお金を払って店内を見渡してみると、タバコを吸っているお客が数人。このカフェはタバコを吸いながら仕事をしているお客もいます。大失敗。

    店員の人に禁煙席をどこかと尋ねてみると、奥の席一列と言われる。店内の5分の1以下なのです。したがって、ほとんど喫煙席。しかも、いきなりタバコを吸ってるお客を移動させてくれて、境に禁煙の看板を立ててくました。看板より向こうは喫煙席です。ありがたいのかどうか・・・

    送信者 北青山通信

    最初に気がつけばよかったです。壁もなしに分煙ができるなんて、よほどすばらしい空調なのでしょう。タバコのにおいが気になるともうダメ。早々に食事をして店を出ます。これで食事は美味しければ文句もないのですが、ちょっとね・・・。

    安全なのは意外とマックとかのファーストフードのお店なのです。こちらは分煙は進んでいます。蕎麦屋でタバコがOKなお店は最悪です。せっかくの蕎麦の香りが台無しです。

    もう、このカフェは行かないでしょうね。