Tex, python, illusrator, VPSの学生ノート

latotex-blog

conohaVPS Python

conohaVPS(+kusanagi)でpython環境を作ったらnginxでエラー

投稿日:






yumなどのパッケージ管理のコマンドは便利ですが、確認をしてからインストールをしないと

かんたんkusanagiで開設したサイトが開かないなどのトラブルが起こります。

実際、私が経験したトラブルを紹介します。

この記事の内容を一言で表すと、以下のようなyumコマンドにyオプションをつけてはダメ!ということです(笑)

$ sudo yum -y install packagename 

スポンサーリンク

python環境を作るためにインストールしたもの

・python3.8(ソースから)

・PROJ, GEOS(cartopyを使いたかったので)

・Feh(画像ビューワー)

・Geany(エディタ)

かんたんkusanagiのDNS設定が完了するまで、これらのインストールを進めていました。

問題発生:nginx: [error] lua_load_resty_core failed to load the resty.core module

3日後にkusanagi管理画面からwordpressにログインしようとしても、「404 not found nginx」となり、

サイトが立ち上がらない状態になりました。

そこで、

$ cat /var/log/nginx/error.log

を確認したところ以下のようなメッセージがありました。

$[error] lua_load_resty_core failed to load the resty.core module from https://github.com/openresty/lua-resty-core; ensure you are using an OpenResty release from https://openresty.org/en/download.html (rc: 2, reason: module 'resty.core' not found:
         no field package.preload['resty.core']
         no file './resty/core.lua'
         no file '/usr/local/share/lua/5.1/resty/core.lua'
         no file '/usr/local/share/lua/5.1/resty/core/init.lua'
         no file './resty/core.so'
         no file '/usr/local/lib/lua/5.1/resty/core.so'
         no file '/usr/local/lib/lua/5.1/loadall.so'
         no file './resty.so'
         no file '/usr/local/lib/lua/5.1/resty.so'
         no file '/usr/local/lib/lua/5.1/loadall.so'
      

よし!resty.core moduleを入れようとおもい、

https://github.com/openresty/lua-resty-core

からインストールしました。インストールしたときの表示はこちら。

install -d /usr/local/lib/lua//resty/core/
         install -d /usr/local/lib/lua//ngx/
         install -d /usr/local/lib/lua//ngx/ssl
         install lib/resty/*.lua /usr/local/lib/lua//resty/
         install lib/resty/core/*.lua /usr/local/lib/lua//resty/core/
         install lib/ngx/*.lua /usr/local/lib/lua//ngx/
         install lib/ngx/ssl/*.lua /usr/local/lib/lua//ngx/ssl/
     

またPATHの設定が必要だそうなので、httpのディレクティブのどこかにlua_package_pathをいれます。

PATHをいれる/etc/nginx/nginx.confは重要な設定ファイルですので、以下のようにコピーを必ず作ってください。

$ cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf_default
## nginx.conf
     http {
         server_tokens off;
         include /etc/nginx/mime.types;
         default_type application/octet-stream;
         charset UTF-8;
         server_names_hash_bucket_size 128;

         lua_package_path "/usr/local/lib/lua/?.lua;;";

       }
       #httpの中身は一部だけ表示しています
    

ngxやsslなど余計なものが入っていますが、いくつかno fileは消えているだろうと/var/log/nginx/error.logを確認すると・・・

[error] : lua_load_resty_core failed to load the resty.core module from https://github.com/openresty/lua-resty-core;
     ensure you are using an OpenResty release from https://openresty.org/en/download.html
     (rc: 2, reason: /usr/local/lib/lua/resty/core/base.lua:23: ngx_http_lua_module 0.10.16 required)
    

ngx_http_lua_module 0.10.16 が必要ならば、それをインストールしようじゃないか。と思ったら・・・

ngx_http_lua_moduleはもとのNgnixにはないものであり、ngnixで構築するには細かな設定が必要とのこと。

また、このモジュールはnginxのコアと相性が悪く、機能や動作に悪影響を及ぼすそうです。

スポンサーリンク

断念し、別の方法でpython環境構築に挑戦した結果

conohaのイメージ保存で再構築をし、pyenvを利用してAnacondaをインストールしてpython環境を作り直しました。

諸々インストールする過程で気づいたことは、yumで(pythonと関係ないのに!)kusanagi関係のインストールを勧められたことです。

勧められたkusanagiパッケージのインストールをすべて断ってインストールを進めると、無事にpython環境を作ることができました!

改めてyumでyオプションを使うのは危険だということが分かりました・・・・

こうしてできたpython環境で作った図について記事にしているので良かったら読んでください!

Pythonでcartopyを使い、国・地域をまとめて色づけする

参考にしたサイト様

ngx_http_lua_moduleについて
https://code.i-harness.com/ja-jp/docs/nginx_lua_module/index#installation

lua_package_pathの設定方法について
https://github.com/openresty/lua-nginx-module/issues/1533

-conohaVPS, Python

Copyright© latotex-blog , 2020 All Rights Reserved Powered by STINGER.