[PHP-users 35452] Re: 再投稿 WEBからMDB2のexecute文が実行できない

Shindo shindo @ atsystem.jp
2010年 12月 20日 (月) 14:56:55 JST


こんにちは。進藤と申します。

プログラムの内容は一切見ていません。

通常、コマンドラインで実行できてWEBで実行できない場合は、
環境の違いが原因であることがほとんどの原因です。

具体的には、WEBから実行した場合は、ディフォルト状態のCentOSの場合ですと
Apache ユーザーが実行することになります。
ですから、コマンドラインで実行する場合も Apache ユーザーとして実行する必
要があります。
ただし、Apache アカウントは、通常コマンドシェルが指定されていませんので

# su -s /bin/bash apache

とかで、コマンドシェルを指定して実行します。


>--- sakon 様からのメール ---
>Date:     Sun, 19 Dec 2010 21:20:00 -0800 (PST)
>From:     sakon <konno @ me-h.ne.jp>
>Reply-To: PHP-users ML <php-users @ php.gr.jp>
>To:       php-users @ php.gr.jp
>Subject:  [PHP-users 35449] 再投稿 WEBからMDB2のexecute文が実行できない
>
>---- ---- ----
>
>今回はautoExecute文を使用して切り分けをしてみた。
>現象は、OSコマンドでプログラムを実行する。問題はないのだが、
>WEBから実行すると「MDB2 Error: unknown error」のエラー
>が返り実行できない。
>OSとWEB上の違いはheader("content-type","html/text");
>だけです。
>切り分けた結果は、common.phpのquit関数
>if(PEAR::isError($db)) {return $db;}と同じく_quoteText関数の
>if(PEAR::isError($db)) {return $db;}でエラーが発生してreturn文
>でエラーになっています。コメントアウトをすると正常に動作します。
>仕事が忙しくisErrorの中身まで調べてきれていませんアドバスを
>お願いします。
>(1)環境 
>CentOS release 5.3 (Final) 
>PHP 5.1.6 
>MDB2 2.5.0b2-beta 
>MDB2_Driver_pgsql 1.5.0b2-beta 
>(2)試験DB環境  

〜〜以下省略〜〜


PHP-users メーリングリストの案内