我是第一次接触Bluehost,我正在尝试找到关于如何使用WSGI在Bluehost上部署Django的说明,因为Django1.9已经不再支持FastCGI了。然而,经过一整天的谷歌搜索,我仍然找不到任何关于这方面的说明。有谁能帮我一下吗?
发布于 2021-08-13 14:48:44
通过执行以下操作,我能够让Django在Bluehost上工作。
apache使用.htaccess告诉apache运行django.fcgi脚本。您将希望将django.fcgi设置为可执行文件。
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]
#!/bin/bash
HOME=/path/to/my/home/directory
# Useful for debugging. Kill it once things are working.
exec 2>> $HOME/fcgi.log 1>> $HOME/fcgi.log
echo Restarting fcgi
# Start up the virtualenvironment.
. $HOME/venv/bin/activate
python -m fcgi
from flup.server.fcgi import WSGIServer
from django.core.wsgi import get_wsgi_application
import os
if __name__ == '__main__':
os.environ['DJANGO_SETTINGS_MODULE'] = 'your_project_name.settings'
application = get_wsgi_application()
# Remember to set debug to False once you have things working.
WSGIServer(application, debug=True).run()
我发现更改django.fcgi会导致应用程序重新加载。仅接触该文件是不够的。实际上我必须,比如说,添加/删除一些空格。
以这种方式运行似乎是可行的,但有时似乎确实会使bluehost资源限制不满意。我有时会把它吐出来
-jailshell: fork: retry: Resource temporarily unavailable
当我被塞进去的时候。我还没有完全弄清楚它何时这样做的模式。但是当我不使用fcgi时,我还没有遇到过这种情况(嗯,make -j2也会触发它)。
请注意,这种方法适用于我的Django 3.2.5,在移除fcgi支持之后很久。在这种方法中,flup实现了fcgi,并将请求转换为django的wsgi。
https://stackoverflow.com/questions/52676866
复制相似问题