5丁目通信(仮称)

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

タグ: PHP

  • XAMPPでのPHPのpearでエラーを回避する話し

    XAMPPのPHPのpearライブラリをインストールしようとしたところ、以下のようなエラーが出てきます。

    Notice: unserialize(): Error at offset 112 of 354 bytes in Config.php on line 1003
    ERROR: The default config file is not a valid config file or is corrupted.

    こちらは、c:\xampp\php\pear.iniを削除して、go-pearを実行すれば直ります。

    以上、覚え書きでした。

    このページは xfy Blog Editor?を利用して作成されました。

  • Asteriskを使って海外から電話をした話し

    年末にカナダに行ってきましたが、そのときの日本への電話のかけ方です。

    横浜の事務所にAsteriskで構築したSIPサーバー(電話のサーバー)を用意。ソフトフォン(電話のアプリケーション:今回はX-Liteを使用)で発信を確認しておきます。今回は、持っているノートPC(前述のLet’sNoteR6)からX-Liteで外線に接続できるようにします。外線はNTTのひかり電話を利用。設定は

    を読めば簡単です。

    カナダからはインターネットに接続できたら、VPNで横浜の事務所に接続します。後はX-Liteで電話をするだけ。国内の電話料金で済みます。意外と明瞭に電話ができます。

    このページは xfy Blog Editor を利用して作成されました。

    パナソニック(Panasonic)
    ¥10,270 (2025/04/23 11:38時点 | Amazon調べ)

    私の電話機を選ぶ基準は、まずはカールコードがないこと。受話器がワイアレスだとコードのねじれを気にせずに楽です。後は、着信拒否の登録件数の多さでしょうか。50件程度でしたら、すぐに登録が一杯になります。100件以上着信拒否ができる電話機を選びます。

  • 新しくPCを入れ替えた話し

    仕事が一段落している間にということで、青山事務所で使っているPCの中身を入れ替えることに。PHPの開発で、Eclipse-PDTを使っていると、ディスクにアクセスしっぱなしになって、遅くて使い物にならない。おそらくメモリが少ないのが原因だと思いますが、今年2台PCを組んだり入れ替えたりの勢いで(?)、中身を入れ替えることにしました。メモリを増やせばいいかもしれませんが、それは気にしない。

    ターゲットのPCはソルダムWinDyブランドのphoenixというベアボーンのPC。そもそもこれが今回の落とし穴。見事にはまる。

    マザーボードとCPU、メモリと入れ替えればいいかと思って秋葉原で購入。たぶん、マザーボードは小さいので入ると思い、マイクロATXのサイズのボードを購入。実際にケースに入れようとすると、入らない・・・。

    マイクロATXより小さいサイズのボードなのでした。ベアボーンのPCはとても特殊なサイズのボードが必要なことがあります。今回は、大きさも測らず、なんとなくこれでOKという乗りが、そもそもの間違い。

    どうしようもないので、横浜事務所用に注文しておいた、これまたWinDyのフルタワーのケースを青山事務所に送る。ソルダムに青山事務所に送付先を変更の連絡を入れておいたが、間に合わず。

    そのまま大きなPCケースに購入した部品を入れて使っています。電源とシリアルATAのハードディスクも追加しましたので、結局まるまる一台作ってしまったことになります。phoenixのPCは、そのままの構成で残ってしまっていますので、違うOSを入れましょうか・・・。

    WindowsXPとアプリケーションは、Acronis True Image で新しいハードディスクに転送。これはとても簡単。

    WindowsXPはライセンス認証のし直し。しかも、WindowsXPは再インストールになりますので、サービスパックとかセキュリティパッチもやり直し。これが一番時間がかかる。

  • CakePHPでPEARを使う話し

    CakePHPでよく言われることは「PEARを使わなくてもいい。」ということ。しかし、PEARには便利なライブラリがあります。これを使わない手はありません。おそらく使わなくてもいいというのは、PEAR::DBのことをいっているのか? PEARはPEAR::DBだけではないのです。

    今回参考にしたのは、「CakePHPでZendFrameworkを使う」(このページへのトラックバックの付け方がわからないのでリンクでごめんなさい)というサイト。つまり、ZendFrameworkもPEARもライブラリだからいいのだという単純な考え。

    まあ、普通にPEARをインストールしてしまえば、今まで通り使えるのですが、CakePHPの作法にしたがってということで。

    詳しいことはこのページをみていただければいいのですが、app/vendorsの下に、PEARのライブラリファイルをコピーしてしまう。今回は携帯電話の振り分けがしたいので、PEAR::Net_UserAgent_Mobileを使えるようにします。つまり、app/vendors/Net/UserAgentというディレクトリを作って、PEAR::Net_UserAgent_MobileのMobileのディレクトリをコピーしてしまいます。そのとき、app/vendorsにPEARのpear.phpも忘れずにコピーします。

    上記のページのように、zend_init.phpを作るのがミソなのですが、名前がそのままだと何ですので、pear_init.phpにしてしまいました。

    後は、コントローラの上のほうに

    vendor('pear_init');
    vendor('Net/UserAgent/Mobile');

    としておけば、コントローラの中でPEAR::Net_UserAgent_Mobileが使えます。

    このページの作者に感謝!

    このページは xfy Blog Editor を利用して作成されました。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • xfy Blog Editorでエントリをアップすると不正なデータが出た話し

    前のブログで書いたとおり、xfy Blog Editorでブログを書き出しました。xfy Blog Editorは非常に便利です。今までブログエディタというものは知っていましたが、設定が面倒であったり、うまく設定できないなどで、全くインストールできていませんでした。

    このブログで使っているWordPressだと、サーバーの設定かもしれませんが、長い間編集のままですと、編集した内容が消えてしまうという事故があります。そこで、一度テキストエディタで編集しておいて、コピー&ペーストするとか、公開ボタンを押す前に内容をクリップボードにコピーしておくなどで事故を防いでいました。

    xfy Blog Editorなどのブログエディタですと、編集している内容が消えてしまうということを防いでくれますし、編集も簡単、しかも過去のエントリもダウンロードしておけば、ブログのバックアップにもなります。

    ただし、xfy Blog Editorでも問題が。ちょっと長いエントリや、リンクが多いエントリをサーバーをアップすると、「サーバーから不正なデータが返されたため処理を実行できません。」というエラーが出ます。

    しかし、サーバーにはアップできていますので実害はないですが、エントリの一覧の状態が、「変更」の状態のままです。これも、「再取得」で同期を取ってしまえばなおりますが、ちょっと気持ちが悪い。

    追記

    xfy Blog Editorで「再取得」をすると、なぜかダブルクォーテーション(”)の前にバックスラッシュ(\)が自動挿入されてしまいます。これは、xfy Blog Editorのバグかどうかわかりません。上記のエラーが発生すると、必ず自動挿入されていまいますが、エラーがなければ大丈夫です。

    とりあえず、xfy Blog Editorのコミュニティに報告しておきました。

  • xfy Blog Editor がWordPressに対応。XOOPSモジュールの設定は? という話し

    xfy Blog Editor?の新しいバージョンがWordPressに対応しましたので、早速インストールしてみました。

    しかし、このブログXOOPSモジュールのWordPressですので、WordPressを選択してもエンドポイントが自動的に設定できないらしいです。そもそもエンドポイントって何? という状態なので、XOOPSではないWordPressに試しにエンドポイントを取得してみました。

    xmlrpc.phpというインターフェースがエンドポイントらしいので、WordPressモジュールがこのファイルがあるか確認。ありました。

    そこで、エンドポイントをhttp://——–/modules/wordpress/xmlrpc.php を手で設定して、無事にエントリ一覧を取得。

    試しに、エントリを編集してサーバーへ反映すると、そのエントリが消えていました。xfy Blog Editorの詳細設定の公開設定がデフォルトが「未公開」になっていましたので、これを「公開」すると、無事にサーバーが更新されていました。

    このエントリもxfy Blog Editorで作成しています。WordPressモジュールですとセッションの関係で書いたエントリが消えることがありますので、xfy Blog Editorですと安心して書くことができますね。

  • CakePHPの参考書の話し

    CakePHPを習得するには、習うより慣れろでCakePHPチュートリアルを試してみるのが一番かもしれません。しかし、何でこうなるの?とかあいまいのところがあるので、PHPのデバッガを動かしたり、ソースファイルのポイントにdebug()を置いて、コードを追いかけてみるのも必要かもしれません。

    やはり、本になった参考書も必要ですが、ずばり「CakePHP入門」なんて本はありません。そこで、「PHPによるJavaScriptを書かないAjax」という本を見つけました。一章がCakePHPについて書かれています。もし、どうしてもPCの画面を読んで頭に入らない方は、一度読んでみたらいかがでしょうか。私は、CakePHPでもやもやしたところ(MVCの関係辺り)が氷解しました。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • CakePHPでつまずいたこと2点の話し

    CakePHPで作っていくと、思い通りに動いてくれないことがあります。わかると何てことはないかと思いますが、私が2つほど悩んだとこと。

    モデル、コントローラ、ビューを作成して、いろいろ変更をかけていくと突然動かなくなりました。CakePHPはエラーメッセージが細かく表示してくれますのでありがたいのですが、「テーブルが見つからないよ。テーブル名はたぶんモデルの複数形だよ。」(非常な意訳)とかでます。テーブルの名前を見たり、ソースを追ったりしてもわからない。しかし、試しにコマンドプロントでDBに接続してみると、接続できない。何てことはない、DBのへのアクセス権限がないのが原因でした。テーブル構造を変更したので、createt tableでSQLを発行したときに、オーナーがDB管理者権限になっていました。

    bake.phpでモデル、コントローラ、ビューを作成して、一覧ページ(indexアクション)から追加ページ(addアクション)でレコードを追加しました。そのレコードを編集しようとしても編集できません(editアクション)。編集ページに行こうとしようとすると、一覧ページ戻ってしまいます。これも簡単な原因でした。対象となるテーブルのIDがオートインクリメントに設定されてませんでした。追加したときにIDは0になっていました。これで、editアクションのIDチェックでエラーになっていました。

    以上、私がやってしまったCakePHPでのとても単純なミス(後者は、テーブル設定のミス)でした。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • ソルダムのケースを買って応援しようとしたが・・・、という話し

    ソルダムのケースを買って応援しようとこの前のブログで書きましたが、本日、注文が多すぎて出荷できないので、半月延びるというメールが入りました。しかも、出荷時期は未定とのこと。お金を振り込んで、1が月も待たせては。

    大量に注文を取っても、キチンと製造できるか考えなければ。すばらしい製品を作っても、これじゃあ、ソルダムだめですわ。本当にケースを手に入れることができるか、ちょっと心配。

    でも、ケースの中身を買っておかなくてよかった。

  • Asteriskで電話の交換機にしてみた話し

    以前から注目していたオープンソースのPBXソフトであるAsteriskをサーバーにインストールしてみました。きっかけは、Linux Expoでお会いしたAsteriskユーザー会の高橋さんの「とりあえずやってみましょう。」の一言。

    とりあえずインストールしてましたが、思ったよりインストールのハードルは低いです。インストール方法は、VoIP-Info.jp Wikiや、高橋さんの著書(Asterisk徹底活用ガイド)です。たくさん必要な設定ファイルは、VoIP-Info.jp Wikiにあるサンプル設定ファイルを使ったので、簡単でした。

    ソフトフォン(CounterPathX-Lite)を2台つないで、内線で通話を確認しました。つぎにひかり電話につないで、外線からの発着信も確認。こちらも何もトラブルなしに使えます。

    最後に青山オフィスにもX-Liteをインストールして、VPN経由で横浜から外線に発着信することも確認しました。こちらは、ルーターのファイヤーウォールにSIPのポートを開ければOK。Asteriskの設定より、ファイヤーウォールの設定のほうが面倒です。

    以上で、青山からX-Liteで外線をかけると、VPN経由で横浜本社のAsteriskサーバーに接続して、ひかり電話に抜けます。したがって、青山から電話すると着信通知が045になります。

    音声の品質も、ちょっと遅れますが、そんなに悪くありません。横浜と青山の間のネットワークの帯域に影響されるのでしょうが。

    いまのところ電話をかけてAsteriskをおもちゃにして遊んでいるというレベルなので、本格的に使うためには、通話の転送など普段電話機で利用している機能が実現できるかの確認が必要です。まさかPBXで遊べるなんて思ってもいなかったというのは正直なところ。システム屋としては、Asteriskとアプリケーションの連携なんて興味がありますが、電話の使用で当たり前のことができるかどうか順次見ていきます。

    最終的には、青山オフィスのNTT電話(今はISDN)の契約が解約するくらいになれば、会社としては経費削減でいいかもしれません。でも、今までの03の番号が使えなくなるのは問題かも。

    パナソニック(Panasonic)
    ¥10,270 (2025/04/23 11:38時点 | Amazon調べ)

    私の電話機を選ぶ基準は、まずはカールコードがないこと。受話器がワイアレスだとコードのねじれを気にせずに楽です。後は、着信拒否の登録件数の多さでしょうか。50件程度でしたら、すぐに登録が一杯になります。100件以上着信拒否ができる電話機を選びます。