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

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

blog-page_footer_336




blog-page_footer_336




-Server

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

aws

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

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

Docker上でTensorFlowのチュートリアルをやってみた

1 はじめに1.1 環境2 TensorFlowのコンテナを起動する3 チュートリアルをやってみた3.1 ソースコード4 さいごに はじめに こんにちは、最近個人的な勉強でPython、ディープラーニ ...

aws

AWS LambdaとSQSでキューを処理する

1 はじめに1.1 今回紹介する内容2 Amazon SQSとは3 実際に動かしてみる3.1 SQSでキューを作成する3.2 LambdaでMessage送信関数を作成する3.2.1 sendMess ...

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

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

InnoDBでauto_incrementの値が戻る?

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

フォロー

blog-page_side_responsive

2017年5月
 123456
78910111213
14151617181920
21222324252627
28293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。