web-dev-qa-db-ja.com

EC2bitnamiスタックに最初のアプリをインストールする初心者

ここで初心者の質問。いつもこのようなことをしている人にはおそらく明らかです。しかし、EC2bitnamiインスタンスで実行する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.")

下記のコメントも試しましたが成功しませんでした。

ポート8

$ 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

$ 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

なぜそれが機能しないのか考えはありますか?

2
codingJoe

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を覚えたり調べたりする必要はありません。

FWIW:これは、ブリッジネットワーク用にVMセットアップを行っている場合のブラウザーテストでも見事に機能します。VMは独自のIPを取得しますブリッジネットワークを使用するLAN上。たとえば、Windowsホストで実行されているLinuxゲストの場合、この方法でVMにrunserverをロードし、上に移動してIE Windowsホスト、およびVMのIPアドレスをポイントします。

3
Chris Pratt

どちらの答えも正しいですが、あなたのアプローチ全体は理想的ではないと思います。 Django開発サーバーはいくつかの点で優れていますが、実際にクラウドで不足していることは必ずしもそれらの1つではありません。実際にはApacheを使用することをお勧めします。これにより、bitnamidjangostackで非常に簡単になります。君は。

したがって、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コードまたは構成に関する問題。

2
Dave Orr

BitNami DjangoStack を使用しているようです。スタックに含まれているApacheサーバーが実行されている必要があるため、ポート80でサーバーを起動できません。開発中の場合にDjangoサーバーを使用する場合は、Apacheサーバーを停止できます。 。

Sudo /opt/bitnami/ctlscript.sh stop Apache

また、別のポートを使用する場合は、 Amazonセキュリティグループ で開く必要がある場合があることにも注意してください。

2
kaysa