1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Xserverでminiconda3を使用してDjango ウェブアプリをデプロイ

Last updated at Posted at 2024-11-07

投稿理由

そのファイルがどこに配置すべきなのか 等で
四苦八苦したので、備忘録として残しておく。

事前準備

  • XServerの契約
  • SSH接続
  • サーバーパネルのファイルマネージャを使用できる
  • デプロイするDjangoウェブアプリ (collectstaticを忘れずに)
  • ファイルをXServerへ送信する何らかの方法 (FTP 等)

今回は、django-adminで作成したてのデバッグモードがONの状態の時の
「The install worked successfully! Congratulations!」のページが表示されるだけのウェブアプリをデプロイします。

作業

miniconda3 & Djangoをインストール

  1. SSHでXServerに接続

  2. 最新のx86_64のminiconda3をインストールするためのシェルスクリプトをダウンロード

shell
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

3. シェルスクリプトを実行

shell
bash Miniconda3-latest-Linux-x86_64.sh

私はインストールパス等は、すべてデフォルトの値でインストールしました。
必要に応じて変更。

4. Djangoをインストール

shell
/home/xs******/miniconda3/bin/python3 -m pip install django

/home/xs******/miniconda3 は、miniconda3のインストールパスです。
環境に応じて変更してください。

ファイルをXServerへ

  • Django ウェブアプリを、配置したいドメインのpublic_html内に入れる

  • python manage.py collectstaticでエクスポートしたstaticディレクトリを、public_html直下に配置する

  • データベースのマイグレーションも忘れずに

サブドメインに配置する場合
例: subdomain.example.com
/home/xs******/example.com/public_html/subdomain.example.com/public_html に該当する。

index.cgi & .htaccess

ここからはファイルマネージャでの操作です。


  1. index.cgi を作成
    index.cgimanage.pyと同じ階層に配置してください。

下記の例は django-admin startprojectmysite という名前のプロジェクト名で作成した場合

index.cgi
#! /home/xs******/miniconda3/bin/python3
import sys, os

sys.path.insert(0, '/home/xs******/miniconda3/bin')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

from wsgiref.handlers import CGIHandler
from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()
CGIHandler().run(application)

2. .htaccess を作成
.htaccessは、public_htmlの直下に配置してください。

サブドメインの場合
例: subdomain.example.com
/home/xs******/example.com/public_html/subdomain.example.com/.htaccess

下記の例は、index.cgi.htaccess が同じ階層に存在する場合

.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

ファイルの配置が下記のような配置にする場合
/home/xs******/example.com/public_html/.htaccess
/home/xs******/example.com/public_html/django-webapp/index.cgi
/home/xs******/example.com/public_html/django-webapp/manage.py

.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /django-webapp/index.cgi/$1 [QSA,L]

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

必ず manage.pyindex.cgi.htaccess の権限(パーミッション)を755に設定すること

終わり

image.png
これでデプロイできているはずです。
アクセスして公開できているかを確認してください。

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?