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周辺でかなり詰まりました。

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

-Server

執筆者:


comment

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

関連記事

DockerでLAMP環境をつくり、LimeSurveyを動かしてみた

1 はじめに2 Docker関連ファイルの作成2.1 docker-compose.yml2.2 MySQL2.2.1 個人的に詰まったこと2.3 PHP3 Docker起動4 リポジトリを作りました ...

WordPressとRailsアプリケーションを相乗りさせた時の話

1 はじめに1.1 前提条件2 サブドメインを設定する3 Nginxの設定3.1 ステージング環境用の設定3.2 ステージング環境の設定を読み込ませる3.3 Nginxの再起動4 SSL化する4.1 ...

[WordPressのSEO対策]PageSpeed Insightsのスコアを上げる方法

1 はじめに2 現状のスコアと改善点を確認する3 ブラウザキャッシュを活用する4 圧縮を有効にする5 HTML/CCS/JavaScriptを縮小する6 画像を最適化する7 レンダリングをブロックして ...

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 ...

aws

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

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

メルマガ

メールマガジン

メルマガ始めました!
詳細は以下のリンクから
http://re-engines.com/mailmagazine/

amazon

Web版MyCoach

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

アプリ情報

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

リンク

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