![Turnkey Django 使用修改后的 Apache 配置文件抛出 404](https://linux22.com/image/732529/Turnkey%20Django%20%E4%BD%BF%E7%94%A8%E4%BF%AE%E6%94%B9%E5%90%8E%E7%9A%84%20Apache%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%8A%9B%E5%87%BA%20404.png)
我正在建立一个交钥匙 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 Server
MSSQL
笔记:在 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 服务器用户无权访问需要访问的内容)。但我只是猜测……