2016-05-25 6 views
2

私はこの全体の設定にはとても新しくて、素敵にしてください。 devでこのコマンドは通常エラーなしで動作しますが、私はDjango sometingが異なるコマンドを試してきたので間違っています。Django:エラー:あなたはそのポートにアクセスする許可を持っていません

python manage.py runserver 0.0.0.0:80 

私はこのポートをもう使用できません。私はポート8080を使用することができますが、URLに通常のホスト名の最後にポートを追加すると、Webサイトは機能しません。私が80番ポートを使用した時、私は80番をURLに追加する必要はありませんでした。

ログファイルへのアクセス許可がないエラーが発生しましたが、そのファイルのアクセス許可が変更されました。私は今、私が許可を持っていない多くのものがあるようです。

Django 1.8.5。 仮想環境を使用すると、プロジェクトに2つのアプリがあります。

+2

にsudoのpython manage.pyのrunserver 0.0.0.0:80 – mtt2p

+0

私はあなたの質問を理解していません。あなたはuwsgiで 'runserver'を使用しません。 –

+2

そして@ mtt2pはお勧めしません。あなたは基本的にOPが生産のためにrunserverを使うことを奨励しています。 –

答えて

-1
sudo python manage.py runserver 0.0.0.0:80 

あなたがLinux上でなら、あなたはこのエラーを受け取りますポート80

+1

sudoをここに(あなたの答えで)追加してください。@ mtt2p –

+0

次に、ポートの管理者権限を取得する方法を教えてください。 – Helpme

+0

http://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user – mtt2p

0

のための管理者権限が必要です。

まず、Djangoには、非常に基本的な開発サーバーのがありません。デフォルトではポート8080が使用されています。

コマンドに

python manage.py runserver 

を実行するときに、その開発サーバーを起動するジャンゴ伝え、本番サーバーにデプロイする前に、あなたのWebアプリケーションをテストすることができますので、それが実行されます。

Django Documentation -> django-admin -> Run Server

サーバーにアクセスする方法は

localhost:8080 

は、デフォルトでは、ほとんどのHTTPアプリケーションはそうしない限り、ポート80上で実行するようにアドレスバーにURLにブラウザを使用してプラグインすることです述べました。たとえば、MySQLサーバはデフォルトでポート3306で動作します。

基本的に、ポートはあなたとあなたと連絡を取るためにあなたを接続する古い電話回線と考えることができます。

これは本当に特別なことは何もありません。あなたは基本的に基礎を得るためにボトルで遊ぶべきでしょう。ちょうど友好的な提案。

ウェブサイトの詳細を参照できます。 はセキュアではありませんが、sudoを使用してポート80で実行できますが、セキュリティ上の理由から避けるべきです。 mtt2p @

はなぜ

の偉大な仕事をしてserverfaultポストに言及している私は、ローカル接続のみを許可するようにサーバーを指示する方法があります確信している、しかし、あなただけの0.0.0.0:80ときに使用する必要があります自分の仕事を他の人に見せたり、他のデバイスであなたのウェブアプリがどのように見えるかを見たいと思っています。

長期的に見ると、sudoは、はるかに簡単で迅速ですが、怠惰で安全性に欠けます。

これは、virtualenvのコンテキストでそれを説明するリンクです。

Django runserver error when specifying port

答え状態

I guess the sudo command will run the process in the superuser context, and the superuser context lack virtualenv settings.

Make a shell script to set the virtualenv and call manage.py runserver, then sudo this script instead.

あなたはvirtualenvのベースのコンテキストを説明する答えも安全ではないことに注意してください。それはちょうどvirtualenvの外

sudo python manage.py runserver 80 

ない

sudo bash script-name 

として実行する必要があります。そうすることで、アプリケーションのサンドボックス化の目的が破られます。これを無視すると、race conditionにあなた自身が公開されます。

+0

sudo python manage.py runserver 192.168 .12.1:80これを試してください – Vaisakh

0

"aira"と呼ばれるvirtualenvを設定し、ルート環境にvirtualenvwrapperをインストールしました(/root/.bashrcのvirtualenvwrapper設定が下にあります)。これは私がするrunserver作業を取得するために一緒に-cにカスケード接続する必要があるのsudoコマンドの数を削減:あなたはvirtualenvwrapperせずにジャンゴアプリのvirtualenvを設定している場合

sudo sh -c "workon aira && python manage.py runserver --insecure 0.0.0.0:80" 

手動で正しいディレクトリに変更する必要がありますし、 sudoコマンドシーケンス内でvirtualenvを有効にしてください。私のvirtualenvはairaと呼ばれ、私は/root/.virtualenvsに私のvirtualenvsを保管しています。私のDjangoプロジェクトは、Ubuntuのユーザのホームディレクトリにある:あなたは、あなたがのrunserverするsudoを使用することができますジャンゴと系サイトパッケージであなたのrequirements.txtをインストールしている場合

sudo sh -c "source $HOME/.virtualenvs/aira/bin/activate && cd /ubuntu/src/aira/ && python manage.py runserver --insecure 0.0.0.0:80" 

sudo python manage.py runserver --insecure 0.0.0.0:80" 

--insecureオプションは、静的な資産(画像、CSS、JavaScriptを)提供するためにstaticfilesすることができます。完全のために

、Ubuntuの16.04で/root/.bashrcで私virtualenvwrapper構成変数をhere're:

# 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 
+0

Ubuntuはbashを使うので、 'sudo sh'を実行する代わりに' sudo bash'を実行する必要があります。ほんの少しの変更。 –

関連する問題