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

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

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

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

1回答

3023閲覧

djangoアプリをapaccheにデプロイしたい

yamatar

総合スコア4

Django

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2020/10/23 07:41

編集2020/10/25 23:25

前提・実現したいこと

djangoアプリがrunserverで問題なく動くようになったので、
作ったアプリを公開できるようにしたいです。
apacheインストール後に"It works!"は表示されています。
アドレスバーに設定したservernameを入力すると、
"申し訳ございません。このページに到達できません"となります。
"localhost"と入力すると"It works!"が表示されます。
これは、apacheは稼働しているが、djangoアプリへのパスが上手くできていない
ということでしょうか?

本件に関してはdjango、apache、デプロイで検索した様々なサイトを参考にしています。

サーバー構築は初めてのため、あまり理解していません。
不足している、間違っているところを教えていただきたいです。
よろしくお願いいたします。

*インストールしたmod_wsgiはC:/Apache24/modulesに移動させています。
*djangoアプリはanacondaの仮想環境に作っています。

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

windows10
python3.6
anaconda3
django3.0.7
postgresql
apache2.4.46(win64)
mod_wsgi.cp36-win_amd64.pyd

エラーメッセージ

apacheのエラーログ

errorlog

1Starting the 'Apache2.4' service 2The 'Apache2.4' service is running. 3pm_winnt:notice] [pid 6208:tid 576] AH00455: Apache/2.4.46 (Win64) mod_wsgi/4.7.1 Python/3.6 configured -- resuming normal operations 4[Mon Oct 26 07:44:49.169436 2020] [mpm_winnt:notice] [pid 6208:tid 576] AH00456: Apache Lounge VS16 Server built: Oct 2 2020 11:45:39 5[Mon Oct 26 07:44:49.169436 2020] [core:notice] [pid 6208:tid 576] AH00094: Command line: 'C:\Apache24\bin\httpd.exe -d C:/Apache24' 6[Mon Oct 26 07:44:49.169436 2020] [mpm_winnt:notice] [pid 6208:tid 576] AH00418: Parent: Created child process 8632 7[Mon Oct 26 07:44:49.841190 2020] [mpm_winnt:notice] [pid 8632:tid 680] AH00354: Child: Starting 64 worker threads. 8

該当のソースコード

以下以外は触っていないと思う
httpd.conf

conf

1#### 追加 2ServerName www.map-test999.net:80 3 4LoadFile "c:/users/map/anaconda3/envs/Dj/python36.dll" 5LoadModule wsgi_module "c:/Apache24/modules/mod_wsgi.cp36-win_amd64.pyd" 6WSGIPythonHome "c:/users/map/anaconda3/envs/Dj" 7WSGIPythonPath "C:/Users/map/PycharmProjects/geoDj/new_dj/" 8WSGIScriptAlias /geodj "C:/Users/map/PycharmProjects/geoDj/new_dj/geodj/wsgi.py" 9WSGIApplicationGroup %{GLOBAL} 10 11<Directory "C:/Users/map/PycharmProjects/geoDj/new_dj/geodj"> 12 <Files "wsgi.py"> 13 Require all granted 14 </Files> 15</Directory> 16 17Alias /static "C:/Users/map/PycharmProjects/geoDj/new_dj/map/static" 18<Directory "C:/Users/map/PycharmProjects/geoDj/new_dj/map/static"> 19 Require all granted 20</Directory> 21#### ~ここまで追加

wsgi.py

python

1import os 2import sys 3import site 4from django.core.wsgi import get_wsgi_application 5### 追加 6site.addsitedir("C:/Users/map/anaconda3/envs/Dj/Lib/site-packages") 7sys.path.append("C:/Users/map/PycharmProjects/geoDj/new_dj") 8sys.path.append("C:/Users/map/PycharmProjects/geoDj/new_dj/geodj") 9#### ~ここまで追加 10os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'geodj.settings') 11 12application = get_wsgi_application()

setting.py

python

1ALLOWED_HOSTS = [ 2 '*' # 追加 3]

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これは、apacheは稼働しているが、djangoアプリへのパスが上手くできていない

ということでしょうか?

いいえ。djangoは関係ありません。
localhost用のvirtualhostを設定して無いならデフォルトconfを読んで正常に稼働しているという事です。

アドレスバーに設定したservernameを入力すると、

"申し訳ございません。このページに到達できません"となります。

存在しないURLを指定するからです。
テスト用にローカルで試したいのならhostsにドメインとIPの紐付けを書きましょう。
windowsのhosts設定方法は検索すればいくらでも出るので検索しましょう。

投稿2020/10/25 23:33

hentaiman

総合スコア6415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamatar

2020/10/26 07:01

ご回答いただきありがとうございます。 hostsファイルにIPとservernameを設定し、apacheをリスタートしたところ、 internal errorが発生しました。 apacheのエラーログにはwsgi:error, winerror127が記録されています。 wsgierrorとはwsgi.pyに書いてあるコードが間違っているということでしょうか? apacheのエラーログ: [mpm_winnt:notice] [pid 1560:tid 648] AH00455: Apache/2.4.46 (Win64) mod_wsgi/4.7.1 Python/3.6 configured -- resuming normal operations [mpm_winnt:notice] [pid 1560:tid 648] AH00456: Apache Lounge VS16 Server built: Oct 2 2020 11:45:39 [core:notice] [pid 1560:tid 648] AH00094: Command line: 'C:\Apache24\bin\httpd.exe -d C:/Apache24' [mpm_winnt:notice] [pid 1560:tid 648] AH00418: Parent: Created child process 12880 [mpm_winnt:notice] [pid 12880:tid 700] AH00354: Child: Starting 64 worker threads. [wsgi:error] [pid 12880:tid 1196] [client fe80::103a:99cd:56b2:74e0:60991] mod_wsgi (pid=12880): Failed to exec Python script file 'C:/Users/map/PycharmProjects/geoDjango/new_dj/geodj/wsgi.py'. [wsgi:error] [pid 12880:tid 1196] [client fe80::103a:99cd:56b2:74e0:60991] mod_wsgi (pid=12880): Exception occurred processing WSGI script 'C:/Users/map/PycharmProjects/geoDjango/new_dj/geodj/wsgi.py'. [wsgi:error] [pid 12880:tid 1196] [client fe80::103a:99cd:56b2:74e0:60991] Traceback (most recent call last):\r ~~省略~~ [wsgi:error] [pid 12880:tid 1196] [client fe80::103a:99cd:56b2:74e0:60991] OSError: [WinError 127] \xe6\x8c\x87\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe3\x83\x97\xe3\x83\xad\xe3\x82\xb7\xe3\x83\xbc\xe3\x82\xb8\xe3\x83\xa3\xe3\x81\x8c\xe8\xa6\x8b\xe3\x81\xa4\xe3\x81\x8b\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82\r
hentaiman

2020/10/26 11:47

そうなりますね、windowsでapache使った事ないのでwindowsが原因だとしたら分かりませんが、見た感じ問題は無さそうなので エイリアスの指定通りのリクエストしてますよね?URL間違えたりしてませんよね? 一旦エイリアスとかを独自に設定するのやめて公式ドキュメント通り「/」にしてみたらどうですか?
yamatar

2020/10/27 02:34

Alias部分を削除、WSGIScriptAlias / "C:/Users/ ~略"に修正したましたが、 internal errorのままです。 apacheのエラーログには新たにRuntimEerrorが発生しました。 何がダメなのかさっぱりわからず途方に暮れています。 apacheのエラーログ ~略~ [wsgi:error] [pid 4648:tid 1196] [client fe80::103a:99cd:56b2:74e0:53320] raise RuntimeError("populate() isn't reentrant")\r, referer: http://www.map-test999.net/ [wsgi:error] [pid 4648:tid 1196] [client fe80::103a:99cd:56b2:74e0:53320] RuntimeError: populate() isn't reentrant\r, referer: http://www.map-test999.net/
hentaiman

2020/10/27 04:37

見た感じdjangoへの接続は正常に出来たようで良かったですね。 これで質問は解決としてください。 今出ているエラーについてはこれまでのapacheへの理解不足とは全く別物なので、一旦自分でエラーを検索するなりして修正を試みてください。 それでダメなら試した内容を記載しつつ新たに質問を立ててください。
yamatar

2020/10/27 05:42

エラーについて調べてみます。 ありがとうございました。
hentaiman

2020/10/27 05:47

django詳しくないので明確な事は言えないけど、ちょっと調べたところ必要なモジュールのインストール漏れだったりdjangoの特定のバージョンのバグが原因だったりするらしいので、次に質問する時はその辺りの情報も含めて質問すると良いでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問