[PHP-users 6632] Re: cannot execute binary file とエラーが出て原因がわかりません。

makino php-users@php.gr.jp
Wed, 3 Apr 2002 12:16:10 +0900


> 加藤です。
>
> On Wed, 3 Apr 2002 11:25:09 +0900
> "makino" <makino@keysfactory.co.jp> wrote:
>
> > 牧野です。
> >
> > ----- Original Message -----
> > From: "Masaya Kato" <kato@nil.co.jp>
> > To: <php-users@php.gr.jp>
> > Cc: <kato@nil.co.jp>
> > Sent: Wednesday, April 03, 2002 11:01 AM
> > Subject: [PHP-users 6624] Re: cannot execute binary file とエラーが出て原因がわかりません。
> >
> >
> > > 加藤です。
> > >
> > > On Tue, 2 Apr 2002 22:11:34 +0900
> > > "makino" <makino@keysfactory.co.jp> wrote:
> > >
> > > > 牧野です。
> > > > 以前もC言語プログラムをPHP上から実行できないというMLを投稿させていただきましたが、その続きのような感じです。
> > > > phpファイルに
> > > > $str = system("/bin/sh /実行ファイルのパス 引数 2>&1");
> > > > と記述しているのですが、このときにcannot execute binary file とエラーが出てしまいます。
> > > > 1度はうまくいったのですが、その後サーバー上に問題が起きましてシステムの再インストールを行なったところエラーが出るようになり
まし
> > た。
> > > > 環境は
> > > > red hat Linax 7.2
> > > > apache_1.3.22
> > > > php-4.1.2にmbrege-1.3.1を組み込んでいます。
> > > > 実行ファイルはPHP上に記述してあるパスで正常に動きます。
> > >
> > > systemの引数どおりにコマンドラインから入力して実行できます?
> > > shコマンドが解釈できるファイルはシェルスクリプトファイル
> > > だけだったと思いますど。
> > >
> > > とあなたの前回の質問でも同じような回答がされているのですけど、
> > > 覚えてません?
> > > もう一度[PHP-users 6127]からのスレッドを読み直してみては。
> > >
> > その時に
> > system("/bin/sh /実行ファイルのパス 2>&1")
> > として、stderr をstdoutにリダイレクトしてやればシェルプロンプトで実行した時と同じようにエラー表示をブラウザ上で見ることができる
と教
> > わったのでそうしたのですが。
> >
>
> これはエラーを見るためのやりかたであって、
> バイナリー形式のファイルを実行するのに /bin/sh 実行ファイル
> と書きなさいということはいっていません。
> この例のキーは 後ろの「2>&1」の部分で前半ではありません。
>   system("/bin/sh /実行ファイルのパス")
>   と書いてうまくいかないし原因がわからない
> とあなたが質問してきたので、
>   後ろに「2>&1」をつけるとエラーが見えるようになるよ
> ということです。
> で、エラーメッセージを読めば何が悪いのか推測できるでしょう
> ということなんですけどね。
>
> ちゃんと前回のスレッドを読み直してみました?
> 読み直していたら、近藤さんの書いたことでなく、別の加藤さん
> とのやり取りをみて、気が付きそうなものですけど。
>
>  man bash
> とオンラインヘルプでシェルの引数として何を渡すことが
> できるのか調べてみてください。そうすればあなたのプログラムの
> 何が間違っているのかがわかるでしょう。
>
ありがとうございます。
前回のスレッドは読み直して見たのですが、理解していなかったようです。
なので
system("/bin/sh /実行ファイルのパス 2>&1")
ではなく
system("/実行ファイルのパス")
で行い、apacheのエラーログを見るようにしたところ、内部で使用しているファイルの問題だという事がわかりました。
man bashをよく読むようにします。
>
> ----
> 加藤昌也                        株式会社ニルソフトウェア
>                                     E-mail  kato@nil.co.jp
>                                     TEL     03-3749-8601
>                                     FAX     03-3749-8602
>
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>