PHPでのアプリの開発って、このところずっとフレームワークを使ってたので忘れてしまってた。XOOPSも、Drupalも管理画面で変更できるし。Mojavi も cakephp も設定ファイルで変更できる。
しっかり本番環境で、Warning Illegal offset type in xxxx などとエラーメッセージが表示されてしまっていた。
関係者の皆様申し訳ございません。確認不足でした。
本番環境では PHPの設定(php.ini等)で、display_errors を Off にしたほうがよい。こうすることで、エラーメッセージを画面に表示しなくなる。画面にエラーメッセージが表示されると、エラーメッセージからセキュリティホールを見つけられる危険があるから。ついでに、画面に表示せずにログファイルに出力するには、log_errors を Onにしておく。これは、対で覚えておいた方がよい。
今回の場合は、たまたま問題の起こりそうに無いメッセージだったが、お客様からご指摘頂くような失態。
PHP
画面にエラーが表示され無いように 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 の導入もやってみた。
PHP5 への移行支援サービス
m-takagiの日記 さんに、私どものサービス(PHP5 への移行サービス)をご紹介いただきました。ありがとうございます。 :-)
# ぐぐってたらたまたま見つけました。クロールが早くてうらやましいです。
さて、m-takagi さんのエントリにもあるように、けっこう稼げそうなネタで、実際に必要とされているかたもいらっしゃるようです(だからサービスとしてはじめたんですが)。
しかし、この手のサービスをあまり見かけないのは、価格設定が難しいからだと思います。実際に私も悩みましたし。その結果、調査と修正とを別々に対応するということにしました。へたれな私には一律○○円というのは無理でした。
PHP 4.4 にバージョンアップしてみたら
PHP 4.4 にバージョンアップしてみたら、XOOPSやら Mojavi(Version 2のほう)で沢山 Notice 出てるがな。
Mojavi 2 提案したの私やし、ちゃんと考えなあかんのかも。
めんどくせー
いつも世話になっている友人の為に、2年ほど前に作った PHPを新サーバにインストール。友達なので、当然無償である。
元々は、Apache モジュール版 PHP用に書いていたものだが、今回のサーバはレンタルサーバで CGI版 PHPしか使えない。
もうちょっときちんとプログラム作ればよかった。パスの変更も面倒だ。
PHPも10年か。。
10 years since PHP 1.0 was released! てなことが http://www.php.net/ に書かれてあった。(6月8日だから結構前だな。)
PHP 1.0 がリリースされたころは、全然興味持っていなかった(というより存在すら知らなかった)。多分 Perl を覚えたての頃だろうと思う。オライリーかなんかの 「sed & awk」という本をよく読んでいて、Perl なんか要らないと言っていたのに、いつの間にか Perl 使いになっていた。きっかけは 全然覚えていない。
PHP が 3になったぐらいで使い始めた。いくつかの業務をこなしたけど、なんかしっくり来なくて(統一感が無いのよね)結局 Perl に戻ったりしていた。
もう2度と仕事でPHPなんかやらんとこうとか思っていたのに、いつの間にか就職して PHPを使う部署に居てる。
phpも5とか 5.1 が出て来ているし、多分しばらくはPHP続けるんだろう。
Apache1.3 と php4.3.11 環境を構築
いつも土日は時間が足りない。本当はこの土日にやるべき事が山積みだったのだが。時間の使い方が悪くなって来ているように思う。サスペンスドラマなんか見るんじゃなかった。。。
先日 PHP5 環境を構築した関係で、PHP4 用に書かれたいくつかのプロダクトが試せない状態である。 XOOPS(あえてリンク先は日本版サイト)も PHP5に対応したと聞いているが、ほとんどのモジュールが PHP4 用に書かれているし、 oSCommerce や Zen Cart なんかも PHP 4 用のプロダクトである。PHP 5で本当に動かないのかどうか試した事は無いが、多分動かないだろう。
ということで、PHP4 環境も作る事にした。但し、Apache と PHP は ports で既に別のバージョン(Apache 2.0.54, PHP 5.0.4)をインストールしている為、ports は使えない(はずである)。なので、ports を使わずにインストールした。
また、インストール済みの Apache がポート番号 80 を使用しているので、別のポート番号(11080)を指定する必要がある。
まあ、そんなこんなでこの土日に出来た事は、Apache1.3, PHP4 のインストールと XOOPS日本版のインストールだけであった。
(注意: 以下、普通にインストール手順しか書いていない。面白い話を期待している人は読まないように)
