PHPでのアプリの開発って、このところずっとフレームワークを使ってたので忘れてしまってた。XOOPSも、Drupalも管理画面で変更できるし。Mojavi も cakephp も設定ファイルで変更できる。
しっかり本番環境で、Warning Illegal offset type in xxxx などとエラーメッセージが表示されてしまっていた。
関係者の皆様申し訳ございません。確認不足でした。
本番環境では PHPの設定(php.ini等)で、display_errors を Off にしたほうがよい。こうすることで、エラーメッセージを画面に表示しなくなる。画面にエラーメッセージが表示されると、エラーメッセージからセキュリティホールを見つけられる危険があるから。ついでに、画面に表示せずにログファイルに出力するには、log_errors を Onにしておく。これは、対で覚えておいた方がよい。
今回の場合は、たまたま問題の起こりそうに無いメッセージだったが、お客様からご指摘頂くような失態。
プログラミング言語
画面にエラーが表示され無いように display_errors を設定する
suPHPの罠(php.ini が反映されない場合の対処方法)
某 EC-CUBEのサイトを新しいサーバにお引越し。そのサーバは suExec の PHP版みたいなモジュール suPHP を使っている。
suPHPといえば、例えば、スクリプトファイルの所有者、所有グループが実行ユーザと異なっていたらエラーになるとか、まあとにかく安全に動作するようにちゃんと動いてくれる。別に初めて使うわけじゃないんで、その事はわかっていたつもりだったんだけど……。
EC-CUBEは、日本の企業が作ったソフトウェアなので、モバイル版だとちゃんと日本の携帯電話にあった HTMLを出力してくれる。古い機種のことも考えていて、Shift_JISでの出力に対応している。
ログイン画面で「システムエラー」になったとき、エラーログを見ればすぐにわかった。データベースのエンコードがおかしいってメッセージが出ているが、データベースはちゃんと utf8で作られている。
そうなると、mb_string 関連の設定がおかしいのだろう。たしかに .htaccess ファイルが存在し、mbstring 関連の設定もされている。しかし、このファイルを色々といじってみても、phpinfo()で調べると、値がやっぱりおかしい。
EC-CUBEコミュニティのフォーラムにも似たようなことが書いてあったし、suPHPのFAQにもちゃんと書いてある(Can I use the php_value directives in .htaccess files with suPHP? のところ)。どうやら、suPHPだと .htaccess ファイルの php_value を読み込まない様子。
Solaris 10 x86 で PHPを使う
懐かしい人と電話。弟がお世話になっているそうで、よろしくお願いいたします。
さて、今週は久しぶりに Solaris で色々やってる。
Apache を使えるようにしたり、近くのパソコン工房で、グラフィックボードを買ったり。
で、PHP5.2 の導入もやってみた。
関西オープンソース2007
PHP5 への移行支援サービス
m-takagiの日記 さんに、私どものサービス(PHP5 への移行サービス)をご紹介いただきました。ありがとうございます。 :-)
# ぐぐってたらたまたま見つけました。クロールが早くてうらやましいです。
さて、m-takagi さんのエントリにもあるように、けっこう稼げそうなネタで、実際に必要とされているかたもいらっしゃるようです(だからサービスとしてはじめたんですが)。
しかし、この手のサービスをあまり見かけないのは、価格設定が難しいからだと思います。実際に私も悩みましたし。その結果、調査と修正とを別々に対応するということにしました。へたれな私には一律○○円というのは無理でした。
関西.pm 新年会
Scrapcode@はてなダイアリーでも紹介されているように、13日の土曜日は、関西.pm の新年会だった。2次会からの参加だったが、鍋(ピントがぼけてしまったが写真は材料)をつつきながら Perl について語り合ったり、おしゃれなカフェで 関西.pm の今後について語り合ったりした。
PDFJ などで有名な中島さんも来られていたので、某業務で保留になっている PDFJ の unicode 対応について確認する。きちんと対応しているらしい。やはり僕の作ったアプリの作りかたが悪かったのだろうか。見えないのはクライアントアプリが原因では無いだろうかとの事であった。明日あたりちょっと調べてみようと思う。
Class::Accessor で setter, getter を自動生成
しばらく Perl を使っていなかった(ちょこっとしたツールを作るぐらい)のだが、ある目的のために Perl を勉強し直す事にした。これから数日は Perl ネタが続くおそれがある ;-)
で、昨晩に色々と見ていてたどり着いたのが、Perl の Class::Accessor モジュールである。これは、オブジェクトの属性を設定したり(setter) 取り出したり(getter)する Accessor をいちいち作らなくても済むようにできる。
C MAGAZINEが休刊になるらしい
健康なエンジニアのブログ: さらば「C MAGAZINE」!?によると、
「C MAGAZINE」が '06/3月発売号で休刊になるようです。
とのこと。
私もしばらくは読んでいなかったのですが、ここ3年ぐらいは毎月買っていました。Webも良いけど、電車の中とかで読めるこういう雑誌は無くならないで欲しかったんですが。これ以外に毎月買おうかと思うような雑誌は無いし、非常に残念です。
確かに、CやC++の仕事は減っていますし、この雑誌も C#やJavaの事を書くようになっていることから、C言語の雑誌というのはもう売れなくなっているんでしょうね。
Solaris 10 に Python をインストールしてみる
Zope 2.8.4 をインストールするまえに、Python 2.3.5 をインストール。
GNU tar (/usr/sfw/bin/gtar) を使ってアーカイブを展開し、./configure && gmake 。。。。。。だとうまくいかない。
