【python】djangoをXserver にデプロイする
Linuxbrewを使ってデプロイを試みたが、途中でエラーでどうにもならなくなり、Minicondaを使用する方法に変更した。本当にメモです。
# 発生したエラー
PermissionError: [Errno 13] 許可がありません: '/etc'.
目次
Minicondaをインストール
https://docs.conda.io/en/latest/miniconda.html#からMinicondaをダウンロードしXserverのホームディレクトリにアップロードする。
インストール
sh Miniconda3-py39_4.10.3-Linux-x86_64.sh
PATHを通す
export PATH=/home/******/miniconda3/bin:$PATH
仮想環境の構築
python のバージョンはローカルの環境にあわせたほうが良い。
conda create -n 仮想環境名 python=3.9
djangoのインストール
conda install django==3.2.11
サーバーにアップデート
FTPソフト、Git等でサーバーにフォルダごとアップロードする
index.cgiの作成
manage.pyがありディレクトリに設置する
仮想環境のパス確認
conda info -e
#!/home/...仮想環境で使用するpythonへのパス.../python
# coding: utf-8
import sys, os
import cgitb #cgitbでトレースバックを生成する
sys.path.insert(0, '/home/....仮想環境で使用するbinへのパス..../bin')
os.environ['DJANGO_SETTINGS_MODULE'] = 'プロジェクト名.settings' #settingsの読み込み先を記載
from wsgiref.handlers import CGIHandler
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
CGIHandler().run(application)
.htaccessの作成
ルートディレクトリ等環境にあわせて設置する。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /test/index.cgi/$1 [QSA,L]
index.cgi のパーミッション変更
chmod 755 index.cgi
静的ファイルをまとめる
python manage.py collectstatic
ルートフォルダ等に移動させる
Xserver で APIにアクセスしたときに認証情報がないとエラーが発生したとき
.htaccessに下記を追加する
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
ディスカッション
コメント一覧
まだ、コメントがありません