Skip to content

Accounting Intelligence Blog

Talk about tax and corporate finance in Japan

  • Our profile
  • Pricing: 値段表
  • お問合せフォーム Contact Form
  • Career Oppotunities
  • Home
  • 2017
  • April
  • 9
  • DjangoをApacheで動かすまでの話

DjangoをApacheで動かすまでの話

Posted on April 9, 2017 By user
システム開発

PythonにはDjangoという有名なフレームワークがあります。Djangoには簡易サーバーが付いているので、自分のMacで開発するときは、特にApacheやnginxなどのWebサーバーをインストールする必要はありません。開発用の段階ではこれで十分です。
しかし、いざ、iPhoneやAndroidなどの端末からサーバーにアクセスするアプリを開発しようとすると、外側から自分のMacにアクセスできるようになることが必要になります。iPhoneなどの端末から自分のMacにアクセスできないと、ちゃんと動いているかどうかもわかりません。ここで壁となるのが、Djangoに付属して付いてくるこのウェブサーバーでは外側からアクセスできないのです。
私は、今、iPhoneからサーバーに領収書の写真を送って、サーバー側で私たち会計事務所のスタッフが会計データに変換するサービスの開発をやっています。人間が写真のデータを会計データに直すサービスなので、AIなどのかっこいい技術を使うわけではありません。そこはいけていないのですが、そこはちょっと脇に置いておきます。
そのようなわけで、いろいろ調べてみた結果、昔からあるApacheと比較的最近のnginx(エンジンXと読む)が選択肢になったのですが、前にも触ったこともあって馴染みにあるApacheを入れてみることにしました。

具体的なステップ

ApacheをDjangoで使えるようにするのには、ほぼ一日仕事でした。速い人は数時間でできるのかもしれませんが、初めての方には、色々とひっかりやすいポイントがあり、結構時間がかかります。
私の環境は、Apache2.4、Python3.6です。
順番に、
Apacheのインストールと起動、
mod_wsgiをインストールしてApacheからPaythonのプログラムファイルを処理できるようにする、
MaxOS/Linuxのファイル権限を変更して、外部からのアクセスでも必要なファイルを読み書きできるようにする、
という順番でやっていきます。
一気にやろうとすると、色々なところでハマるので問題の切り分けができにくくなります。順番にやっていくのがいいと思います。

(1) まず、最初はApacheです。

Apacheは、とりあえず動くようにして、「It works!」の既定のメッセージが見れるようになることが目標です。
まずはターミナルを開けて、appachectl startとコマンドを打ち込みます。問題がなければ、次の行に移動して入力ができるようになります。

そして、Safariか Chromeを開けて、アドレスバーのところに127.0.0.1と打ち込みます。「It works!」と表示されれば、Apacheはちゃんと動いています。

(2) 次に、mod_wsgiをインストールします。

これが、Webでは様々な記事が交錯していて、一番わかりにくく苦労しました。しかし、一度出来てしまえばちゃんと動きます。ポイントはmod_wsgi.soというファイルをApacheの設定ファイルにちゃんと書いて、ApacheへのリクエストがきちんとPythonの処理として認識されるようにすることです。私は、最初、Pythonのプログラムのファイル(例:hello.pyなど)がただのテキストファイルとしか認識してもらえず苦労しました。
手順としては、
ターミナルからpip3を使って、pip3 install mod_wsgiを実行する。ー>mod_wsgiがインストールされる。

Apacheの設定ファイルであるhttpd.confのファイルを編集する。httpd.confファイルはprivate/etc/apache2という場所にある。これをATOMなどのエディターで開いて、以下のテキストを追加する。場所はどこでもいいようです。
ポイントは、ネットに色々書いてあるような単純なファイル名ではないので、ちゃんとそのsoファイルの場所と名前を発見して、その通りに記述することです。私の場合は、発見したネット情報のPythonバージョンが3.5と少し違っていたので、修正したらちゃんと動きました。
また、Directoryタグの中の記述の仕方もちょっと変わっているようなので、下記のようにすることが重要です。

LoadModule wsgi_module /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-darwin.so
WSGIScriptAlias / /users/ichirok/Documents/python_projects/firstDjango/firstDjango/wsgi.py

Require all granted

この設定がちゃんとできるようになると、Apacheがちゃんと動いて、返ってくるエラーもInternal Server Errorなどになります。それまでは、そもそもPythonのファイルをプログラムファイルとして認識してくれません。

(3) ファイルのアクセス権(Mac OS/Linux)の設定

Permission Deniedなどのエラーが返ってきます。
chmod 755 directoryName コマンドを使って、Apacheがちゃんとファイルを読めるようにしなければなりません。
どこに問題があるか、問題の特定は、Apacheのエラーログを見ると速いです。エラーログは
/private/var/log/apache2
で見ることが出来ます。
Linuxのファイル設定については、色んな本に書いてあるので、ここでは細かくは書きません。ただ、ファイルやディレクトリのアクセス権限でハマることが多いのでここに書いておきました。
以上、DjangoがApacheで動くようになるまでには結構苦労すると思いますが、皆様の参考になればと思います。

Post navigation

❮ Previous Post: Well known tax saving setting by buying properties abroad
Next Post: ウェブサービスをPythonで作る理由 ❯

Recent Posts

  • Japan’s Consumption Tax Refund System
  • Dependent Deduction for Non-Resident Dependents in Japanese Income Tax
  • Accountify開発報告
  • New Angel Taxation from 2024
  • What are the differences and the common characteristics between a company (KK or GK) and a branch?

Recent Comments

No comments to show.

Archives

  • April 2025
  • May 2024
  • April 2024
  • April 2023
  • January 2023
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • January 2021
  • November 2020
  • July 2020
  • April 2020
  • March 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • February 2016
  • December 2015
  • October 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015

Categories

  • About our firm
  • Accounting and DX
  • Consumption Tax
  • Corporate Tax
  • cross border related tax
  • Estate Tax
  • Investing in Japan
  • M&A
  • Personal Tax
  • routine tax practices
  • Setting up organization
  • Starting a business in Japan
  • Tax
  • Tax saving
  • TK
  • Uncategorized
  • Valuation of stock in private company
  • Withholding Tax
  • キャリア
  • システム開発
  • スタートアップの経理と税金
  • プログラミングで効率化
  • ブロックチェーンと仮想通貨
  • ランニング
  • 中国語
  • 中文税金
  • 事業の成長・経営
  • 事業承継
  • 企業再編
  • 会社・支店の設立関係
  • 会社の解散・清算
  • 会社節税
  • 会計事務所独立・経営
  • 会計基準関係
  • 国際税務
  • 小さな会社の経理と税金
  • 山
  • 投資スキームと税金
  • 未分類
  • 本
  • 法人税関係
  • 洋書の読書ガイド
  • 消費税(日本語)
  • 監査など
  • 相続
  • 英語学習
  • Our profile
  • Pricing: 値段表
  • お問合せフォーム Contact Form
  • Career Oppotunities

Copyright © 2025 Accounting Intelligence Blog.

Theme: Oceanly by ScriptsTown