LoginSignup
0
0

More than 5 years have passed since last update.

ubuntu16.04LTS/apache2/django で wsgi

Last updated at Posted at 2018-03-06

いつもながら apache2 / wsgiで django app を起動設定するのに苦労したのでメモ。

症状
- httpsで繋がらない。 HTTP 500エラーが帰る。

確認手順
1) firewallでブロックしていないかsudo ufw statusで確認する。 443 ALLOW Anywhereなどがあれば、通常のHTTPアクセスが可能。 なければ、ポートを使えるように設定する。(sudo ufw allow from any to any port 443)
2) /var/log/apache2/error.log や /var/log/apache2/access.logにエラーがないか? あればそれを調べる。
3) port 443 (HTTPS)をlistenしているプロセスがあるかsudo lsof -i4TCPで確認する。 443で聞いているプロセスがない場合は、wsgi,sslの設定を確認する。
4) wsgiは有効になっている?https://qiita.com/shigechioyo/items/2b25f60918be6b81581a などに沿って有効化する。あとで分からなくなるといけないので、venv(virtualenv)下で、pipでインストールするのがおすすめ。 /etc/apache2/mods-available/wsgi.loadファイルをpip でインストールしたwsgiのパスに合わせて定義する必要があるので注意。作成したvenvディレクトリの内部をさすようになる。

私の例では、 4)でerror.logに次のログが出た。

[Tue Mar 06 14:32:30.116164 2018] [wsgi:error] pid 2170:tid xxx140125119969024No such file or directory: [client xxxxxx:63036] mod_wsgi (pid=2170): Unable to connect to WSGI daemon process 'xxxxx.yukilab.cc' on '/etc/apache2/run/wsgi.2167.0.1.sock' as user with uid=33., referer: https://xxxxxxx.yukilab.cc/

5) sudo apachectl configtestしてみる。通ればOK。通らなかったら直す。
6) WSGISocketPrefix のディフォルトは run/wsgiになっているが、ubuntuではそれでは root以外利用できないので、 /var/run/wsgiに修正したあと、sudo service apache2 restart する。ここでエラーが発生せず、接続できるようになった。 (参考: https://code.google.com/archive/p/modwsgi/wikis/ConfigurationIssues.wiki )

まだ、アプリケーションレベルのエラーがあるけど、apache/wsgiの設定は終了!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0