我在Ubuntu上运行Apache2服务器,安装了PHP。
我的根文件夹是/usr/local/apache2/htdocs
。
我在/usr/local/apache2/cgi-bin
中放了一个名为test.py
的测试python脚本。
test.py
#!/usr/bin/python
import cgi
import cgitb; cgitb.enable()
print "Content-Type: text/plain\r\n\r\n"
print 'hi'
我通过http://localhost/cgi-bin/test.py
在浏览器中访问此内容。目前,它只显示我刚输出的Python代码,而不是执行它。我已经广泛查看了解决此问题的在线文档和其他stackoverflow问题。
根据该研究,我将httpd.conf
文件更改为包含一些Directory
。
httpd.conf (添加到其中的内容)
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
<Directory "/usr/local/apache2/cgi-bin">
Options ExecCGI
SetHandler cgi-script
</Directory>
<Directory "/usr/local/apache2">
AddHandler cgi-script .py
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
我已经重新启动/硬启动/停止了Apache并且能够通过命令行成功运行Python文件,但是通过浏览器实际执行python文件仍然没有运气。我甚至检查了Apache错误日志,但没有看到问题的迹象。有人可以提供一些建议吗?
谢谢
答案 0 :(得分:0)
您需要chmod 755 cgi-bin文件夹(和/或子文件夹),其中包含脚本。
然后chmod 755你的脚本文件。
最后..
在您的偏好的记事本中打开脚本,并使用没有BOM的UTF-8编码保存,并且必须为UNIX系统设置EOL(行尾)转换。 (在Notepad ++中,后者在编辑菜单中)