mod_wsgi 4.7.1 install とdjango環境設定

前回の続きで、Apachepythonの橋渡しをしてくれるmod_wsgiのinstallです。これもソースコードからinstallします。
うまく、wgetで取得できなかったので、Webブラウザ経由でここから取得しました。

ここからapacheとmod_wsgiを関連付けるの設定になります。

  • httpd.conf
    /usr/local/src/apache2/conf/httpd.confに下記を追記します。
    LoadModuleが記載されている最後に下記を追記します。
    LoadModule wsgi_module modules/mod_wsgi.so

    最後にwsgi module関連を設定するため外部ファイルへincludeを追記します。<IfModule wsgi_module>
      Include conf/extra/wsgi.conf
    </IfModule>
    2カ所追記してhttpd.confを保存します。
  • extra/wsgi.conf
    /usr/local/src/apache2/conf/extra/wsgi.confを新規作成します。
    djangoでの環境を下記とします。
    アプリのディレクトリを/hoge/hoge/application
    wsgi.pyのあるディレクトリを/hoge/hoge/application/application/wsgi.py
    WSGIScriptAlias / /hoge/hoge/application/application/wsgi.py
    WSGIPythonPath /hoge/hoge/application
    <Directory /hoge/hoge/application/application/>
      <Files wsgi.py>
        Require all granted
      </Files>
    </Directory>
    Alias /static/ /hoge/hoge/application/static/
    <Directory /hoge/hoge/application/static>
      Require all granted
    </Directory>
  • apacheを再起動
    $ sudo /usr/local/apache2/bin/apachectl stop
    $ sudo /usr/local/apache2/bin/apachectl start

最後に、設定してみたけど動かない場合は、下記を確認するといいと思います。

  • apacheの設定は記載ミスがあったりするので、http -tでチェックしてくれます。
  • apahceのログファイルは、/usr/local/apache2/logsにerror.logに出力されています。
  • python + djangoでの問題もあるかもしれません。そんなときは、下記のコマンドで単独で起動してみましょう。
    $ python manage.py runserver
    これでエラーが出力される場合は、python + djangoの問題の可能性が高いです。pipでのinstallが異なっている可能性があります。確認してみてください。
  • 最後にエラー出力でわからない場合は、エラーメッセージをgoogle検索してみるといいでしょう。何かしらのヒントになるかもしれません。

下記サイトを参考にしました。ありがとうございます。

tomoprog.hatenablog.com

www.mk-mode.com

www.yoheim.net

www.unknownengineer.net

qiita.com

 

 

Apache 2.4 install

前回に引き続き、tinker board sで、djangoでの実行環境を構築します。

始めに関連するライブラリをinstallします。
ファイルを作成したり、コピーするので、作業ユーザに関しては、適宜権限を付与してください。

apr

apr-util

pcre

apache

apacheの起動

  • 設定ファイルを変更します
    /usr/local/apache2/conf/httpd.confにあるServerNameを環境に合わせて変更します。
  • apacheを起動します
    $ sudo /usr/local/apache2/bin/apachectl start
  • ネットワークにつながっている他のPCからブラウザからアドレスをhttp:// ServerName もしくは、tinker board sに割り振られているIPアドレス http:// xxx.xxx.xxx.xxxに指定するとapacheのページ("It works!"の文字列が表示)が表示されます。
    ※port番号が1024以上であれば、ユーザ権限でも起動できます。

次は、mod_wsgiをinstallします。

 

mod_wsgi

前回、Pythonをインストールしたので、次はmod_wsgiをインストールしてみた。

が、エラーが表示され、起動できない。

/mod_wsgi-py37.cpython-37m-arm-linux-gnueabihf.so: unexpected reloc type 0x03

よくよく考えてみた。

 ソースコードPythonはインストールしたが、他のモジュール(特にmod_wsgi)は、apt-getだった。おそらくapt-getしたmod_wsgiソースコードでインストールしたPythonで問題が発生しているようだ...

 apt-getはすべてのアプリやライブラリでこれらの問題(ライブラリのバージョンが異なることで動作しないとか、依存するアプリやライブラリがインストールされていない...)を解決して提供しているわけだ。

 ということで、mod_wsgiとApachもソースコードからインストールするか。

Python3.7.7 環境構築

Tinker Board S(Debian)でPythonの最新環境(3.7.7)作成するとき、

./configure --enable-optimizationsをつけてコンパイルすると下記のエラーメッセージが出る。

error: the control flow of function ‘PyCurses_ConvertToString.isra.0’ does not match its profile data (counter ‘arcs’) [-Werror=coverage-mismatch]

検索すると、どうも--enable-optimizationsのオプションに問題があるようだ。

下記コマンドでPython3のinstallができる。

./configure --enable-shared LDFLAGS=-Wl,-rpath,

sudo make/make altinstall

sudo ln -fns /usr/local/bin/python3.7 python3

 あとは、pipやらvirtualenvして問題なし。

 

このサイトが参考になりました。ありがとうございます。

https://www.mk-mode.com/blog/2020/01/05/debian-10-python-3-7-installation-by-src/#

 

 

始めての投稿

コロナとか色々世間では騒がしく、自宅でモヤモヤしているので、ブログでも始めてみました。自宅でもpython使ってちょこちょこと開発もどきのことをしているので、情報共有でもできたらと思って始めました。