Apache 起動直後に PHP で ORA-00911 エラーが発生

2008-8-20 20:57
このエントリーをはてなブックマークに追加

Apache 起動直後に PHP から Oracle に接続すると、ORA-00911 エラーが発生することがあります。

ORA-00911: invalid character in hogehoge.php on line X

しかし、SQL には誤りはなく sqlplus で実行できますし、しばらく時間が経過すると、Apache + PHP 上でもエラーかでなくなります。PHP のコード中では

putenv("NLS_LANG=Japanese_Japan.UTF8");

として、NLS_LANGの値を設定していますが、どうもこの設定が反映されないようです。いろいろ調べると、apache の起動スクリプト中で環境変数を設定すればよいということでした。

/etc/rc.d/init.d/httpd を直接編集しても良いのですが、Red Hat 系(Fedora や CentOS) では、それは避けた方が良さそうです。起動スクリプト中では /etc/sysconfig/httpd がユーザが編集するファイルとして読み込まれ、実行されますので、こちらに記述します。

# vi  /etc/sysconfig/httpd
export NLS_LANG=Japanese_Japan.UTF8

これで Apache を再起動後すれば、起動直後でも NLS_LANG の値が有効になっており、エラーは発生しなくなりました。

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

32 queries. HTML convert time: 0.060 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン