今日よりちょっと賢い明日、今よりずっと自由な未来

Liberal Arts & IT

IT

[詳細]DjangoアプリをXserverで公開する手順ーDjangoアプリ開発

更新日:

ローカルではスムーズに開発できたDjangoアプリ。
それをXserverを使って公開するにはどうすれば良いかの備忘録です。
ローカルで作成したものをそのままXserverにアップロードすることに失敗したため、Xserver上でゼロから作るような形になっています。(ローカルで開発したものをコピペしていく)
使用環境はWindowsです。
TeraTermが必要です。

Xserverでの設定

Xserverでサブドメイン作成

Xserverのサーバーパネルにログインして、サブドメイン設定からサブドメインを作成します。
今回は「status.triplearner.com」を作成しました。
反映まで最大1時間程度かかります。

XserverでSSH接続設定

公式の説明はこちら

「SSH設定」と「公開鍵認証用鍵ペアの生成」を実行します。

TeraTermでSSH接続

公式の説明はこちら

接続設定のホストは、「サーバー番号.xserver.jp」です。
サーバー番号はXserverサーバーパネルのサーバー情報から調べることができます。
ポート番号は10022です。

次の画面のSSH認証では、ユーザー名、パスフレーズ、秘密鍵を入力します。
ユーザー名はサーバーIDです。
サーバーIDはXserverサーバーパネルのパスワード変更などから調べられます。
パスフレーズは、SSH接続設定で公開鍵認証用鍵ペアの生成で指定したパスワードです。
秘密鍵は、公開鍵認証用鍵ペアの生成でダウンロードされたファイルをアップロードします。

これで作成したサブドメインのパスまで移動することができます。
が、このパスにはまだPythonなど必要なものがインストールされていないので、環境整備が必要です。

TeraTermで環境整備

Linux brewのインストール

公式はこちら

以下のコードを順番に打ち込みます。

Pythonのインストール

Linux brewを使ってpythonをインストールします。

完了すると、以下のコマンドで確認できます。
パスを通していないので、python --versionだとPython2.7になると思います。

pipenvのインストール

以下のコマンドでインストールします。

完了すると、以下のコマンドで確認できます。

Xserver上でDjangoアプリを作成

ローカルでDjangoアプリを開発済みならそれをアップロードすれば良いはずなのですが、どうもうまくいかないのでXserver上でDjangoアプリを一から作ります。
Viewsなど細かい部分は後からローカルで作ったものをコピペすれば良いので、とりあえず「Hello World」と表示するだけのアプリを作ります。

TeraTermで仮想環境を作成

サブドメイン配下にディレクトリを作成します。

先ほど作成したディレクトリに移動し、以下のコマンドでpipenvをインストールします。

以下のコマンドでDjangoをインストールします

仮想環境の中に入ります。

プロジェクトを作成します。

statusreport_pjにcdで移動して、アプリを作成します。

これでサブドメイン配下のディレクトリ構成が以下のようになりました。

settings.pyの設定

ここから先は、Xserverのファイルマネージャーを使ってファイルの編集や追加を行います。
statusreport_pj/settings.pyで編集するべきなのは以下の3点です。

まず、INSTALLED_APPSに作成したアプリを追加します。

ALLOWED_HOSTSを設定します。ワイルドカード('*')でも動きますが、サブドメインを指定しました。

DEBUGがTRUEになっていると、Djangoアプリにエラーがあった時に詳細なエラーメッセージが表示されます。
それが表示されていると秘密にするべき情報まで公開されてしまうことがあるので、開発時以外はFALSEにしておきます。
(私はある程度開発するまでTrueにしています)

urls.pyの設定

statusreport_app内のurls.pyを参照するように設定します。

アプリ内のurls.pyを作成

statusreport_app配下にurls.pyを新規作成します。

viewsの作成

アクセスされたら「Hello World」と表示するだけの単純なViewsです。

.htaccessの作成

以下を記載した.htaccessファイルを、statusreport/statusreport_pj配下に作成します。

RewriteEngine On:
Rewrite機能をOnにするという意味です。
RewriteCond :
この後に続く条件をクリアした場合のみRewriteRoleに従います。
%{REQUEST_FILENAME} !-fなら、リクエストされたファイルが存在しなければRewriteRoleを適用するという意味です。
RewriteRule:
リダイレクト元とリダイレクト先を書きます。

index.cgiの作成

仮想環境のパスを調べておきます。
statusreport/statusreport_pjで以下を実行し、結果をメモしておきます。

.htaccessと同じパスに、index.cgiを作成します。
「仮想環境のパス」の部分にpipenv--venvの結果を書きます。
statusreport_pjの部分は、Djangoのプロジェクト名です。

権限は755で設定します。

確認

これで完了です。
status.triplearner.com/statusreport/statusreport_pjにアクセスすると、「Hello World」が表示されるはずです。
status.triplearner.com/statusreportに表示させたい場合は、statusreport/statusreport_pjの中身をstatusreportに移動させればOKです。

現在のディレクトリ構造はこちら

ローカルで作っていたDjangoアプリをXserverにコピペする場合の注意点はこちらの記事へ。

-IT

Copyright© Liberal Arts & IT , 2021 All Rights Reserved Powered by STINGER.