bottleをmod_wsgiで動かす(CentOS7, Python2.7)

環境

  • CentOS 7.3
  • Apache 2.4.6
  • mod_wsgi 3.4
  • Python 2.7.5
  • bottle 0.12.13

上記環境を用意しbottleで作成したWebページを表示させます。
各バージョンはyumやpipを使ってデフォルトでインストールできるものです。
設定ファイル等は編集せずデフォルトのままでOKです。

参考にインストールコマンドを載せておきます。

# yum install epel-release
# yum install httpd mod_wsgi python-pip
# pip install bottle

Apacheの設定

/etc/httpd/conf/httpd.conf の末尾に以下を追加

WSGIScriptAlias / /var/www/html/adapter.wsgi

アダプタの作成・編集

/var/www/html/adapter.wsgi を作成し以下の内容を記述

# coding: utf-8
import sys, os
import bottle

dirpath = os.path.dirname(os.path.abspath(__file__))
print(dirpath)
sys.path.append(dirpath)
os.chdir(dirpath)

import index
application = bottle.default_app()

「import index」の位置が重要だったりします(最初import文を上にまとめて書いててハマりました)。

ページを記述

/var/www/html/index.py を作成し以下の内容を記述

# coding: utf-8
from bottle import route

@route('/')
def index():
return "Hello, world."

Apacheの再起動と確認

# systemctl restart httpd

Webブラウザで「http://127.0.0.1」にアクセスし、「Hello, world.」と表示されれば成功