現在、私の page.php ファイルは次のようになっています。
<?php
$cmd = './foo < input.txt > output.txt';
$result = shell_exec($cmd);
echo system('date'); //just to see change when refreshing the page
?>
シェルで同じコマンドを入力すると、いつでも完全に機能します (input.txt ファイルに入力例が用意されています)。
私の考えは、php を使用して input.txt ファイルと通信し、output.txt ファイルと通信してページに結果を返すインターフェイスを作成することでした。しかし、まず、持っているプログラムを実行できることを確認する必要があります。
でコンパイルしました
gcc -Wall -o foo foo.c
foo 実行可能ファイルは、page.php と同じディレクトリにあります。
すべてのファイル(page.php、input.txt、およびfoo)で777のアクセス許可を試しました
サイトは稼働中で、ページを更新すると日付が変わりますが、ディレクトリに output.txt がありません。
私はもう試した
$cmd = 'ls -la';
$result = shell_exec($cmd);
echo $result;
意図したとおりに機能し、適切なディレクトリの内容を表示します。