私はこのセットアップ全体に非常に新しいので、ニースになってください。 devでは、コマンドは通常エラーなしで機能しますが、Djangoに対してさまざまなコマンドを試しているので、何かが間違っています。
python manage.py runserver 0.0.0.0:80
このポートを使用する権限がありません。ポート8080を使用できますが、URLの通常のホスト名の末尾にポートを追加すると、Webサイトが機能しません。私がポート80を使用したとき、とにかくURLに:80を追加する必要はありませんでした。
ログファイルへのアクセス許可がないというエラーが発生しましたが、そのファイルのアクセス許可を変更しました。現在、権限を持っていないものがたくさんあるようです。
Django 1.8.5。仮想環境を使用しており、プロジェクトに2つのアプリがあります。
Linuxを使用している場合は、このエラーが表示されます。
何よりもまず、Djangoには本番サーバーがなく、非常に基本的な開発サーバーであり、デフォルトでポート8080を使用します。
コマンドを実行したとき
python manage.py runserver
Djangoに開発サーバーを起動するように指示すると、開発サーバーが実行されるため、運用サーバーにデプロイする前にWebアプリをテストできます。
Djangoドキュメンテーション-> Django-admin->サーバーを実行
サーバーにアクセスする方法は、ブラウザーを使用して、アドレスバーにURLを接続することです。
localhost:8080
特に記載がない限り、デフォルトでは、ほとんどのHTTPアプリケーションはポート80で実行されます。たとえば、MySQLサーバーはデフォルトでポート3306で実行できます。
基本的に、ポートは、あなたが通信したい相手にあなたを接続する古い学校の電話回線と考えることができます。
これについては、特別なことは何もありません。最初に基本を理解するために、ボトルで遊ぶ必要があるでしょう。ただ友好的な提案です。
あなたはウェブサイト上の詳細を掘り下げることができます。 安全ではありませんが、Sudo
を使用してポート80で実行できますが、セキュリティ上の理由から、これは避けてください。
@ mtt2pが serverfault について言及している理由
ローカル接続のみを許可するようにサーバーに指示する方法は確かにありますが、0.0.0.0:80を使用するのは、他の人に作業を自慢したり、他のデバイスでWebアプリがどのように見えるかを確認したりする場合のみです。
長期的には、Sudo
の方が簡単で高速ですが、遅延が発生し、安全ではありません。
これは、virtualenvのコンテキストで説明するリンクです。
ポートを指定するときのDjango runserverエラー
答えは
Sudoコマンドはスーパーユーザーコンテキストでプロセスを実行し、スーパーユーザーコンテキストにはvirtualenv設定がないと思います。
シェルスクリプトを作成してvirtualenvを設定し、manage.py runserverを呼び出してから、代わりにこのスクリプトをSudoします。
Virtualenvベースのコンテキストを説明する答えも安全ではないことに注意してください。次のように実行する必要があります
Sudo python manage.py runserver 80
ない
Sudo bash script-name
virtualenvの外。これを行うと、アプリケーションをサンドボックス化する目的が無効になります。これを無視すると、 競合状態 にさらされることになります。
「aira」というvirtualenv
をセットアップし、ルート環境にvirtualenvwrapper
をインストールしました(/root/.bashrcの私のvirtualenvwrapper設定が一番下にあります)。これにより、runserverを動作させるために-c
にカスケードする必要があるSudoコマンドの数が減ります。
Sudo sh -c "workon aira && python manage.py runserver --insecure 0.0.0.0:80"
Djangoアプリのvirtualenv
をvirtualenvwrapper
なしで設定した場合は、手動で正しいディレクトリに変更し、Sudoコマンドシーケンス内でvirtualenv
をアクティブにする必要があります。私の仮想環境はaira
と呼ばれ、 my virtualenvs in /root/.virtualenvs
。My Djangoプロジェクトは、ubuntuユーザーのホームディレクトリにあります。
Sudo sh -c "source $HOME/.virtualenvs/aira/bin/activate && cd /ubuntu/src/aira/ && python manage.py runserver --insecure 0.0.0.0:80"
Djangoおよびシステムサイトパッケージにrequirements.txtをインストールした場合)、Sudoを使用してサーバーを実行できます。 。
Sudo python manage.py runserver --insecure 0.0.0.0:80"
--insecure
オプションを使用すると、staticfiles
で静的アセット(画像、CSS、JavaScript)を提供できます。
完全を期すために、Ubuntu 16.04の/root/.bashrc
にある私のvirtualenvwrapper構成変数を以下に示します。
# python3 is used for virtualenv and virtualenvwrapper
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
# *root* reuses the virtualenvs in *ubuntu*'s home directory
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=/home/ubuntu/src
source /usr/local/bin/virtualenvwrapper.sh
Sudo python manage.py runserver 0.0.0.0:80
ポート80の管理者権限が必要です