kuroの覚え書き

96の個人的覚え書き

flaskで作ったアプリをdaemon化してserviceとして起動する(導入編)

Flaskで作ったアプリをサーバに置いて本格的に運用するなら、いちいちコマンドラインから起動するのは面倒くさい。
サーバを再起動する度にvncでログインして起動して、ログインしたまんまにしておかないとならないというのではイマイチだ。

最初apacheをwwwサーバとしてmod_wsgiを使ってflaskアプリを動かそうかと思ったが、今時はnginxというのをリバースプロキシとして動作させてgunicornかuWSGIというWSGIサーバを通してpythonで作ったアプリを動かすのがメジャーらしい。

とりあえず現状apacheが動いていることだしmod_wsgiを入れてどうにかするか?という方針でいってみる。

早速
$ pip install mod_wsgi
とインストールを試みると

/usr/bin/ld: /home/kuro/.pyenv/versions/3.6.1/lib/libpython3.6m.a(abstract.o): 再配置 R_X86_64_32S (`_Py_NotImplementedStruct' に対する) は共有オブジェクト作成時には使用できません。-fPIC を付けて再コンパイルしてください。
    /home/kuro/.pyenv/versions/3.6.1/lib/libpython3.6m.a: error adding symbols: 不正な値です
    collect2: エラー: ld はステータス 1 で終了しました
    error: command 'gcc' failed with exit status 1

こんな感じでエラーが出る。
このエラーを回避するには、
>||
$ CFLAGS="-fPIC" pyenv install 3.6.1
|