首先:请不要责怪我犯新手错误或其他类似错误。我还在学习,需要一些帮助。 所以我用ubuntu 16.04在digitalocean上创建了一个droplet并登录并运行:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-setuptools python-pip apache2 libapache2-mod-wsgi
并安装了django:
sudo pip install Django==11.1.4
并在目录中创建了项目(没有virtualenv):
django-admin.py startproject mysite
但是,如果我做“runserver”
python manage.py runserver
并在firefox中输入xxx.xxx.xxx.xx:8000即使我在终端中看到runserver确实有效,也没有任何内容。如果我输入xxx.xxx.xxx.xx,那么我会看到apache的默认页面。我的目标是在apache上运行django,但我甚至无法启动,因为仅用于测试的runserver甚至无法工作。我怎样才能做到这一点,我在哪里弄错了?
编辑:runserver的输出是:
Performing system checks...
System check identified no issues (0 silenced).
September 02, 2017 - 22:21:12
Django version 1.11.4, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
答案 0 :(得分:2)
manage.py runserver
NOT 用于通过Apache提供网页,仅意味着作为轻量级本地开发服务器,用于在编写代码时运行代码它
相反,您应该关注guide to run DJango on Apache using mod_wsgi。
在这种情况下,我愿意给出的唯一一点建议是,如果您尝试在虚拟机或Docker容器中托管runserver
,则需要明确设置主机绑定到
manage.py runserver 0.0.0.0:8000
请注意,无法从网络上的其他计算机访问默认IP地址127.0.0.1。要使您的开发服务器可以在网络上的其他计算机上查看,请使用自己的IP地址(例如192.168.2.1)或0.0.0.0或::(启用IPv6)。
同样,runserver
用于本地开发仅。 NOT 使用它来尝试通过Apache来托管网站,因为这就是mod_wsgi
等托管驱动程序的用途。
答案 1 :(得分:0)
runserver和apache有两个不同的东西。
开发人员使用本地runserver在本地编写和运行Web应用程序。通常本地加载的设置是不同的,例如生产网站使用设置,在本地使用settings_local.py来生成设置(非常简化的示例)。
如果您运行runserver
并加载http://127.0.0.1:8000/
,您应该能够看到一些内容,并且您应该在终端上看到runserver对来自浏览器的请求的响应。
如果您的目标是部署Web应用程序而不是需要apache
之类的内容,而不是本地。恕我直言,我建议你避免Apache并使用Nginx + Gunicorn + supervisord来管理你的生产服务器上的webapp。更容易配置。