1

Webサーバー上の実行可能ファイルからの出力をWebページに配置するのに苦労しています。シンプルな「HelloWorld」を実現したいと思っています。

具体的には、「HelloWorld」を出力する非常に基本的なCプログラムがあります。コマンドラインから実行できるHelloWorld.outを生成するgccを使用してコンパイルしました。

次に、基本的なindex.phpファイルがあります。このファイルでは、passthru()を使用してCプログラムの結果をWebページに出力しようとしています。.phpファイルは次のようになります。

<?php passthru('HelloWorld.out'); ?>

phpファイルと.outファイルの両方をサーバーの同じディレクトリにアップロードしました。ただし、index.phpは出力を生成しません。オンラインで調べたところ、これを間違えている可能性のある場所がいくつかあります...私の一般的な目標は、実行可能プログラムからの出力をWebサーバーのページに埋め込むことができるようにすることです(HelloWorldである必要はありません)。 .out;おそらく.out拡張子はサーバーで機能しませんか?)または、passthru()を誤って使用している可能性があります。私が理解しているように、これが最も必要最低限​​のものはそれを使用することでした。

ありがとう!

4

1 に答える 1

2

明示的なパスなしで特定の実行可能ファイルを実行するようにオペレーティング システムに指示すると、PATH環境変数 (コロンで区切られた一連のパス) を使用して検索されます。

典型的なパスは、、/binなど/usr/bin/です。

これらのパスで実行可能ファイルが見つからない場合、エラーがスローされてあきらめます。これを修正するには、次の選択肢があります。

  1. 実行可能ファイルへの絶対パスを指定します (つまり/path/to/HelloWorld.out)

  2. 現在のディレクトリからの相対パスを指定します (例: ./HelloWorld.out)

  3. PHP を使用して絶対パスを作成します。

    passthru(__DIR__ . '/HelloWorld.out');

または:

    passthru(dirname(__FILE__) . '/HelloWorld.out');

chmod最後に、実行するファイルは、 を使用してパーミッションを変更するか、ファイルのパスを に渡すことにより、実行可能である必要がありますsh

passthru('/bin/sh ' . dirname(__FILE__) . '/HellWorld.out');
于 2012-11-16T08:12:22.860 に答える