django apache设置麻烦

时间:2013-11-17 07:26:49

标签: python django apache2 wsgi

我正在尝试将我的新Django网站部署到Apache2服务器上(在raspberry pi上运行)。 Apache正在运行,能够与我的应用程序通话,但它无法正常工作;它给了我一个“模板未找到错误”。它试图从我猜测的是我的驱动器根目录中找到模板/templates/main.html

我正在使用runserver命令开发所有内容并且它运行良好。我认为问题是apache服务器没有从我的应用程序底部运行WSGI脚本。

这是我的等级:

  • 申请表位于:/var/www/website/
  • 设置/ WSGI文件位于/var/www/website/website/
  • 模板位于/var/www/website/templates(它们在网站应用之间共享)
  • TEMPLATE_DIRS中包含os.path.abspath('templates')(适用于开发)
  • WSGIScriptAlias / /var/www/website/website/wsgi.py文件中有httpd.conf
  • WSGIPythonPath /var/www/website文件中有http.conf
  • 使用提供的wsgi.py文件;根本没有改变。

这是我的site-available/default文件:

<VirtualHost website.net:80>                                                          
    <Directory /var/www/website/website>                                  
            <Files wsgi.py>                                
                    Order deny,allow                              
                    Allow from all                       
            </Files>                                                
    </Directory>                                            
    ErrorLog ${APACHE_LOG_DIR}/website_error.log           
    CustomLog ${APACHE_LOG_DIR}/website_access.log combined                     
</VirtualHost>        

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

您不能使用os.path.abspath()。它依赖于当前工作目录的值,这在Apache下不起作用。去看看:

答案 1 :(得分:1)

我写了一篇关于如何使用Apache和mod_wsgi部署Django的教程。我想如果我遇到麻烦,其他人可能就是这样。它是在两周后写的。如果有任何人想要修正,请告诉我。

http://16bpp.net/pages/how-to-deploy-a-django-app-with-apache