【ポイント最大43倍】・楽天スーパーセール半額 12/11まで!

Python開発・Djangoプロジェクトをサーバーでデプロイするための方法を解説

ローカルでは

python manage.py runserver

http://lovalhost:8000

で動くDjangoプロジェクトですが、いざサーバーでデプロイしようとすると、様々な壁が立ちはだかります。

この記事では、Djangoプロジェクトをサーバーでデプロイするための知識を全てまとめます。

共用サーバーか、VPSか

Djangoプロジェクトをデプロイするためには、サーバーの選択から留意しないといけません。

現実的には、共用サーバーかVPSかということになります。

共用サーバーは使うプログラムの管理がすべてサーバー管理会社任せで、VPSは何もプログラムが入っていないものに自分でプログラムをインストールし、自分で管理するという違いがあります。

Djangoの場合、サーバーでPythonが使えても、設定に四苦八苦することが多いです。

従って、自分でプログラムをインストールできない共用サーバーはおすすめできません。

この記事では共用サーバーでのデプロイ方法も書きますが、特に条件がないのであればVPSを選択しましょう。

いきおい、インフラに関する知識も必要となりますが、それがDjangoの実際です。

なお、これも特に条件がないのであれば、Linux系のサーバーを選択してください。

Windowsのサーバーは非常に公開手順が面倒です(この記事ではWindowsのサーバーでのデプロイ方法は触れません)。

VPS(CentOS 8の場合)

それでは、CentOS 8の場合を例にとり、VPSでのデプロイ手順を書いていきます。

プロジェクトのパス

Djangoプロジェクトは、一般的には

/var/www

配下に置きます。

/var/www

は、「Webサイトに関するファイルの置き場所」ということになっています。

しかしながら、

/home

配下の自分のディレクトリに置いてもいいでしょう。どっちでも実害はありません。

けれども、/homeは慣習的に個人のディレクトリという感じが強いので、/var/wwwに置くことが一般的になっています。

Djangoインストール

まずPythonのインストールです。こちらを参考にしてください。

Djangoをインストールし、プロジェクトを立ち上げ、アプリを作ります。その手順はこちらを参考にしてください。

ftpサーバー

ローカルからファイルをアップロードするために、サーバーにftpサーバーをインストールします。
こちらを参考にしてください。yumはdnfと読み替えてください。

https://www.searchlight8.com/vsftpd-server-install/

まず立ち上げてみる

それからローカルのファイルを転送します。

転送が終わったら、

python manage.py makemigrations
python manage.py migrate

しましょう。

ここまできたら、

python3 manage.py runserver 0.0.0.0:8000

でDjangoプロジェクトを立ち上げてみます。

http://IPアドレス:8000/

でアクセスできることを確かめてください。

(settings.pyのALLOWED_HOSTSにIPアドレスを追加するのを忘れずに)

httpサーバー

次に、サーバーにhttpサーバーを立ち上げます。ここではnginxとします。こちらを参考にしてください。

https://qiita.com/Ningensei848/items/e91fbeef5f03685a7a0b

共用サーバー

次に、共用サーバーの例を書きます。

.htaccessとindex.cgi

共用サーバーの場合、この2つのファイルを設定する必要があります。

コアサーバーの場合は、こちらを参考にしてください。

https://qiita.com/twinoze/items/5bd62a2bc08fee7596f1

エックスサーバーの場合は、こちらを参考にしてください。

https://kazusa-pg.com/xserver-django/

デプロイの後作業

デプロイした後も、Djangoには設定作業があります。

静的ファイル

筆者の書いた記事ですが、こちらを参考にして静的ファイルの設定をしてください。

Python開発・Djangoでの静的ファイルの扱いで抑えておくべきポイント

DEBUG

setting.pyのDEBUGはFalseにします。

DNS

ドメイン名でアクセスできるようにするために、DNSを設定する必要があります。

これは各サーバーによって見事に手順が違うので、ここでは詳細は書きません。

ただ、DNSサーバーを設定したらドメイン名でアクセスできるまで最大72時間かかります(そのサーバーの環境と自身のマシンの環境に依存します)。気長に待ちましょう。

https化

最後にhttps化です。

VPSは

https://qiita.com/aion/items/60f792437f98c2e277b1

https://4to.pics/article/post/96

こちらの2つのサイトを参考にしてください。

共用サーバーは、コントロールパネルから行えることがほとんどです。
ボタンをクリックでできるはずです。

まとめ

いかがでしたでしょうか。なかなか大変だということが分かったかと思います。

しかし、インフラは慣れです。Linuxの独特の短縮されたコマンドも、パスも、設定も、二度三度と繰り返すうちに慣れます。

どちらかと言えば経験がものを言う分野です。

プログラミングよりも慣れの部分は大きいかもしれません。最初は壁が高いと思いますが、何度かやってるうちに苦痛でなくなるはずです。

最後に書いておきますが、インフラの世界は日進月歩です。

1年前にスタンダードだった技術が陳腐化しているということはよくあります。

常に最新の情報を仕入れて、キャッチアップしていってください。

\今すぐフリーランスエージェントに登録しよう/

今すぐフリーランスになる気がなくても、エージェントへの登録は済ませておくことをお勧めします。

理由はストレスや疲労が限界に達してからだと遅いから。

あわせて現在の自身のフリーランスとしての価値・単価相場を把握できますし、条件にあった案件をキャッチできるようになるので、いざフリーランスになろうとした際に早期に手が打てます。

エージェント登録は無料なので、今はフリーランスにならなくとも登録だけはしておくべきです。

真っ先に登録すべきエージェントは、圧倒的に多くのクライアントを開拓しているDYMテック。2500社の優良な取引先と、条件交渉力が強く高条件で仕事を紹介してくれるエージェントです。

案件紹介のみでなく、エンジニアとしてのキャリア相談や業界動向のキャッチアップなど、フリーランス対してのサポートも充実していますので、初めてフリーランスに挑戦する方も安心です。

よしぞー

よしぞー

万年筆、ボールペン等の筆記具沼・ゲーム沼・美容沼、そして革沼など複数の沼のほとりにて、物欲のままに暮らしてます。このブログは使用した物のレビューを中心に好きなことを気ままに書いてます。ご覧になられた方が一人でも多く沼に堕ちてくれたら嬉しいです。

関連記事