初学者在 EC2 bitnami 堆栈上安装第一个应用程序

初学者在 EC2 bitnami 堆栈上安装第一个应用程序

这是初学者的问题。对于经常做这些事情的人来说,这可能很明显。但我在设置运行在 EC2 bitnami 实例上的 django 时遇到了困难。

我设置了我的服务器,并且可以登录。为了测试这一点,我设置了投票示例。下面是我为运行它而执行的命令。

问题:

  • 我在这里做错了什么?
  • 如何显示我的基本民意调查页面?
  • 此外,我应该遵循什么最佳实践来配置实时服务器?

任何逐步说明都将不胜感激。

----命令-----

$ cd /opt/bitnami/projects/Project  #directory already exists
$ sudo python manage.py startapp polls
$ sudo chown -R bitnami * # tired of doing sudo.. Good move or not?
$ vim polls/models.py  # matches the example
$ vim polls/views.py  #see below
$ vim urls.py   # added: (r'^polls/$', 'polls.views.index'),
$ vim settings.py  #added polls
$ python manage.py syncdb  # tables created successfully
$ python manage.py runserver  # server started

# Now I open my browser and go to:  http://10.206.xxx.yyy:8000/polls/
# also tried ports 8080 and 80
# Error: unable to connect

-------views.py-----------

# Create your views here.
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the poll index.")

我也尝试了下面所述的评论,但没有成功。

端口 80

$ sudo python manage.py runserver 0.0.0.0:80
Django version 1.3, using settings 'Project.settings'
Development server is running at http://0.0.0.0:80/
Quit the server with CONTROL-C.
Error: That port is already in use.

端口 8000

$ python manage.py runserver 0.0.0.0:8000
#also tried python manage runserver 10.206.xxx.yyy:8000 (same results)
Django version 1.3, using settings 'Project.settings'
Development server is running at http://10.206.xxx.yyy:8000/

in browser:  http://10.206.xxx.yyy:8000
result:  Firefox can't establish a connection to the server at 10.206.xxx.yyy:8000.
in browser:  http://10.206.xxx.yyy:8000/polls
result:  same Firefox can't establish a connection

网络状态

$ netstat -aon
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
tcp6       0      0 :::80                   :::*                    LISTEN      off (0.00/0/0)
# I don't know what this means exactly and why I can't see this server from the browser

知道为什么它不起作用吗?

答案1

如果您使用 vanilla,runserver它会连接到 localhost (127.0.0.1)。这意味着您只能在实际的服务器实例中访问它。要让它连接到实际 IP,您可以使用:

$ python manage.py runserver 0.0.0.0:8000

如果愿意,您可以使用其他端口,但如果您想在端口 80 上连接它,则需要使用 sudo:

$ sudo python manage.py runserver 0.0.0.0:80

笔记:这可能不太明显,所以以防万一:该0.0.0.0部分是故意的。它本质上意味着连接到分配给服务器的 IP 地址。您可以使用实际的 IP 地址,但我发现这更容易:您不必记住或查找服务器的 IP。

仅供参考:当您为桥接网络设置虚拟机时,这对于浏览器测试也非常有效。虚拟机通过桥接网络在 LAN 上获得自己的 IP。因此,例如,在 Windows 主机上运行 Linux 客户机时,您可以通过这种方式在虚拟机中加载 runserver,转到 Windows 主机上打开 IE,并将其指向虚拟机的 IP 地址。

答案2

看来你正在使用BitNami DjangoStack。堆栈中包含的 Apache 服务器应该正在运行,这就是您无法在端口 80 启动服务器的原因。如果您只是在开发并且想要使用 django 服务器,您可以停止 Apache 服务器。

sudo /opt/bitnami/ctlscript.sh stop apache

另请注意,如果您想使用其他端口,您可能需要在您的亚马逊安全组

答案3

这两个答案都是正确的,但我认为你的整个方法并不理想。django 开发服务器在某些方面很好,但实际上在云中运行不一定是其中之一。我建议实际上只使用 Apache,bitnami djangostack 让你可以轻松使用它。

因此,在运行 runserver 之前,您会做同样的事情,此时,您将编辑包含 django 内容的相应 apache 配置文件,我认为该文件称为 django.conf:

WSGIScriptAlias /django “/opt/bitnami/apps/django/conf/django.wsgi”

或者任何正确的事情(它可能已经是正确的了)。

然后编辑该文件以确保内容指向正确的位置:

sys.path.append(‘/opt/bitnami/’)
sys.path.append(‘/opt/bitnami/myproject’)
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘myproject.settings’

然后重新启动 apache。现在,当您访问端口 80 时,它应该会调用您的 django 代码。您可以做的一件事是确保在 settings.py 文件中将 DEBUG 设置为 True,这样您就可以消除调用 django 的问题和实际 django 代码或配置的问题。

相关内容