【Webアプリ】ロリポップ!にFlaskのPythonアプリをデプロイ。pipの導入からパーミッション設定まで解説。

プログラミング

こんにちは。
WebアプリのデプロイというとAWSだったりAzureだったりを想像しますよね。
今回はロリポップ!にFlaskのWebアプリをデプロイするところまで解説していきます。

筆者
筆者

このブログを置いているサーバ、このブログのサブドメインを使って設置してみる!

注意事項

CGIの暴走をさせてしまうと使えなくなるらしいので気をつけましょう。

またsudoなどが使えないなど制約もそこそこありますので、探り探り使う必要がありそうです。

1.SSHで入る

ロリポップのサーバの管理ページにSSHの項目がありますので、そこからSSHを有効化しましょう。

次にSSHでサーバに入りましょう。
このようにサーバ、アカウント、ポート、パスワードが出てきます。

Terminalとかで以下の構文で入りましょう。

ssh アカウント@サーバー -p 2222

パスワードが求められたらSSHパスワードをコピペしてやりましょう。

2.pip導入

初期状態ではPythonは使える状態ですが、pipは使えなかったと思います。

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

export PATH=$PATH:~/.local/bin

この順番で実行するとpipがインストール、パスが通っている状態になっていると思います。

試しにpip3 -Vと打ち、バージョンが返ってくればOKです。

ここでflaskを入れちゃいましょう。
pip3 install flask

3.Flaskアプリのデプロイ

あらかじめindex.cgiと.htaccessを作っておきます。

index.cgiはこんな中身。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]

.htaccessはこんな。
3行目の「views」はflaskの実行ファイル名です。
!/usr/local/bin/python3
from wsgiref.handlers import CGIHandler
from views import app
CGIHandler().run(app)

今回はCyberduckからファイルのアップロードを試みます。
サーバ、ユーザー名、パスワードは先程のSSH接続に使用したものを入れましょう。

次に作ったFlaskのフォルダをそのままドラッグアンドドロップしましょう。

ファイル階層はこんな感じです。

またパーミッションについてはロリポップ公式のこちらをご覧ください。https://lolipop.jp/manual/hp/permission/

4.完成

実際に私もWebアプリをデプロイしてみました。
某サイゼの1000円ガチャを参考に作ったものです。
スガキヤで1000円分食べたい人は是非。
http://suga.kogyoyaro.com

とはいえあまり負荷のかかるプログラムを載せるのはやめるように公式にも書いてありますので、そこはさじ加減気をつけ、ローカルでも十分にテストしたうえでデプロイしましょう。

最後に

ということで今回はロリポップ!にCGIを設置する記事でした。

もし興味がある方いらっしゃいましたらぜひやってみてください。

最後までご覧いただきありがとうございました!

コメント

タイトルとURLをコピーしました