ボタンが1つあるhtmlファイルがあります。ボタンがクリックされると、javascript関数「run」が呼び出されます。
function run() {
window.open("http://localhost/cgi-bin/run.py", "_self");
}
run.pyは、端末に文字列「helloworld」を出力するhelloworld.exeプログラムを実行しようとしているだけですが、何も起こらず、ブラウザは「localhostを待機」し続けます。
#!python
import sys, string, os, cgitb
cgitb.enable()
os.system("helloworld.exe")
helloworld.exeを単独で試しましたが、動作します。ターミナルでrun.pyを実行しました。動作しました。また、ブラウザでテストサイトをテストしましたが、正常に動作しましたhttp://localhost/cgi-bin/helloworld.py
(helloworld.pyは別のスクリプトです。私のapacheが正常に構成されているかどうかを確認してください)。
私はwampを使用しています。
私がやろうとしているのは、クライアントがサーバーに接続し、サーバー側のプログラムと「対話」できるようにする、より大きなプログラムです。プログラムはすでにC++で実行されており、phpやjavascriptに変換されません。
編集:私は関数subprocess.Popen、subprocess.call、os.systemを試してきました。また、apache / cgi-binフォルダーにある自分で作成した.exeファイル、またはc:\windowsにあるワードパッドなどの実行可能ファイルを実行するコードもテストしました。また、Pythonスクリプトがターミナルから実行される場合は常に成功し、ブラウザーから試行する場合は機能しません。使用しているサーバーが原因である可能性はありますか?wampのapacheを使用し、「AddHandlercgi-script.exe」という文をhttpd.confファイルに追加しました。