0

我目前正在尝试部署我的第一个基于 django 的站点,并且遇到了一些问题,因为我几乎没有配置服务器的经验。

我遵循了主机提供的指南,我的文件现在看起来像这样。

文件夹结构。

mysite/
    manage.py
    mysite/
        apps
        settings/
            __init__.py
            base.py
            local.py
            production.py
    requirements.txt
    venv
www/
    .htaccess
    mysite.fcgi

.htaccess

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA, L]

我的网站.fcgi

#!/usr/local/bin/python
import sys
import os

sys.path.append("home/users/myuser")

from django.core.handlers.wsgi import WSGIHandler
from flup.server.fcgi import WSGIServer

os.chdir("/home/users/myuser/mysite/")
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

WSGIServer(WSGIHandler()).run()

主机提供的指南说他们正在运行 FastCGI,但是在 .htaccess 中添加处理程序时,我看到他们添加了 fcgid-script 而不是 fastcgi-script。所以我两个都试过了。

使用fcgid-script时,我从错误日志中收到此错误:

mod_fcgid: stderr: ImportError: Could not import settings 'mysite.settings' 
(Is it on  sys.path?): No module named mysite.settings

使用fastcgi-script时,我从错误日志中收到此错误:

File does not exist: /home/users/myuser/www/mysite.fcgi/favicon.ico

我也在为我的项目使用 virtualenv,看起来像这样。

要求.txt

Django==1.4.2
Markdown
PIL=1.1.7
MySQL-python
South
flup

如果有人能看到我做错了什么,我们将不胜感激。谢谢你。

当我使用 virtualenv 时,我必须将其添加到我的 .fcgi 文件中以解决问题

venv = '/home/users/myuser/mysite/venv/bin/activate_this.py'
execfile(venv, dict(__file__=venv))
4

1 回答 1

0

我对 FastCGI 不太了解,但似乎引发此错误的第二个选项File does not exist: /home/users/myuser/www/mysite.fcgi/favicon.ico必须是 Apache 配置文件中的设置。mysite.settings 似乎是正确的,所以也许可以找到一种方法来删除对 .ico 文件的引用(我在 Mod-WSGI 上的 django 设置将在 apache2 配置中)或将 ico 文件添加到它当前不能的路径被发现。

于 2013-10-17T12:24:14.270 回答