【问题标题】:Django tutorial on remote server: how to view in my browser?远程服务器上的 Django 教程:如何在我的浏览器中查看?
【发布时间】:2011-02-23 22:21:16
【问题描述】:

我开始学习 Django 教程,但遇到了障碍。在我常用的域上创建了示例“mysite”后,我希望能够在我的浏览器中显示它。该教程将我指向http://127.0.0.1:8000。但是,这行不通,因为我正在远程执行此操作。

[背景资料]

我所做的,显然是成功的,是 django-admin.py 启动项目 mysite (创建包含四个文件的 mysite 目录) python manage.py 运行服务器 (验证模型...发现 0 个错误等)

绝对路径是 /home/toewsweb/public_html/pythonlab/mysite 我应该能够使用哪个 URL 在浏览器中显示此内容?

我也把我的网站放在 /home/toewsweb/mysite (因为它不应该放在可公开访问的目录中) 在这种情况下,我应该能够使用什么 URL?

这是一个虚拟专用服务器,所以我可以访问 httpd.conf。我已经下载并安装了 mod_wsgi 并将其添加到 Apache 配置中。实际上,我确实设置了一个 DocumentRoot 为 /home/toewsweb/public_html/pythonlab/mysite; 的子域;但是,当我将浏览器指向该子域时,我只会得到目录列表。

[/背景信息]

现在,我只想知道如何在浏览器中查看我正在处理的内容。

谢谢!

【问题讨论】:

    标签: django


    【解决方案1】:

    出于开发目的,无需纠结于配置 WSGI(尽管了解它很有用,因为您需要在生产环境中进行配置)。只需启动开发服务器,使其监听外部端口:

    ./manage.py runserver 0:8000
    

    这将绑定到外部 IP 地址,所以现在您可以通过该服务器上的端口 8000 访问您的 Django 站点:

    http://whatever.my.ip.is:8000
    

    【讨论】:

    • 优秀。我仍然希望对 WSGI 进行排序,但这让我出于开发目的而前进。谢谢,丹尼尔!
    【解决方案2】:

    您需要在 VirtualHost 中设置 apache WSGIScriptAlias 指令以正确加载 python 和您的站点。 Django's docs 对您需要做什么有很好的解释。

    基本配置

    安装并激活 mod_wsgi 后,编辑 httpd.conf 文件并添加:

    WSGIScriptAlias / /path/to/mysite/apache/django.wsgi
    

    上面的第一位是您希望为您的应用程序提供服务的 url(/ 表示根 url),第二位是“WSGI 文件”的位置 -- 见下文 -- 在您的系统上,通常在内部你的项目。这告诉 Apache 使用该文件定义的 WSGI 应用程序来处理给定 URL 下的任何请求。

    接下来我们需要实际创建这个 WSGI 应用程序,因此创建 WSGIScriptAlias 第二部分中提到的文件并添加:

    import os
    import sys
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
    
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    

    如果您的项目默认不在您的 PYTHONPATH 上,您可以添加:

    path = '/path/to/mysite'
    if path not in sys.path:
        sys.path.append(path)
    

    就在 import sys 行的下方,将您的项目放在路径上。请记住将“mysite.settings”替换为您正确的设置文件,并将“/path/to/mysite”替换为您自己项目的位置。

    另一种选择是运行开发服务器,这样它就可以像这样从外部访问:

    python manage.py runserver 0.0.0.0:80
    

    虽然请不要在生产中使用它。开发服务器是单线程的,并且没有进行安全审计。

    【讨论】:

    • 谢谢。我必须接近这一点。我之前安装了 mod_wsgi 并在目录中设置了 django.wsgi 文件,并且我已将 WSGIScriptAlias /mysite/ /home/toewsweb/mysite/django.wsgi 添加到 VirtualHost 块中。但是,当我将浏览器指向子域时,我会继续获得目录列表。我猜python没有被加载,或者什么。它可以在 shell 提示符下正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 2017-10-20
    • 2013-01-28
    相关资源
    最近更新 更多