Django 2.0.7 с fastcgi выдает 404 в браузере, но работает в командной строке - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь настроить небольшой проект django на общем сервере bluehost, и у меня возникают проблемы с тем, что, по моему мнению, должно быть последним шагом - запуск его с помощью fastcgi.

Я установил Python 3.7.0 и django 2.0.7 с использованием miniconda и смогли создать проект / приложение, но я не могу отобразить его в браузере (FWIW, я успешно сделал это с другим сайтом bluehost на аналогичном плане, хотя этот сайтпо плану «расшаренный плюс», пока этот план является основным, но я не знаю, в этом ли проблема)

В моем файле ~ / public_html / myproject / .htaccess у меня есть:

AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /home/username/public_html/myproject/myproject.fcgi/$1 [QSA,L]

И в myproject.fcgi у меня есть:

#!/home/username/miniconda3/bin/python
# -*- coding: utf-8 -*-
import sys, os
project_name = "myproject"

sys.stdout=open('/home/username/public_html/myproject/test.out','w')
print(project_name)

# Add a custom Python path.
sys.path.insert(0, "/home/username/miniconda3/bin/python")
sys.path.insert(0, "/home/username/public_html/myproject")
sys.path.insert(0, os.getcwd() + "/" + project_name)

os.environ['DJANGO_SETTINGS_MODULE'] = project_name + '.settings'

from django_fastcgi.servers.fastcgi import runfastcgi
from django.core.servers.basehttp import get_internal_wsgi_application

wsgi_application = get_internal_wsgi_application()
runfastcgi(wsgi_application, method="prefork", daemonize="false", minspare=1, maxspare=1, maxchildren=1)

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

Мне не удается получить доступ к журналам сервера, поэтому я добавил строку в сценарий fcgi, чтобы направить стандартный вывод в файл и обнаружить, что файл не создается, поэтому я не уверен, что что-то не так с доступоммой python, когда я пытаюсь загрузить страницу в браузере, или что (я довольно новичок в этом!)

Я нашел практически мой точный вопрос здесь, к сожалению, без ответа: Django сFastCGI выдает 404 в браузере, но работает в командной строке

Спасибо !!

1 Ответ

0 голосов
/ 09 декабря 2018

Обновление: я решил, что проблема, с которой я столкнулся, связана с ограничениями моей среды общего хостинга.Для начала установка и устранение неполадок были затруднены без корневого доступа или доступа к журналам ошибок Apache, но я смог начать установку и добился дополнительного прогресса, когда понял, что мой план bluehost требует запуска сценариев cgi из каталога cgi-bin(вместо добавления обработчиков в .htaccess, как предлагалось в большинстве учебных пособий).

Однако последнее препятствие, которое я не смог преодолеть, казалось, ограничивало количество порождаемых потоков - когда я пытался загрузить сайт (тестовая страница django) в браузер, он просто зависал, и яполучит ошибку в моем сеансе оболочки: -jailshell: fork: Resource temporarily unavailable, как описано здесь .... возможно, что кто-то с большим опытом мог бы понять это, но я наконец решил, что будет легче переключиться.Мне потребовалось больше времени, чтобы сдаться, чем следовало, поскольку я успешно проделал то же самое с другой учетной записью общего сервера bluehost, но я наконец-то узнал, что bluehost обновил свои планы, а другой работал только с более ранней версииверсия плана.

Я переключился на Dreamhost (с их планом общего сервера) и смог легко запустить все!

...