☆☆ 新着記事 ☆☆

2018年12月7日金曜日

さくら VPS CentOS7 に flask をインストールしてみる (2)

前回は、Python 3.7 をインストールしたので、今回はflaskをインストールして、簡単なWeb appが動くかまでを検証します。という第二回目。 ここで、apache上でflaskを動かすには、wsgiが必要なのではないか、と初めて気が付く。



Step1. Virual Environmentの作成

 Python 3.6 以降は、venv が推奨されていますので、それに従います。

1) Create a project folder and a venv folder within:

sshで接続。 

 ①プロジェクト・フォルダーの作成

 rootユーザで「var /www/html」 直下に flaskpjというプロジェクト・フォルダを作ってみる。

 [root@localhost /]# find -name html -type d
. /var/www/html

 以下のコマンド実行。

 ♯cd flaskpj
 [root@localhost html]# mkdir -m 755 flaskpj
 [root@localhost html]# ls -a
 .  ..  .htaccess  blog  flaskpj


 ディレクトリ 「flaskpj」 に移って、念のため現在のPythonのpathを確認。
 [root@localhost html]# cd flaskpj
 [root@localhost flaskpj]# which python
 /bin/python


②venv環境の作成
 ♯ python3.7 -m venv venv
 [root@localhost flaskpj]# python3.7 -m venv venv
 [root@localhost flaskpj]# ls -a
 .  ..  venv

 venvフォルダの中身については、前回、書きました。 興味のある方は以下のリンクをどうぞ。
 (失敗版)さくら VPS CentOS7 に flask をインストールしてみる

Step2: Activate the environment

仮想環境のファイルが入ったDirectory (今回は、venvで)以下を実行。

# source bin/activate
[root@localhost venv]# source bin/activate
(venv) [root@localhost venv]#


確認です。
(venv) [root@localhost venv]# ls bin
activate  activate.csh  activate.fish  easy_install  easy_install-3.7  pip  pip3  pip3.7  python  python3

(venv) [root@localhost venv]# which python
/var/www/html/flaskpj/venv/bin/python

deactivateすると、、、
多分、前回と同じでしょう。


Step3. Install Flask

pipでフラスクをインストール

(venv) [root@localhost venv]# pip install Flask

(確認)
(venv) [root@localhost venv]# ls bin
activate      activate.fish  easy_install-3.7  pip   pip3.7  python3
activate.csh  easy_install   flask             pip3  python  python3.7

 flaskがインストールされました。

②SFTPでファイルアップロードが出来るようにフォルダの権限を変えます。
(venv) [root@localhost html]# chown -R apache:vpsuser *
(venv) [root@localhost html]# chmod -R g+w *
(venv) [root@localhost html]# ls -l
total 4
drwxrwxr-x 5 apache vpsuser 4096 Dec  6 19:32 blog
drwxrwxr-x 3 apache vpsuser   17 Dec  6 23:56 flaskpj
(venv) [root@localhost html]# cd flaskpj
(venv) [root@localhost flaskpj]# ls -l
total 0
drwxrwxr-x 5 apache vpsuser 94 Dec  7 00:06 venv

③SFTP でファイルアップロードして確認
[root@localhost flaskpj]# ls -ll
total 4
drwxr-xr-x 2 apache vpsuser  33 Dec  7 00:45 __pycache__
-rw-rw-r-- 1 apache vpsuser 221 Dec  6 00:12 index.py
drwxrwxr-x 6 apache vpsuser 104 Dec  7 09:39 venv

これで、
http://www.mossymob.tk/flaskpj/index.py
にブラウザからアクセスすると、pyファイルの記述内容がtextで表示されてしまう。

ありがちな事象。 flaskが動かないのはなぜか?
ネットで検索しすぎても、色々と少しずつ違ったバージョンの説明があってよく分からない。

そこで、なるべく避けていた公式サイトとドキュメントを再度訪れて、もう少し真面目みてみる。

すると目次の下の方に

Deployment Options

という章があった。

Hosted Optionでは米国の有名どころ(Heroku,AWS,Google App Engine, Azure 等)のホスティングにインストール手順が出ているが、当然、'Self-hosted options' (その他、自分でやるバージョン)になります。

設定は、以下の項目に分かれてる。
Standalone WSGI Containers
uWSGI          :nginx, lighttpd, and cherokee を使ている人用
mod_wsgi (Apache) :Apache 2.0, 2.2 or 2.4 を利用している人用
FastCGI
CGI            :なつかしい、ここから脱出する為にvpsを利用しようとしている。

なーんだ、Apacheだから、mod_wsgiが必要なんじゃなない、
ということで、インストールしてみる。

説明は、次回に。

0 件のコメント:

コメントを投稿