質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

gunicornでDjangoプロジェクトが起動できない

arron
arron

総合スコア30

Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1回答

0リアクション

0クリップ

288閲覧

投稿2022/09/07 13:34

編集2022/09/09 04:14

前提

ローカルで作ったDjangoのプロジェクトをVPSサーバーに保存したあと、gunicornとnginxを使ってVPSサーバーからDjangoのプロジェクトが起動しようとしていますが、立ち上がりません。
エラーメッセージに転記したターミナルのコメントのを見ると、どうもgunicornがワークしていないようです。
user名やパスワードはgunicornとDjangoのsettings.pyで同じものを指定しています。

実現したいこと

VPSサーバーからのDjangoプロジェクト起動できるようにしたいです。

発生している問題・エラーメッセージ

#ブラウザに表示されるエラーメッセージです。 ERROR The requested URL could not be retrieved The following error was encountered while trying to retrieve the URL: http://"VPSサーバーのアドレス"/"プロジェクトのpath"/ Connection to "VPSサーバーのアドレス" failed. The system returned: (110) Connection timed out The remote host or network may be down. Please try the request again. Your cache administrator is root. #gunicornのステータスメッセージです。 (todoenv) root@ik1-413-38954:~/todoproject# sudo systemctl status gunicorn × gunicorn.service - gunicorn daemon Loaded: loaded (/etc/systemd/system/gunicorn.service; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Mon 2022-09-05 21:32:25 JST; 2 days ago TriggeredBy: ● gunicorn.socket Process: 202174 ExecStart=/home/ryota/todoproject/todoenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock todoproject.wsgi:application (code=exited, status=217/USER) Main PID: 202174 (code=exited, status=217/USER) CPU: 1ms Sep 05 21:32:25 ik1-413-38954 systemd[1]: Started gunicorn daemon. Sep 05 21:32:25 ik1-413-38954 systemd[202174]: gunicorn.service: Failed to determine user credentials: No such process Sep 05 21:32:25 ik1-413-38954 systemd[202174]: gunicorn.service: Failed at step USER spawning /home/ryota/todoproject/todoenv/bin/gunicorn: No such process Sep 05 21:32:25 ik1-413-38954 systemd[1]: gunicorn.service: Main process exited, code=exited, status=217/USER Sep 05 21:32:25 ik1-413-38954 systemd[1]: gunicorn.service: Failed with result 'exit-code'. (todoenv) root@ik1-413-38954:~/todoproject#

該当のソースコード

ubuntu

※基本的にUdemyの講座でベースとしているwebサイトの通りに入力しています。 "How To Set Up Django with Postgres, Nginx, and Gunicorn on Ubuntu 18.04" https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-18-04 #pip、PostgreSQL、Nginxのインストール sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl #データベーステーブルの作成 sudo -u postgres psql CREATE DATABASE myproject; CREATE USER myprojectuser WITH PASSWORD 'password'; ALTER ROLE myprojectuser SET client_encoding TO 'utf8'; ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE myprojectuser SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser; \q #リポジトリのclone #仮想環境の構築 #Djangoとgnicornのインストール pip install django gunicorn psycopg2-binary #settings.pyの設定 vim ~/todoproject/todoproject/settings.py ALLOWED_HOSTS = ['VPSのIP', ‘localhost’’] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'myproject', 'USER': 'myprojectuser', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } } STATIC_ROOT = os.path.join(BASE_DIR, 'static/') :wq #migration等のコマンドの実行 manage.py makemigrations manege.py migrate manage.py collectstatic manage.py createsuperuser #gunicornの起動確認 sudo ufw allow 8000 gunicorn --bind 0.0.0.0:8000 todoproject.wsgi #ブラウザでDjangoプロジェクトの確認 'VPSのIP':8000/'projectのurl' ※この段階で上記の"ブラウザに表示されるエラーメッセージ"が出てきます。  Udemyの講座でベースとしているwebサイトでいうとStep6の段階で先に進めなくなっています。

試したこと

1.'sudo -u postgres psql'を実行したときに、'could not change directory to "/root": Permission denied'と表示が出るのが気になったので、"PostgreSQL Bugs"というサイトのアドバイスをもとに以下を試しました。
https://granicus.if.org/pgbugs/16915

So, your problem is that you run sudo as the root user, and the root home
directory is more protected than other directories.

If you, for example run sudo -u postgres psql as another user, you will not
have the same (and only cosmetic) issue:

create user

useradd -m arne

give the user sudo rights

cat<<EOT >> /etc/sudoers
arne ALL=(ALL:ALL) NOPASSWD: ALL
EOT

root@c376851a8443:~# su - arne
$ sudo -u postgres psql
psql (13.1 (Debian 13.1-1.pgdg100+1))
Type "help" for help.

postgres=#
Or, you just run psql as postgres without using sudo when you are root.

root@c376851a8443:~# su - postgres -c psql
psql (13.1 (Debian 13.1-1.pgdg100+1))
Type "help" for help.

postgres=#
Or, you just ignore the error message and just run sudo -u postgres psql.

In a Postgres 12 container:

docker run -d --rm --name=postgres_12 -e POSTGRES_PASSWORD=password
postgres:12
docker exec -it postgres_12 bash

root@cd3b256e5e0b:/# sudo -u postgres psql
psql (12.5 (Debian 12.5-1.pgdg100+1))
Type "help" for help.

postgres=#

2.SakuraのVPSではデフォルトでユーザーがubuntuになっているので、"【Linux】SSHでログイン後にsuでrootになれない主な原因3選"というサイトを参考にして、rootに変更してみましたが結果は変わりませんでした。
https://ses-blog.net/archives/tshoot/1286.html

補足情報(FW/ツールのバージョンなど)

VPS:さくらのVPS
Ubuntu:Ubuntu 20.04.4 LTS \n \l
IDE:PyCharm 2022.2.1 (Community Edition)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

quickquip

2022/09/08 02:47

一番必要な gunicorn をどうセットアップしたのか? の情報がないように思います。 (私は一般ユーザで実行したことがないので私から回答できることはありませんが)
arron

2022/09/08 12:13

大変失礼いたしました。 該当のソースコードが抜けていました。 早速追記させていただきました。
arron

2022/09/09 01:00

度々すみません。ありがとうございます。 Step6で止まっている状況です。 /etc/systemd/system/gunicorn.service は、Step6までの作業に入っていないので特に編集した記憶ないです。
quickquip

2022/09/09 05:20

発生している問題のところで systemctl status gunicorn をしてたので7.が終わったところかと思って混乱しました。すみません。 gunicornをコマンド実行していてこの状態でと、コードは関係なくてVPSの方の状況/設定でアクセスを弾かれている気がします。
arron

2022/09/09 05:34

ありがとうございます! やっぱりVPNでしょうか。。 サポセンへの質問はちょっと緊張しますが、頑張って確認してみます。
arron

2022/09/09 07:31

サポセンに確認したところ、「弊社ではお客様のご利用いただく仮想サーバ内のシステム状況の把握や調査、トラブルシューティング等の技術的なサポートは承っておりません。」ということでした。(泣泣泣 VPSの設定については全く???なので、もし原因となっていそうなキーワード、ログの確認方法等手がかりがありましたら教えていただけますと、大変助かります。
quickquip

2022/09/09 08:14

個別の話ではなく「8000番ポートが許可されていますか?」みたいな聞き方でないといけなさそうですね。 https://vps.sakura.ad.jp/feature/packetfilter.html などで8000番の許可を明示的にするとかしてみたらどうでしょう。
arron

2022/09/09 08:35

サーバーのスペックを見たら、接続可能ポート“TCP 22”となっていました。 8000番のポートアクセスするにはどうしたら良いか、聞いてみれば良いということですね。 ありがとうございました。
arron

2022/09/09 12:56

サポセンからはゼロ回答ですが、マニュアルを参照してVPSのサーバーの設定でポートの解放を行いました。 その後、同じ内容でセットアップしましたが、やはりアクセスできませんでした。 このサイトにアクセスできませんwww.google.com からの応答時間が長すぎます。 次をお試しください 接続を確認する プロキシとファイアウォールを確認する Windows ネットワーク診断ツールを実行する ERR_CONNECTION_TIMED_OUT
arron

2022/09/09 13:11

追記 gunicornのエラーが解決されていませんでした。 × gunicorn.service - gunicorn daemon Loaded: loaded (/etc/systemd/system/gunicorn.service; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2022-09-09 21:45:18 JST; 23min ago TriggeredBy: × gunicorn.socket Process: 251739 ExecStart=/home/ryota/todoproject/todoenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock todoproject.wsgi:application (code=exited, status=217/USER) Main PID: 251739 (code=exited, status=217/USER) CPU: 1ms Sep 09 21:45:18 ik1-413-38954 systemd[1]: Started gunicorn daemon. Sep 09 21:45:18 ik1-413-38954 systemd[251739]: gunicorn.service: Failed to determine user credentials: No such process Sep 09 21:45:18 ik1-413-38954 systemd[251739]: gunicorn.service: Failed at step USER spawning /home/ryota/todoproject/todoenv/bin/gunicorn: No such process Sep 09 21:45:18 ik1-413-38954 systemd[1]: gunicorn.service: Main process exited, code=exited, status=217/USER Sep 09 21:45:18 ik1-413-38954 systemd[1]: gunicorn.service: Failed with result 'exit-code'. Sep 09 21:45:18 ik1-413-38954 systemd[1]: gunicorn.service: Start request repeated too quickly. Sep 09 21:45:18 ik1-413-38954 systemd[1]: gunicorn.service: Failed with result 'exit-code'. Sep 09 21:45:18 ik1-413-38954 systemd[1]: Failed to start gunicorn daemon.

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Gunicorn

Gunicorn (Green Unicorn)は、Rubyのunicornをベースに開発されたUNIX向けのPython製HTTPサーバです。他のライブラリとの依存関係がないため、容易にインストールして使用できます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。