Turnkey Django 使用修改后的 Apache 配置文件抛出 404

Turnkey Django 使用修改后的 Apache 配置文件抛出 404

我正在建立一个交钥匙 Django解决方案,如果您使用他们提供的预建 Django 项目,它就可以完美运行。但是使用起来很麻烦,并且违反了 Django 文档中的许多规则和指南,并且包含太多臃肿内容,以至于在您升级或安装新包时就会崩溃。所以我正在尝试设置它,以便我可以使用自己的文件路径从头开始创建自己的 Django 项目。

我的所有数据库、依赖项、包和 Django 文件在虚拟环境中均正常工作,但是当我使用自定义目录编辑 Apache 配置文件时,它会抛出 404。

以下是我正在使用的版本:

  • PuTTy,SSH 进入服务器(Windows 10--SSH->Linux)
  • virtualenv,包含Django项目和几个包
  • Django(2、1、6、'最终'、0)
  • Python 3.6.8
  • 交钥匙 GNU/Linux 9.6
  • sql_server.pyodbc用于ODBC Driver 17 for SQL ServerMSSQL

笔记:在 Turnkey Django 中,Apache 配置文件与标准 Apache 略有不同。000-default.conf 在 Turnkey Django 中没有任何作用。

因此,当我从默认值django.conf改变时:/root/etc/apache2/sites-available

   serverName localhost

   WSGIScriptAlias / /var/www/turnkey_project/turnkey_project/wsgi.py
   WSGIPythonPath /var/www/turnkey_project
   WSGIDaemonProcess django processes=1 threads=3
   WSGIProcessGroup django

   <VirtualHost *:80>
       UseCanonicalName Off
       ServerAdmin  webmaster@localhost
       DocumentRoot /var/www/turnkey_project/static
   </VirtualHost>

   <VirtualHost *:443>
       SSLEngine on
       ServerAdmin  webmaster@localhost
       DocumentRoot /var/www/turnkey_project/static
   </VirtualHost>

   Alias /static /var/www/turnkey_project/static
   <Location "/static">
       SetHandler None
   </Location>

   Alias /doc /usr/share/doc/python-django-doc/html
   <Location "/doc">
       SetHandler None
   </Location>

我以为可以用我自己的文件路径来工作,但实际上却不行:

   ServerName localhost

   WSGIScriptAlias / /var/www/sys/main/wsgi.py
   WSGIPythonPath /var/www/sys
   WSGIDaemonProcess django processes=1 threads=3
   WSGIProcessGroup django

   <VirtualHost *:80>
       UseCanonicalName Off
       ServerAdmin  webmaster@localhost
       DocumentRoot /var/www/sys/static
   </VirtualHost>

   <VirtualHost *:443>
       SSLEngine on
       ServerAdmin  webmaster@localhost
       DocumentRoot /var/www/sys/static
   </VirtualHost>

   Alias /static /var/www/sys/static
   <Location "/static">
       SetHandler None
   </Location>

   Alias /doc /var/www/sys/doc/html
   <Location "/doc">
       SetHandler None
   </Location>

那么,为什么当我导航到我的 IP 时会抛出 404?是我设置错误还是 Turnkey 限制太多?一切似乎都正常,但它就是不想工作。

我的 Django 项目中有一个应用程序,熟悉 Django 及其 URL 模式的人都知道它会自动将 URL 从 更改为foo.com/bar(foo.com/bar/注意后缀“/”)。当我“导航”到我的应用程序时,它会自动应用此更改,这可能表明 Django 运行正常,但也许我的 apache 配置中的目录不正确或我的文件布局不正确 (也许)。

答案1

抱歉回复这么慢。我订阅了“turnkey-linux”标签,但不知为何没有收到通知?!我猜你现在可能已经离开了,但这是我的 2c:

首先,需要注意一些事情。从本质上讲,TurnKey 是 Debian。它经过了一些调整,我们确实提供了一些我们自己的自定义包,但大多数都是 Debian。在我们的 Django 设备中,我们从 Debian 存储库安装 Django。

TurnKey“示例”应用程序并非旨在成为一个可供玩耍的沙坑(也可以作为一个快速烟雾测试以确保一切就绪)。

老实说,根据你提供的信息,很难猜测问题可能是什么。你至少应该查阅你的 apache 日志 (/var/log/apache2/error.log),这样很可能就能清楚找到什么(甚至可能知道原因)。

我猜是你的某条路径错了。或者可能是权限问题?(即 Web 服务器用户无权访问需要访问的内容)。但我只是猜测……

相关内容