Server

Python(bottle)をApacheで動かす

投稿日:2017年5月22日 更新日:

はじめに

以前、「配牌からアガれるかアガれないか予測する」を公開しました、tonnyです。
最近はもう少しスケールダウンさせて、何切る問題でディープラーニングを利用してみようと思っています。

データを収集するために、Webで公開してみようと思い、今回ブログ記事にまとめさせていただきます。
(以前はherokuで公開していたのですが、無料だと制約が大きかったので。。。)

環境

・CentOS 7.3.1611
・Python 3.6.1
・Apache 2.4.6
・bottle 0.13-dev

サーバーの立ち上げ

私のお試しサーバーであるConohaちゃんで構築しようと思います。

ユーザー作成などは以前の記事でまとめましたので、そちらをご参考ください。

Conohaのサーバーを借りて、CentOS+MySQL+nginxの環境を作ってみた。

[追記]
rootユーザーでPythonなどをインストールしないと、mod_wsgi絡みでエラーが起こるようなので、rootユーザーで進めました。
このあたりはちゃんと調査しないと。

Pythonのインストール

CentOS 7にはPython 2.7がデフォルトで入っているようですが、ローカルでは3系なので、3.6をインストールします。

こちらの記事を参考にさせていただきました。
Python 3 を CentOS 7 に yum でインストールする手順

IUS Community Project の yum リポジトリ

IUS Community Project という、最新のRPMパッケージを提供してくれる団体があるようなので、そちらからPython 3.6のyumリポジトリを追加させていただきます。

Python 3.6を検索すると、ちゃんと見つかることが分かります。

インストール

これで、Pythonがインストールされたので、バージョン確認しておきます。
ちなみに、オプションの-Vは大文字です。

このままでも良いのですが、デフォルトのpythonコマンドには2系のシンボリックリンクが貼られているので、こちらを3系に切り替えます。

これでpythonコマンドに3系が紐付きました。

同様にして、pipコマンドのリンクも変えておきます。

Apacheのインストール

yumの修正

どうやらyum関連のファイルはPython2系で動いているようです。
そして、先ほどpythonコマンドを3系に紐付けたので、yumでコケるようになります。

これを回避するために、下記のファイルを修正しておきます。

  • /bin/yum
  • /usr/libexec/urlgrabber-ext-down

どこを修正するかというと、1行目の#! /usr/bin/pythonです。
こちらを下記のように2系で修正します。
お使いの環境によってはマイナーナンバーが違うかもしれません。
こちらのサイトを参考にさせていただきました。)

Apacheのインストール

Apacheを起動させて、表示確認をしておきます。

自動起動設定もしておきます。

WSGIを使用してPythonを動かす

WSGI(Web Server Gateway Interface)はWebアプリケーションからPythonを動かすインターフェースのことです。
What is WSGI?
こちらとApacheを連携させます。

こちらのサイトを参考にさせていただきました。
ApacheでPythonを動かしてみた(bottle利用)

各種インストール

mod_wsgiがApacheでPythonを動かすために必要なモジュールです。

httpd.conf に追記

/etc/httpd/conf/httpd.confに下記を追記し、Apacheを再起動します。

adapter.wsgi を作成

テスト用に「Hello World!」を出力するwsgiファイルを作成します。

これで、ブラウザに再度アクセスして「Hello World!」が出力されれば成功です。

bottleとApacheの連携

軽量FWで有名なbottleを使用したいと思います。

bottleのソースファイルを取得

bottleはファイル1つのみですので、wgetで取得してしまいます。

adapter.wsgiの修正

先ほど作成したadapter.wsgiを以下に変更します。

index.pyの作成

テスト用のPythonスクリプトを作成します。

これで、「Hello from bottle」が表示されれば、index.pyが実行されていることが分かります。

さいごに

mod_wsgi周辺でかなり詰まりました。

今回は、テスト表示のみでしたが、実際にファイルを作成した場合にまた記事を書くことになりそうです。
本日はこのあたりで!

age_footer_300rect




age_footer_300rect




-Server

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

WordPressのサーバ移設とnginxで無料SSLをやってみた

1 はじめに1.1 環境2 サーバー準備2.1 ConohaのVPSサーバーの契約2.2 sshログイン用のユーザーを作成2.3 必要なソフトウェアのインストール3 WordPressの移行3.1 D …

配牌からアガれるかアガれないか予測する

1 はじめに1.1 趣旨1.2 筆者のスペック1.3 環境1.4 機能概要2 実装に関して2.1 教師データ2.2 前処理2.3 各ノードの重みの学習3 実際に使ってみた3.1 再テスト4 学習させた …

Conohaのサーバーを借りて、CentOS+MySQL+nginxの環境を作ってみた。

1 はじめに1.1 環境2 Conohaでサーバーをレンタル3 サーバーの初期設定3.1 サーバーにrootユーザーでログイン3.2 ユーザー作成3.3 SSHログインを許可3.4 秘密鍵を生成3.5 …

InnoDBでauto_incrementの値が戻る?

はじめに 花粉症が辛い季節になりました。 花粉症も困りますが、本日はMySQL関連で困って調べたことをまとめたいと思います。 タイトルですが、InnoDBだとDBを再起動した際にauto_increm …

MySQL 5.7 オプティマイザの改善〜UNION ALL〜

1 はじめに2 「UNION」と「UNION ALL」の違い3 MySQL 5.7での「UNION ALL」の改善とは4 MySQL 5.7での実行計画4.1 UNION ALL実行計画4.2 UNI …

page_side_300rect






follow us in feedly

2017年5月
« 4月   6月 »
 123456
78910111213
14151617181920
21222324252627
28293031