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

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

ただいまの
回答率

89.86%

AWS EC2+mod_wsgi+DjangoでWebページを公開しようと思ってます。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,781

takaaki82

score 24

現在Django1.11.2を使ってローカルで開発したwebページを公開しようと思ってます。
AWS EC2 Amazon linuxでサmod_wsgiでサーバー構築し公開しようとしましたが
エラーが発生しDjangoが動きません。

以下エラーのログです。
less /var/log/httpd/error_log

[Mon Aug 14 00:48:32 2017] [notice] Apache/2.2.32 (Unix) DAV/2 mod_wsgi/3.2 Python/2.6.9 configured -- resuming normal operations
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17318): Unable to import 'site' module.
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17317): Unable to import 'site' module.
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17319): Unable to import 'site' module.
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17316): Unable to import 'site' module.
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17321): Unable to import 'site' module.
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17315): Unable to import 'site' module.
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17322): Unable to import 'site' module.
[Mon Aug 14 00:48:32 2017] [error] mod_wsgi (pid=17320): Unable to import 'site' module.
[Mon Aug 14 00:48:42 2017] [error] mod_wsgi (pid=17318): Unable to import 'site' module.
[Mon Aug 14 00:48:42 2017] [error] [client ---------] mod_wsgi (pid=17318): Target WSGI script '/var/www/cgi-bin/hatenk_project/hatenk_project/wsgi.py' cannot be loaded as Python module.
[Mon Aug 14 00:48:42 2017] [error] [client ---------] mod_wsgi (pid=17318): Exception occurred processing WSGI script '/var/www/cgi-bin/hatenk_project/hatenk_project/wsgi.py'.
[Mon Aug 14 00:48:42 2017] [error] Traceback (most recent call last):
[Mon Aug 14 00:48:42 2017] [error]   File "/var/www/cgi-bin/hatenk_project/hatenk_project/wsgi.py", line 2, in <module>
[Mon Aug 14 00:48:42 2017] [error]     import os
[Mon Aug 14 00:48:42 2017] [error] ImportError: No module named os
[Mon Aug 14 00:48:44 2017] [error] mod_wsgi (pid=17317): Unable to import 'site' module.
[Mon Aug 14 01:02:44 2017] [error] mod_wsgi (pid=17321): Unable to import 'site' module.
[Mon Aug 14 01:02:46 2017] [error] mod_wsgi (pid=17315): Unable to import 'site' module.
[Mon Aug 14 01:02:46 2017] [error] [client ---------] File does not exist: /var/www/cgi-bin/hatenk_project/templates/favicon.ico, referer: http://xxxxxxxx/test
[Mon Aug 14 01:03:34 2017] [error] mod_wsgi (pid=17320): Unable to import 'site' module.
[Mon Aug 14 01:03:34 2017] [error] [client --------] File does not exist: /var/www/cgi-bin/hatenk_project/templates/favicon.ico, referer: http://xxxxxx/test
[Mon Aug 14 01:32:32 2017] [error] mod_wsgi (pid=17319): Unable to import 'site' module.

python.conf

# mod_wsgiの読み込み
#LoadModule wsgi_module /home/ec2-user/ENV/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonHome /var/www/python/venv/bin/python
WSGIPythonPath /var/www/python/venv/lib/python3.6/site-packages

#LoadModule wsgi_module /var/www/python/venv/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.so
#3WSGIPythonHome /var/www/python/venv
#WSGIPythonPath /var/www/python/venv/lib/python3.6/site-packages

# /test というリクエストに対して、/var/www/cgi-bin/hello.py 返す。
WSGIScriptAlias /test /home/ec2-user/hello.py
# /test_django というリクエストに対して、/var/www/cgi-bin/hatenk_project/hatenk_project/wsgi.py 返す。
WSGIScriptAlias /hatenk /var/www/cgi-bin/hatenk_project/hatenk_project/wsgi.py
WSGIPythonPath /var/www/cgi-bin/hatenk_project
# /var/www/cgi-bin/hatenk_project/hatenk_projectのアクセス制限を設定
<Directory /var/www/cgi-bin/hatenk_project/hatenk_project>
Order deny,allow
Allow from all
</Directory>

<Directory /var/www/cgi-bin/hatenk_project/static>
        <Files wsgi.py>
            Require all granted
        </Files>
</Directory>

wsgi.conf

LoadModule wsgi_module /home/ec2-user/ENV/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

WSGIPythonHome /home/ec2-user/ENV
WSGIPythonPath /home/ec2-user/ENV/lib/python3.6/site-packages

mod_wsgi path
var/www/python/venv/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so

これまでの流れとしては
ローカルで python manage.py runserver
で動作することを確認しました。

その後AWS EC2 でAmazon linuxでサーバーを構築しようと試みました。
以下ページを参照しながら進め,'Hello World!'をブラウザに出力するところまではできました。
http://akiniwa.hatenablog.jp/entry/2013/09/24/150412

その後Djangoについても同様に進めていくと
上記のエラーが発生しました。

python3.6を指定しているのですがpython2.6.9になっていることが原因だと考えられます。pathを追加するなどしてみたのですがうまくいきませんでした。
回答お願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

ご質問されているエラーの対処法はわからなくて恐縮ですが、初めてDjangoを公開されるのであればElastic Beanstalkという、PythonやWSGIの環境が構築済みのサービスを利用されるのもいいのかなって思います。

Deploying a Django App to AWS Elastic Beanstalk | Real Python

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/14 14:22

    回答ありがとうございます。
    elastic beanstalkで試してみようと思います。また疑問があれば質問したいと思ってます。よろしくお願いします。

    キャンセル

  • 2017/08/15 09:17

    上記の参考URLの通りに進めて無事deployできたのですが
    staticfilesが読み込まれていないようです。開発用と本番ではhtmlからのcssの読み込みなど変更する部分はありますか?

    キャンセル

  • 2017/08/15 13:17

    ファイル構造、manage.py collectstaticしたときの出力先ディレクトリ、02_python.configに記載のstaticfileディレクトリ確認しましたか??

    多分ローカルではmanage.py runserverでサーバー起動してるかと思いますが、EBの環境にあげるとwsgi.pyが実行されます。そこで読み込まれるstaticfileのディレクトリの違いが発生します

    キャンセル

  • 2017/08/15 15:47

    わかりました。もう一度確認してみます。

    キャンセル

0

Elastic Beanstalkにより無事デプロイできました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.86%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる