试图在没有root的情况下部署Django,服务器找不到.fcgi文件

时间:2017-08-05 01:45:30

标签: python django .htaccess virtualenv local

我正在尝试将Django部署到没有root访问权限的A2 Hosting VPS帐户上。我按照安装说明here进行了操作,因为我不允许使用全球virtualenv帐户。我用过:

pip install --user virtualenv

我的虚拟环境必须添加到〜/ djangoenv 而不是描述的路径。我找不到任何描述如何更改安装以解释此问题的说明,所以我继续并尽力替换我认为正确的例如路径。我将这2个文件添加到 html_public

htaccess的:

AddHandler fcgid-script .fcgi
AddHandler fcgid-script .fastcgi
RewriteEngine on
# Set up static content redirect:
RewriteRule static/(.+)$ mysite/public/static/$1
# The following two lines are for FastCGI:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ application.fcgi/$1 [QSA,L]

application.fcgi:

#!/home/fantasy2/.local/lib/python2.7

# Set up the virtual environment:
import os, sys
os.environ.setdefault('PATH', '/bin:/usr/bin')
os.environ['PATH'] = '/home/fantasy2/djangoenv/bin:' + os.environ['PATH']
os.environ['VIRTUAL_ENV'] = '/home/fantasy2/djangoenv/bin'
os.environ['PYTHON_EGG_CACHE'] = '/home/fantasy2/djangoenv/bin'
os.chdir('/home/fantasy2/public_html/mysite')

# Add a custom Python path.
sys.path.insert(0, "/home/fantasy2/public_html/mysite")

# Set the DJANGO_SETTINGS_MODULE environment variable to the file in the
# application directory with the db settings etc.
os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

添加这些后,它会检查网址以查看“工作正常”页面,但收到错误消息:

  

在此服务器上找不到请求的URL /application.fcgi/。

我尝试更改 application.fcgi 文件中的路径以及我在研究问题时找到的 .htaccess 页面的几个不同版本。然后我尝试继续使用数据库和STATIC_URL完成其余的指示,但这也没有帮助。我一直试图解决这个问题2天,并尝试从我的网站擦除所有内容并重新开始,但无法让它工作。

1 个答案:

答案 0 :(得分:1)

事实证明fastcgi没有正确配置,因为我没有root,所以无法修复它。我不得不联系主机并让他们重新部署fastcgi或者第一次部署它,不确定但是现在它正在运行。