Server

Python(bottle)をApacheで動かす

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

はじめに

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

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

環境

・CentOS7.3.1611
・Python3.6.1
・Apache2.4.6
・bottle0.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周辺でかなり詰まりました。

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

page_footer_300rect




page_footer_300rect




-Server

執筆者:


comment

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

CAPTCHA


関連記事

aws

EC2インスタンスのメモリとディスクのメトリクスモニタリングでハマったこと

1 はじめに2 メモリとディスクのメトリクスモニタリング3 ハマりポイント4 対応方法5 さいごに はじめに AWSのEC2インスタンスでディスク容量やメモリの使用率をCloudWatchで監視をする ...

aws

MyCoachの本番環境をAWS上に構築する 〜ネットワーク編〜

1 はじめに1.1 関連記事2 MyCoachのネットワーク構成3 VPCとは3.1 設定する項目4 VPCの設定5 インターネットゲートウェイの設定6 サブネットの設定6.1 公開ネットワークの設定 ...

同じレコードがないときだけインサートする!

はじめに あるアイテムを持っていない人だけ、別のアイテムをあげたい! もしくはその逆で、あるアイテムを持っている人に追加でアイテムをあげたい! そういうことってないでしょうか? 先日、僕がそのような状 ...

DockerでRuby2.5、Rails5.2betaの環境をつくる【Compose file v3】

1 はじめに2 Dockerのインストール3 ファイルの準備3.1 Gemfile3.2 Gemfile.lock3.3 Dockerfile3.3.1 Ruby(Rails)3.3.2 MySQL3 ...

aws

MyCoachの本番環境をAWS上に構築する 〜EC2編〜

1 はじめに1.1 関連記事2 MyCoachで利用しているインスタンス3 設定する項目4 キーペアの作成5 セキュリティグループの作成6 インスタンスの作成6.1 Webサーバのインスタンスを作成6 ...

page_side_300rect

Web版MyCoach

私たちはより広い方にコーチングを知ってもらいたいと考えています。
下記のサイトにて、コーチの方々を紹介しておりますので、よろしければご覧ください。

アプリ情報

私たちは、目標を達成したい方を応援する、TODOアプリもリリースしております。
下記のアイコンから無料でダウンロードできます。

リンク

follow us in feedly
2017年5月
« 4月 6月 »
 123456
78910111213
14151617181920
21222324252627
28293031