我正在尝试在EC2实例上运行的Apache httpd网络服务器上运行python脚本(adsb-exchange.py)。该脚本从AWS CLI运行完美,但当我尝试从服务器上的简单html页面运行时,我得到:
注意,从html页面运行一个简单的'hello.py'脚本可以正常工作。
将所有内容添加到/ var / www / html目录下,并更新httpd.conf文件以反映DocumentRoot路径。
Index.html文件:
<h1>Welcome!</h1>
<p>Click the button below to start running the scipt...</p>
<form action="/adsb-exchange.py" method="post">
<button>Start</button>
</form>
adsb-exchange.py文件:
#!/usr/bin/python
#!/usr/bin/env python
#import Python modules
import cgi
import sys
cgi.enable()
print "Content-type: text/html\n\n"
print
#application imports
import modules.get_config_vals as cfgvals
import modules.adsb_pull as ap
import modules.json2csv as j2c
#get payload params from adsb_config file
payload = cfgvals.get_payload()
#get the JSON pull frequency and runtime from config file
adsb_freq = cfgvals.get_pullfreq()
#send to adsb_pull module, create a JSON object file, and get the filename returned
f = ap.pull_data(payload, adsb_freq)
#convert JSON object file to CSV, output CSV file to directory
j2c.j2csv(f)
raw_input("Press Enter to exit")
adsb-exchange.py文件通过/ var / www / html / modules路径调用'modules'文件夹下的各个模块,每个模块包含以下行: print“Content-type:text / html \ n \ n” 打印
GET和POST方法似乎不会影响结果。目前,输出文件被转储到adsb-exchange.py所在的目录中。
同样,脚本在直接从ACL执行时运行,但在从index.html页面调用时则不运行。
谢谢!