ここで初心者の質問。いつもこのようなことをしている人にはおそらく明らかです。しかし、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
なぜそれが機能しないのか考えはありますか?
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アドレスをポイントします。
どちらの答えも正しいですが、あなたのアプローチ全体は理想的ではないと思います。 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コードまたは構成に関する問題。
BitNami DjangoStack を使用しているようです。スタックに含まれているApacheサーバーが実行されている必要があるため、ポート80でサーバーを起動できません。開発中の場合にDjangoサーバーを使用する場合は、Apacheサーバーを停止できます。 。
Sudo /opt/bitnami/ctlscript.sh stop Apache
また、別のポートを使用する場合は、 Amazonセキュリティグループ で開く必要がある場合があることにも注意してください。