レンタルサーバーのロリポップに Python フレームワーク bottle を入れてみる。

ファイル構成

myapp/ bottle.py app.py .htaccess

bottle.py は https://raw.githubusercontent.com/bottlepy/bottle/master/bottle.py からダウンロード。

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello </b>!', name=name)

run(host='localhost', port=8080)

まずはローカルでテスト

以下のコマンドを実行。

$ cd myapp
$ python app.py

http://localhost:8080/hello/world にアクセス。

ロリポップでテスト

app.py を書き換える。

#!/usr/local/bin/python3
# -*- coding: utf-8 -*-

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello </b>!', name=name)

run(server='cgi')

権限を 700 に設定する。 ファイルをアップロードし、そのアドレスにアクセス。

  • 例: http://berry.tw/myapp/app.py/hello/world

ロリポップの設定

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /make_epub/app.py/$1 [QSA,L]

■パーミッション HTML・画像ファイル 604(rw—-r–) CGIの実行ファイル 700(rwx——) CGIのデータファイル 600(rw——-) .htaccessファイル 604(rw—-r–) ディレクトリ 705(rwx—r-x)

ロリポップに pip をインストールしたい

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user
  • 「RuntimeError: Python 3.5 or later is required」が出た場合は、サーバーをアップデートしてください。