Почему мой скрипт Python загружается вместо запуска? - PullRequest
1 голос
/ 26 июля 2011

Я пытаюсь развернуть мой проект Django на моем общем веб-хосте, используя переписывание .htaccess и скрипт на python, который запускает FastCGI.Я использую этот метод, потому что у меня нет возможности изменить и настройки 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")

1 Ответ

1 голос
/ 26 июля 2011

Я думаю, вам нужно:

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

где-нибудь в вашей конфигурации Apache.AddHandler просто помещает обработчик в список доступных обработчиков Apache;вы должны использовать SetHandler, чтобы использовать его.

Это, вероятно, мера безопасности, чтобы предотвратить загрузку файла с суффиксом .fcgi и выполнение произвольного кода на вашем сервере.

...