我正在尝试将我的新Django网站部署到Apache2服务器上(在raspberry pi上运行)。 Apache正在运行,能够与我的应用程序通话,但它无法正常工作;它给了我一个“模板未找到错误”。它试图从我猜测的是我的驱动器根目录中找到模板/templates/main.html
,
我正在使用runserver
命令开发所有内容并且它运行良好。我认为问题是apache服务器没有从我的应用程序底部运行WSGI脚本。
这是我的等级:
/var/www/website/
/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>
感谢任何帮助
答案 0 :(得分:1)
您不能使用os.path.abspath()。它依赖于当前工作目录的值,这在Apache下不起作用。去看看:
答案 1 :(得分:1)
我写了一篇关于如何使用Apache和mod_wsgi部署Django的教程。我想如果我遇到麻烦,其他人可能就是这样。它是在两周后写的。如果有任何人想要修正,请告诉我。
http://16bpp.net/pages/how-to-deploy-a-django-app-with-apache