繁体   English   中英

为什么我的python脚本下载而不是运行?

[英]Why does my python script download instead of run?

我正在尝试使用.htaccess重写和运行FastCGI的python脚本在共享的Web主机上部署Django项目。 我之所以使用这种方法,是因为我没有更改和配置Apache的能力。 当我访问该站点时,不是运行FastCGI脚本,而是下载或显示脚本文件的内容。 我已经使用chmod + x mysite.fcgi使脚本可执行。 我已将脚本放在cgi-bin中,但没有任何效果。 该脚本将从命令行运行。

.htaccess

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ cgi-bin/mysite.fcgi/$1 [QSA,L]

mysite.fcgi

#!/usr/bin/python
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/home/jmjordan/.local/lib/python")
sys.path.insert(0, "/home/jmjordan/.local/lib/python/flup")


# Switch to the directory of your project. (Optional.)
# os.chdir("/home/user/myproject")

# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "jmjordan.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

我认为您需要:

<Files mysite.fcgi>
    SetHandler fastcgi-script
</Files>

Apache配置中的某个位置。 AddHandler只是将一个处理程序放入Apache的可用处理程序列表中。 您必须使用SetHandler才能使用它。

这可能是一种安全措施,可以防止某人上载带有.fcgi后缀的文件并在您的服务器上运行任意代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM