【问题标题】:Django on DebianDebian 上的 Django
【发布时间】:2014-02-18 08:54:18
【问题描述】:

所以我使用 Debian 6.0.9(挤压)。 我有我在本地编码的项目,我在 /home/project/ 的服务器上上传 现在我已经托管了 mysql、apache2.2.16 和许多不同的 PHP 网站。

这是一个典型的启用站点/*我使用:

<VirtualHost *:80>
    ServerName project.com
    ServerAlias www.project.com

    DocumentRoot /var/www/project.com/htdocs/
</VirtualHost>

我安装了 wsgi mod 并尝试按照这里所说的 https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/modwsgi/

没有任何效果。我不知道它是如何工作的,因为我没有精确地确定我想用于我的项目的 URL。文档真的不清楚......有人知道我应该做什么吗?

编辑:我忘了写我的文件的样子:

<VirtualHost *:80>
ServerName project.com
ServerAlias project.com

DocumentRoot /var/www/project.com/htdocs

 WSGIScriptAlias / /home/project/project/wsgi.py
   <Directory /home/project/project>
      Order allow,deny
      Allow from all
   </Directory>

   Alias /robots.txt /var/www/project.com/htdocs/robots.txt
   Alias /favicon.ico /var/www/project.com/htdocs/favicon.ico
   Alias /images /var/www/project.com/htdocs/images
   Alias /static /var/www/project.com/htdocs/static

   ErrorLog /var/www/project.com/logs/error.log
   CustomLog /var/www/project.com/logs/access.log combined
</VirtualHost>

【问题讨论】:

  • 您应该按照这些说明进行操作。究竟是什么不完全清楚?你有什么困惑?您现在启用站点的配置是什么样的?你有任何错误吗?
  • 按照说明进行操作。访问 URL 时检查 Apache 日志(错误和访问)。错误信息是什么。
  • 我按照那里的说明进行操作,但它不起作用(500 内部服务器错误)。我也尝试了在这里找到的内容:library.linode.com/frameworks/django-apache-mod-wsgi/… 不起作用。
  • 如果您收到“500 内部服务器错误”,您应该在 Apache 错误日志中看到详细信息。停止 Apache 并使用详细的命令行运行它可能对您有用。

标签: django apache debian wsgi


【解决方案1】:

在您的 VirtualHost 定义中: 确保你配置:

  • DocumentRoot、WSGIScriptAlias - 必须正确配置
  • ErrorLog、CustomLog - 有助于调试
  • WSGIDaemonProcess 和 WSGIProcessGroup - 是一种很好的安全实践

例如:

WSGIPythonHome PATH_TO_YOUR_PYTHON
<VirtualHost *:80>
    ServerName project.com
    ServerAlias www.project.com, *.project.*

    ErrorLog "/var/log/httpd/vhost_test_error.log"
    CustomLog "/var/log/httpd/vhost_test_access.log" combined

    WSGIDaemonProcess project processes=2 threads=15 display-name=%{GROUP}  python-path=PATH_TO_YOUR_VIRTUAL_ENV
    WSGIProcessGroup project

    #DocumentRoot /var/www/project.com/htdocs/
    DocumentRoot "/var/www/project.com/PATH_TO_DJANGO_PROJECT"
    WSGIScriptAlias / /var/www/project.com/PATH_TO_DJANGO_PROJECT/wsgi.py
</VirtualHost>

【讨论】:

  • 我现在正在尝试让它在没有守护进程的情况下工作(它已经足够复杂了:s)查看我的编辑,我的虚拟主机定义就是这样。另外我读到你不应该告诉 DocumentRoot 你到 django 项目的路径,因为它显示了你的代码源。
  • 比添加至少 WSGIScriptAlias。 500 内部服务器错误也可能意味着 mod_wsgi 无法正常工作。 mod_wsgi 需要完全适合您的 Apache / python / django 的特定版本。
  • 如果您看到来自应用程序的错误(Django 或 Python 错误)或应用程序正在运行,那么您就知道 mod_wsgi 正在运行。
  • 问题是我无法访问我的应用程序:s 我有一个 URL,我有一个托管文件的服务器,但我无法检查它是否有效......它让我发疯。我正在阅读我能阅读的所有内容,但没有任何帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多