専用ユーザーの作成
[takatoh@bigswifty ~]$ sudo useradd lcstorage [sudo] takatoh のパスワード: [takatoh@bigswifty ~]$ sudo passwd lcstorage ユーザー lcstorage のパスワードを変更。 新しいパスワード: よくないパスワード: このパスワードには一部に何らかの形でユーザー名が含まれています。 新しいパスワードを再入力してください: passwd: すべての認証トークンが正しく更新できました。
よくないパスワードとか言われてるけど無視。sudo
する権利をつける。
[takatoh@bigswifty ~]$ sudo usermod -G wheel lcstorage
ここからは新しいユーザーでの作業になるので、ログインし直し。
bottleアプリの配置
bitbucket.org から clone。
[lcstorage@bigswifty ~]$ git clone https://[email protected]/takatoh/lathercraft-storage-py.git lcstorage Cloning into 'lcstorage'... Password for 'https://[email protected]': remote: Counting objects: 127, done. remote: Total 127 (delta 0), reused 0 (delta 0) Receiving objects: 100% (127/127), 13.63 KiB | 0 bytes/s, done. Resolving deltas: 100% (55/55), done.
中に入って virtualenv を作成。
[lcstorage@bigswifty ~]$ cd lcstorage [lcstorage@bigswifty lcstorage]$ virtualenv env New python executable in /home/lcstorage/lcstorage/env/bin/python2 Also creating executable in /home/lcstorage/lcstorage/env/bin/python Installing setuptools, pip, wheel... done. [lcstorage@bigswifty lcstorage]$ source env/bin/activate (env) [lcstorage@bigswifty lcstorage]$
依存ライブラリのインストール。
(env) [lcstorage@bigswifty lcstorage]$ pip install -r requirements.txt Collecting PyYAML==3.12 (from -r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/4a/85/db5a2df477072b2902b0eb892feb37d88ac635d36245a72a6a69b23b383a/PyYAML-3.12.tar.gz (253kB) 100% |████████████████████████████████| 256kB 6.9MB/s Collecting bottle==0.12.10 (from -r requirements.txt (line 2)) Downloading https://files.pythonhosted.org/packages/5c/a9/f157af11b37834db992b14e43ade37a1bdc141485657cfa36dc1d99420a6/bottle-0.12.10-py2-none-any.whl (88kB) 100% |████████████████████████████████| 92kB 8.9MB/s Collecting requests==2.12.3 (from -r requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/84/68/f0acceafe80354aa9ff4ae49de0572d27929b6d262f0c55196424eb86b2f/requests-2.12.3-py2.py3-none-any.whl (575kB) 100% |████████████████████████████████| 583kB 8.1MB/s Building wheels for collected packages: PyYAML Running setup.py bdist_wheel for PyYAML ... done Stored in directory: /home/lcstorage/.cache/pip/wheels/03/05/65/bdc14f2c6e09e82ae3e0f13d021e1b6b2481437ea2f207df3f Successfully built PyYAML Installing collected packages: PyYAML, bottle, requests Successfully installed PyYAML-3.12 bottle-0.12.10 requests-2.12.3
アプリの設定ファイルを作って、起動確認。設定はとりあえずはデフォルトのままで。
(env) [lcstorage@bigswifty lcstorage]$ cp config.yaml.example config.yaml (env) [lcstorage@bigswifty lcstorage]$ python index.py Bottle v0.12.10 server starting up (using WSGIRefServer())... Listening on http://0.0.0.0:8080/ Hit Ctrl-C to quit.
よし、大丈夫そうだ。じゃ、virtualenv をぬけて uWSGI に行くぞ。
uWSGIで起動
まずは uWSGI のインストール。
[lcstorage@bigswifty lcstorage]$ sudo pip install uwsgi Collecting uwsgi Using cached https://files.pythonhosted.org/packages/a2/c9/a2d5737f63cd9df4317a4acc15d1ddf4952e28398601d8d7d706c16381e0/uwsgi-2.0.17.1.tar.gz Installing collected packages: uwsgi Running setup.py install for uwsgi ... done Successfully installed uwsgi-2.0.17.1 You are using pip version 8.1.2, however version 18.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
上では省略しちゃったけど、最初のインストールの時にエラーが出て、sudo yum install gcc python2-devel
しなきゃならなかった。
ともかくインストールできたので、コマンドラインから起動してみる。
[lcstorage@bigswifty lcstorage]$ uwsgi --http :8080 --wsgi-file index.py -H env
他のマシンからアクセスしたら、ちゃんと動いていたのでOK。
設定ファイルを書く。
[uwsgi]
uid = lcstorage
gid = lcstorage
http = :8080
venv = /home/lcstorage/lcstorage/env
wsgi-file = /home/lcstorage/lcstorage/index.py
master = true
pidfile = /home/lcstorage/lcstorage/lcstorage.pid
logger = file:/home/lcstorage/lcstorage/lcstorage.log
起動確認。
[lcstorage@bigswifty lcstorage]$ uwsgi lcstorage.ini [uWSGI] getting INI configuration from lcstorage.ini
OK。大丈夫そうだ。
とりあえずここまで。