エックスサーバーでDjangoを動かす

Python

エックスサーバー上でDjangoを動かす方法をまとめました。

環境

  • Windows10
  • Python 3.7.3

事前準備

サブドメインの設定

エックスサーバーでサブドメインを設定しておきます。
サブドメインの設定方法は公式ページを参照してください。

サブドメイン設定 | レンタルサーバー【エックスサーバー】
レンタルサーバー「エックスサーバー」のご利用マニュアル|エックスサーバーでサブドメインを利用する際に必要となるサーバーパネルの「サブドメイン設定」機能に関するご案内です。エックスサーバーではサブドメインを無制限に追加することが可能です。

webappという名前で今回は設定しました。
設定してから数時間で設定が反映されるはずです。

SSHの設定

サーバー側でコマンドを入力するためにSSH接続の設定をする必要があります。
SSHの設定は公式ページを参照してください。

SSH設定 | レンタルサーバー【エックスサーバー】
レンタルサーバー「エックスサーバー」のご利用マニュアル|エックスサーバーではSSH接続機能を提供しています。当マニュアルではお客様のサーバーアカウントへSSHで接続するための手順を記載しています。

SSHの接続にTeraTermを使用しました。

Linuxbrewのインストール

SSHで接続後にLinuxbrewをインストールします。
Linuxbrewのインストール方法は下記のページが参考になります。

エックスサーバーにLinuxbrewでPythonをインストール|Coeeff|note
XSERVER(エックスサーバー)でPythonを動かしてみます。 XSERVERではデフォルトでPythonが利用できるよう用意されています。バージョンは(2.7.x / 3.4.x)です。 ただ、エックスサーバーは共有レンタルサーバーなので、管理者権限がありません。そのため、パッケージ管理ツールのpipが使え...

python3のインストール

サーバー上でbrewコマンドを使用してpython3をインストールします。

インストール後にpython3とpip3がインストールされているか確認します。

pipenvのインストール

pipenvをインストールします。

Djangoを動かす

ローカルPC上で行う作業

自分のPCでpipenvをインストールします。

プロジェクト用のフォルダを作成します。

pipenvでDjangoをインストールします。

pipenvの仮想環境内に入ります。

Djangoのプロジェクトを作成します。xserver_testとしてみました。

testappという名前のアプリケーションを作成します。

setting.pyにアプリケーションを登録します。

xserver_testフォルダ内のurls.pyをtestappフォルダ内のurls.pyを参照するように変更します。

testapp内のurls.pyを新規作成します。

testapp内のviews.pyを変更してhttpレスポンスを返すようにします。

runserverコマンドを入力して http://127.0.0.1:8000/ にアクセスします。

Hello world!と表示されれば成功です。

settings.pyのDEBUGとALLOWED_HOSTSを変更します。

あくまで一時的に公開する設定値です。
正式に公開する場合はDjangoドキュメントのデプロイチェックリストの内容を
参考にしてsettings.pyを変更してください。

エックスサーバーで行う作業

事前準備でサブドメインを作成していると、public_html内に
サブドメイン名フォルダが作成されています。

Teratermでサブドメイン名フォルダに移動してtestフォルダを作成します。

ローカルPC上で作成したファイルをエックスサーバーのtestフォルダに転送します。
エックスサーバーのファイルマネージャーを利用してファイルをアップロードするか
WinSCPなどのFTPクライアントを利用してファイルを転送します。

ファイル転送後のtestフォルダの構成は以下のようになります。

Teraterm上でpipenvを利用して仮想環境を作成します。
PipfileとPipfile.lockを元に必要なモジュールを仮想環境に自動的にインストールします。

pipenvのvenvオプションで仮想環境のパスをメモしておきます。

testフォルダに.htaccessファイルをファイルマネージャーで作成するか
またはローカルで作成して、FTPクライアントで転送します。

index.cgiファイルをファイルマネージャーで作成するか
またはローカルで作成して、FTPクライアントでtestフォルダに転送します。
1行目には先程メモした仮想環境のパスをシェバンとして設定します。
文字コードはUTF-8で保存して、パーミッションを755に設定します。

サブドメイン.ドメイン/test にブラウザでアクセスして
Hello world!と表示されればDjangoが動いていることを確認できます。

追加設定

FastCGIの設定もできるようです。

エックスサーバーでDjangoのWebアプリを公開する方法について|teratail
エックスサーバーでDjangoのWebアプリを公開したいと思っているのですが、なかなか上手く行きません。現時点では、エックスサーバーにDjangoのインストールができたので、試しにサイトを表示させようと思ったのですが、「500 Internet Sever Error」

 

 

コメント