【问题标题】:How to deploy Django app on Bluehost using WSGI?如何使用 WSGI 在 Bluehost 上部署 Django 应用程序?
【发布时间】:2018-10-06 07:45:20
【问题描述】:

我是 Bluehost 的新手,我正在尝试查找有关如何使用 WSGI 在 Bluehost 上部署 Django 的说明,因为在 Django 1.9 中已弃用并删除了 FastCGI 支持。但是,经过一整天的谷歌搜索,我仍然找不到任何说明。谁能帮帮我,好吗?

【问题讨论】:

    标签: django python-3.x deployment wsgi bluehost


    【解决方案1】:

    通过执行以下操作,我能够让 Django 在 Bluehost 上工作。

    1. 我必须构建一个最近的 python 并设置一个可以很好地配置它的 virtualenv。然后我用 pip 安装了 django 和 Flup。因为我使用的是 postgresql,所以我还安装了 psycopg2。这是相当艰巨的,因为缺少许多依赖项,例如最新的 openssl 和 postgress,但对于这个问题来说,这完全是题外话。

    2. 使用 .htaccess 告诉 apache 运行 django.fcgi 脚本。您需要使 django.fcgi 可执行。

    AddHandler fcgid-script .fcgi
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]
    
    1. 编写一个 django.fcgi bash 脚本来设置 virtualenv 并运行 python 应用程序。
    #!/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
    
    1. 编写一个 fcgi.py 脚本,使用 Flup 运行 django。
    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,并将请求转换为 wsgi 用于 django。

    【讨论】:

    • 谢谢!为我工作,虽然是变态:) 我使用pwd 来扣除 HOME,但其他复制粘贴工作。
    猜你喜欢
    • 2012-03-24
    • 2022-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2021-01-21
    • 2016-03-30
    相关资源
    最近更新 更多