python3 と uWISGI と Nginx で web アプリケーション制作環境を整えてみる

スポンサーリンク

webアプリをつくろうと思い立ってみる

最近、ちょっと特殊な形で写真を管理したいと考えています。

どう特殊かというと、写真に写っている「文字」を OCR(画像の中の文字を認識すること)で文字ごとに管理。

テキスト検索していつでも呼び出せるようにしたい。

というものです。

まあ、既存のアプリ(Evernoteとか?)を利用すれば、すぐに実現できるとは思うのですが。

とはいえ、そういったアプリは「名刺スキャン」を前提としていたりするので、個人的に考えている OCR 機能とは合致しない面も多少あります。

そういうちょっとした「ズレ」をなくしたいということも含め、趣味がてら自分でも作ってみようと思います。

その結果、「webアプリ」を作ってみようと思ったわけです。

言語は Python を利用

以前はよく使う機会があったんですが。

最近使う機会がまったくない Python を触りたい。

という思いもありましたので、言語は Python で決定。

最近は PHP を触る機会が多いので PHP を使った方が勉強になるのかもしれませんが…。

まあ、Python を使いたいわけですよ。

webアプリなので、サーバーを準備

今回は「個人利用」を想定しています。

ほぼ間違いなく、一般公開はしません。あくまで個人利用。

なので、ミニマムなサーバーで OK。のはず。

ということで用意したのは、「ServersMan@VPS
」。



こちらを利用します。

ここに、web アプリに必要な環境を構築していきます。

Serversman@VPS についてはこちらをご参照ください。

ServersMan@VPS でGit サーバーを構築してみる
Git 環境をもっと良くしよう 普段は、お仕事がらみで Git を使っています。 個人でももっと利用したいなあ。 と、しば...

フレームワーク「bottle」を使ってみる

Ruby で web アプリを構築しようと「Rails」が有名なように Python にも「Django」というのがあります。

以前、私が Python を良く触っていた時期には実用的なのはこれくらいしかなかった。

あったのかも知れないのですが、学ぶにしても情報量が少なかったように思います。

しかし、最近は他にも良いものが出てきているようです。

そこで、注目したのが「bottle」。

Django は使ったことがないわけではないので、そちらでもよいかなと思ったんですが。

いかんせん、ミニマムなサーバーに乗せるので軽いことに越したことはない。

ということで、必要最小限で軽量なフレームワークという触れ込みの「bottle」にすることにしました。

サーバーに環境構築

SSH で ServersMan@VPS に入る方法は割愛。

この記事を参考にして頂けると、判るかも知れません。

ServersMan@VPS でGit サーバーを構築してみる
Git 環境をもっと良くしよう 普段は、お仕事がらみで Git を使っています。 個人でももっと利用したいなあ。 と、しば...

ここから、環境を構築しているのですが、ちょっと前に Python の環境は構築していたり。

Python の環境を準備

ServersMan@VPS Ubuntu に WSGI をいれてpython を動かす
ServersMan で Python を活用したい 特にこれといった目的があるわけじゃないのですが。 久しぶりに Python...

一応、上記でも紹介しています。

必要となるのは、

  • Python
  • python3-dev(uWISGIに必要)
  • pip
  • uWISGI

こちらを用意します。

ServersMan VPS の Ubuntu では、Python 3.4 がインストールされています。3.5 を使う場合はそちらをインストールしてください。

2.7 もインストールしてあるので、利用状況に合わせて選択してください。

今回は、Ubuntu デフォルトの Pyhon 3.4 で進めます。

とりあえず、python3-dev をインストール。

その後、pip をインストールします(詳しくは上記記事参照)。

uWISGI をインストール

上記インストールが完了したら、uWISGI を pip を使ってインストール。

pip のインストールの際に su コマンドで root に昇格している場合は、exit で元のユーザーに戻ってから操作。

$ sudo pip install uwsgi

成功すると、

Successfully installed uwsgi-2.0.14

といった表示が出てくるはずです。これで pip のインストールは完了です。

Nginx をインストールする

ServersMan@VPS にて Ubuntu を選択しているので、「Nginx」は PPA からインストールもできます。

しかし、デフォルトのものはかなり古いバージョンがはいるみたいです。

今回は最新の Nginx を使いたいと思います。

そこで、リポジトリに Nginx が公式に配布しているものを追加。

PGP キーを追加して、リポジトリを一覧に追加という手順。

#PGP キーを追加
curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
#レポジトリを一覧に追加
sudo sh -c "echo 'deb http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list"
sudo sh -c "echo 'deb-src http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list"
#アップデート
sudo apt-get update
#インストール
sudo apt-get install nginx

Nginx のインストールに関しては、下記のページを参考にしております。

ubunutの初期リポジトリからapt-getでnginxをインストールすると、残念ながらだいぶ遅れたnginxがインストールされます。 > 2016/3/12 本稿の手順をansibleで書いた場合の参考例を追加しました。 # ...

インストールが完了したら

nginx -V

とすれば、バージョン10.2 であることが表示されるかと思います。

こんな感じですね。

Apache2 が動いているかも

ServersMan@VPS からもらった IP にアクセスすると、もしかしたらこんな画面が見えるかもしれません。

こちら、普通に Apache2 が動いていますね。

この状況であれば、今回は Nginx を利用するので、止めておきます。

$ sudo apache2ctl stop

で Apache2 を停止します。

Nginx を起動するためには、

$ sudo service nginx start

で起動することが可能です。

再びさきほどと同じ IP にアクセスすると…。

Nginx が動いていることが分かります。

以上で環境の準備は終わりました。

bottle をインストール

ここから、web アプリケーションを組む上で土台となってくれる「bottle」をインストールします。

こちらも pip からインストール。

$ sudo pip install bottle

で完了。ちゃんとインストールされると

Successfully installed bottle-0.12.10

と表示されるはずです。

以上で準備は完了です。

bottleを設定していく

ここまで来たら、あとはボトルをセッティングしていきます。

しかし、ちょっと長くなってきたので次は次回の記事でということで。

スポンサーリンク

シェアする

フォローする

スポンサーリンク