6

UbuntuサーバーでDjangoを実行するのに問題があります。Djangoを実行することはできますが、サービスとして実行する方法がわかりません。

Distributor ID:    Ubuntu
Description:       Ubuntu 10.10
Release:           10.10
Codename:          maverick

これが私がしていることです:

  1. Ubuntuサーバーにログオンします
  2. Djangoプロセスを開始します。sudo ./manage.py runserver 0.0.0.0:80 &
  3. テスト:トラフィックは合格し、アプリは正しいページを表示します。
  4. ターミナルウィンドウを閉じると、すべて停止します。どういうわけかサービスとして実行する必要があると思いますが、どうすればいいのかわかりません。

ログインしていない場合でも、Djangoプロセスをポート80で実行し続けるにはどうすればよいですか?

また、Apacheを介してリンクする必要があると思いますが、まだ準備ができていません。

4

5 に答える 5

14

manage.py runserver サーバーをポート 80 で実行するために使用しないでください。開発用でもありません。開発環境でそれが必要な場合は、django アプリケーションをルートとして実行するよりも、iptables を介してトラフィックを 8000 から 80 にリダイレクトする方が良いでしょう。

django のドキュメント (またはこの投稿に対する他の回答) で、実際の Web サーバーで実行する方法を見つけることができます。

他の理由で、ターミナルを閉じた後もプロセスをバックグラウンドで実行し続ける必要がある場合は、バックグラウンドで実行&されるためプロセスを実行することはできませんが、セッションのsession idを保持し、セッション リーダー (端末) が終了します。

ユーティリティを介してプロセスを実行することで、この動作を回避できsetsidます。詳細については、 setsidのマンページを参照してください。

于 2012-05-04T18:07:05.303 に答える
10

とにかく、他のコメントを読んだ後でもmanage.pyでプロセスを使用したい場合は、コマンドラインの前に「nohup」を追加してください:

sudo nohup /home/ubuntu/django_projects/myproject/manage.py runserver 0.0.0.0:80 &
于 2012-05-04T18:18:49.763 に答える
4

この種の仕事には、Ubuntu を使用しているため、すばらしいUbuntu upstartを使用する必要があります。

FastCGI を使用して Django をデプロイするdjango-fcgi場合は、ファイルを指定するだけです。

/etc/init/django-fcgi.conf

必要なupstart構文の指示を入れます。

runserver次に、コマンドを簡単に開始および停止できます。

start runserver

stop runserver

Upstart を使用して Django プロセスのデプロイを管理する例:こちらおよびこちら。この展開構造を自分で設定するときに、これらの 2 つのリンクが役立つことがわかりました。

于 2012-05-04T17:54:49.010 に答える
1

問題は&、プログラムをバックグラウンドで実行するが、それを生成プロセスから分離しないことです。ただし、追加の問題は、開発サーバーを実行していることです。これはテスト目的のみであり、運用環境では使用しないでください。

gunicornまたは apache を使用しmod_wsgiます。django とこれらのプロジェクトのドキュメントでは、適切に提供する方法を明示する必要があります。

django dev サーバーをポート 80 で実行し、そのままにしておくという本当に手っ取り早い方法が必要な場合 (これはお勧めしません) screen、. screen接続を閉じても閉じない端末を作成します。screen ターミナルのフォアグラウンドで実行して切断し、再起動するまで実行したままにすることもできます。

于 2012-05-04T17:57:39.977 に答える