我正在使用Python3中的CGI脚本,它识别错误的目录

时间:2017-10-31 19:59:09

标签: python linux python-3.x cgi

我正在使用Python3中的CGI脚本,但它引用了错误的目录。为简单起见,以下工作

#!/home/linuxbrew/.linuxbrew/bin/python3

print ("Content-type:text/html")
print ()                             
print ('<html>')
print ('<head>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word!</h2>')
print ('</body>')
print ('</html>')

但以下情况并非如此:

#!~/anaconda3/bin/python

print ("Content-type:text/html")
print ()                             
print ('<html>')
print ('<head>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word!</h2>')
print ('</body>')
print ('</html>')

如果我尝试运行此操作,则会出现500内部服务器错误。后者是我实际存储我的包并从中执行的地方:

which python
~/anaconda3/bin/python

知道问题是什么吗?我如何让CGI与我想要的目录一起工作?谢谢!

1 个答案:

答案 0 :(得分:1)

当您运行CGI脚本时,您正由运行服务器的同一用户运行它。例如,这通常是www-data用户。这意味着~已扩展到www-data主目录。如果您想让CGI脚本运行特定版本的Python,您应该在#!之后将整个路径放到可执行文件中。

我强烈建议您 NOT 尝试让Apache或NginX以其他用户身份运行。这可能会导致意想不到的结果和更多的困难。最好简单地使用完整路径或依赖ENV中已有的东西。