Xserverやシン・サーバーにAnacondaとDjangoをインストールする

anacondalogo 

SSH接続の有効化

shin01

 

SSH設定をONにする。

 

 

公開鍵認証用鍵ペアの生成

shin02

 

 パスフレーズを入力し、確認画面へ進む。

 

 

生成する

shin03

 

秘密鍵をPC上の任意の場所に保存する。

SSH接続する

  • ホスト名
  • 接続ポート(10022)
  • ユーザー名
  • パスフレーズ
  • 公開鍵などの認証

 

用意したこれらの情報を使ってSSH接続する。

 

tterm01

ホスト名:お使いのホスト

ポート:10022

 

tterm02

 

1.ユーザー名

2.パスフレーズ

3.保存したPrivate key fileを選択

 

 

Anacondaのインストール

anaconda01

https://www.anaconda.com/download

 

 

インストールするバージョンを確認

anaconda02

https://repo.anaconda.com/archive/

 

 

インストールする

 

wget でインストールするバージョンを指定してダウンロード

wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh

 

Anacondaのインストール

bash Anaconda3-2023.09-0-Linux-x86_64.sh

 

インストールが始まると、処理情報が返ってきますが基本はEnterキーで続行し、
以下の場面のみ赤枠のようにする。

 

conda01

 

conda02

 

インストール完了後、Anacondaを有効化する。

source ~/.bashrc

 

正常にインストールが出来て有効化できれば以下のような表示に変わる

conda03

 

うまくインストールできなかった場合は、

rm -rf anaconda3

で一旦削除し、インストールからやり直してみてください。

 

Djangoのインストール

django

 

pipでインストール

pip install django

 

 

Djangoプロジェクトの作成

 

独自ドメインのディレクトリに移動

cd [独自ドメイン名]

cd [public_html]

 

サブドメインの場合は更にサブドメインのディレクトリに移動する

cd [サブドメインのディレクトリ]

 

プロジェクトの作成

django-admin startproject [Project名]

 

アプリケーションの作成

cd [Project名]

django-admin startapp [App名]

 

 

.htaccessとindex.cgiの編集

Xserver系のレンタルサーバーでDjangoを動作させるにはこの2つのファイルが必要。

 

.htaccess

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

 

index.cgi

#!/home/[サーバーID]/anaconda3/bin/python
# encoding: utf-8

import sys, os

sys.path.append("/home/[サーバーID]/[独自ドメイン名]/public_html/[Project名]/")
# サブドメインの場合は下記
# sys.path.append("/home/[サーバーID]/[独自ドメイン名]/public_html/[サブドメイン名]/[Project名]/")

os.environ['DJANGO_SETTINGS_MODULE'] = "[Project名].settings"

from wsgiref.handlers import CGIHandler
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
CGIHandler().run(application)

 

index.cgiのパーミッションを755に変更する

 

WEBブラウザでドメインにアクセスしてみて500エラーが出る場合、以下を確認。

 

 

  • index.cgiのパーミッションが755に設定されているか
  • Pythonのパスは合っているか
  • サーバーのホームディレクトリ(“/home/[サーバー名]/”のパスが合っているか

 

Pythonのパスの確認

which python

 

パスの確認

cd $home

pwd

 

settings.pyの編集

public_html (サブドメイン名)
└───[プロジェクト名]
    ├── manage.py
    └── [プロジェクト名 (config)]
        ├── __init__.py
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        ├── wsgi.py
        └── __pycache__

 

 

タイムゾーン及び言語設定

 

タイムゾーンと言語設定を下記のように変更する。

 

LANGUAGE_CODE = "ja" # "en-us" -> "ja"に変更
TIME_ZONE = "Asia/Tokyo" # "UTC" -> "Asia/Tokyo"に変更

 

 

うまくいっていればDjangoの初期画面のロケットが表示されます。

 

rocket

 

 

Staticディレクトリの設定

settings.pyに追記

import os # 追記
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root') # 追記

 

staticファイルの収集

python manage.py collectstatic

 

作成したstatic_rootフォルダを移動し、saticという名前にリネーム

mv static_root ../static

 

 

スーパーユーザーの作成

 

python manage.py createsuperuser