我正在尝试使用.htaccess重写和运行FastCGI的python脚本在我的共享Web主机上部署我的Django项目。我正在使用此方法,因为我没有能力更改和Apache配置。当我访问该站点时,它不会运行FastCGI脚本,而是下载或显示脚本文件的内容。我使用chmod + x mysite.fcgi使脚本可执行。我已将脚本放在cgi-bin中,但没有任何作用。该脚本将从命令行运行。
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ cgi-bin/mysite.fcgi/$1 [QSA,L]
#!/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")
答案 0 :(得分:1)
我认为你需要:
<Files mysite.fcgi>
SetHandler fastcgi-script
</Files>
Apache配置中的某个位置。 AddHandler
只是在Apache的可用处理程序列表中放置一个处理程序;你必须使用SetHandler
来使用它。
这可能是一项安全措施,可防止某人上传带有.fcgi
后缀的文件并在您的服务器上运行任意代码。