初心者がApacheとDjangoでPythonのWebアプリを動かしてみた

PythonのWebアプリフレームワーク「Django」でウェブアプリを公開する方法を書いておきます。
ここでは、Pythonの開発環境があるという前提で話をすすめていきます。

ちなみに、自分の環境はこんな感じです。

  • CentOS7
  • Python 3.6.0
  • Pip 9.0.1

さくらVPSで借りたサーバーにCentOS7を入れて、Python3.6を入れるところまでなんとか自力でやってみました。

Apacheとmod_wsgiをインストールする。

ApacheはCentOSをWebサーバーとして稼働させるためのソフト。
そして、mod_wsgiとはApacheでPythonのプログラムを稼働させるために必要なモジュールです。
このふたつが無ければPythonをWebアプリケーションとして動かすことはできないので、事前にインストールしておきます。

Apacheとmod_wsgiは以下のコマンドでインストールできます。

Apacheとmod_wsgiがインストールできたら、次はApacheの設定ファイルを編集します。
このコードを実行すると、Linuxのテキストエディタが立ち上がります。

「I」キーを押すと、–INSERT–モードになって編集できるようになるので、下のように編集してください。
編集が終わったら「Etc」キーを押して–INSERT–モードを解除、そのあとに「:wq」と打ち込めば編集を保存します。
(mysiteの部分には、任意のプロジェクト名を入れておきます。)

ここで出てきた「WSGIScriptAlias」について少し説明します。
この一文は「/test」が第1引数、「/var/www/cgi-bin/hello.py」が第2引数となっています。

これは、第1引数に指定したリクエストに対して、第2引数をレスポンスとして返すという意味です。
たとえば「http://xxx.xxx.xxx.xxx/test」とブラウザに打ち込む(リクエストする)と、「hello.py」の内容を表示(レスポンス)するということです。

次に、テスト用のスクリプトを書いていきます。
当然ながらPythonで書くので、新規のpyファイルを作成します。
この新規ファイルは先程のWSGIScriptAliasの第2引数に指定したディレクトリに作成します。

hello.pyの内容はこんな感じです。
ここでも先程のテキストエディタで作業します。

ここまで終わったら、Apacheを起動して動作確認してみましょう。
「http://サーバーのIPアドレス/test」とブラウザに打ち込んで、Hello World!が表示されればサーバーの準備はOKです。

もしも表示されなければ、ポートが閉じている可能性があります。
80番ポート(http)を開放してやる必要があります。
こちらの記事で説明しているので、参考にしてください。

CentOS7+ApacheでIPを入れてもブラウザで表示できないときの対処
CentOS7+ApacheでIPを入れてもブラウザで表示できないときの対処
先日、さくらVPSでサーバーを借りてWebサーバー構築にチャレンジ。 さくらVPSでは標準でCentOS6が入っていたので、まずはこれをC...

Djangoインストール

サーバーの準備ができたら、次はDjangoをインストールします。
Djangoのセットアップが完了すれば、PythonのWebアプリを公開する準備はOKです。

ここからの作業はvirtualenvを使って仮想環境で進めていきます。
virtualenvの使い方については、こちらの記事をどうぞ。

Virtualenvを使ったPythonの仮想環境の作り方
Virtualenvを使ったPythonの仮想環境の作り方
Pythonでウェブアプリを開発する際、ライブラリ管理などの関係で仮想環境を構築してから作業に取り掛かるほうがよい。 そのときに活躍するの...

Djangoはpipで簡単にインストールできます。
仮想環境を立ち上げて以下のコードを実行します。

インストールできているかどうか確認。
このコマンドを入力すると、インストール済パッケージの一覧が表示されるので、
その中にDjangoがあればOKです。

新規プロジェクトを作成

Djangoをインストールすると、djangoコマンドが使えるようになります。
以下のコマンドで新規プロジェクトを作成。
「mysite」の部分には任意のプロジェクト名を入れておきます。

次に、新規作成したDjangoプロジェクトのディレクトリに移動します。
そして、wsgi.pyというファイルを開いて編集します。

Djangoの設定

wsgi.pyの中身は以下のように編集します。

次に、settings.pyを開いて編集します。

これはDjangoの設定ファイルなのですが、これを書き換えなければ「DisallowedHost at/」というエラーが発生します。

この中にある”ALLOWD_HOSTS = []”という部分を以下のように書き換えます。

ここまでできたらApacheを再起動します。

Apacheを再起動したら、確認作業です。
「http://サーバーのIP/test_djando」にアクセスしましょう。

It Worked!というメッセージが表示されましたか?
表示されていればDjangoのセットアップは完了です。

次はここにPythonで作ったアプリを実装していく作業ですが、
ひとまず今回はここまで。

アプリの実装は次回の記事で書くことにします。