さくらのレンタルサーバー便利ですよね。しかしながらインスタンス借りではないので、標準で提供されてる以外のWebサーバーで運用するのは大変です。基本的にPHPでのWebサービスが想定されているサービスですが、Python3.7.2とDjango2.1.7 Finalをさくらのレンタルサーバー(スタンダードプラン)で動かすことが出来たので、手順メモです。
大きな手順は以下
-
- Python3.Xをコンパイル
- PyenvにてDjango実行環境を作成
- pipコマンドでDjangoをインストール
- Djangoにて新規プロジェクトを開始
- CGIファイルを設置しコンフィグファイルを修正
- CSSなどのStaticファイルを収集
Python3.Xをコンパイル
# bash
# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
# cd Python-3.7.2
# ./configure –prefix=~/acountname/python
# make install
#
# ./acountname/python/bin/python3 -V
# Python 3.7.2
PyenvにてDjango実行環境を作成
# ./acountname/python/bin/python3 -m venv ~/acountname/venv-django
# cd acountname/venv-django
# source ./bin/activate
pipコマンドでDjangoをインストール
#(venv-django) pip install django
Djangoにて新規プロジェクトを開始
#(venv-django) django-admin startproject ~/acountname/hogehoge
CGIファイルを設置しコンフィグファイルを修正
#(venv-django) mkdir ~/www/hogehoge
wget https://raw.githubusercontent.com/chibiegg/django-cgi/master/django-python3.cgi
# vi django-python3.cgi
#!/home/acountname/venv-django/bin/python #インストールしたpython環境のパス
sys.path.append(“/home/acountname/venv-django/lib/python3.7/site-packages”) #インストールしたpython環境のsite-packagesへのパス
sys.path.append(“/home/acountname/hogehoge”) #インストールしたDjangoプロジェクトフォルダのパス
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘hogehoge.settings’ #インストールしたDjangoプロジェクトの名前に変更
#(venv-django) cd ~/acountname/hogehoge/
#(venv-django) vi setting.py
ALLOWED_HOSTS = [‘accountname.sakura.ne.jp’]
ROOT_URLCONF = ‘hogehoge.urls’
LANGUAGE_CODE = ‘ja’
TIME_ZONE = ‘Asia/Tokyo’
STATIC_URL = ‘/hogehoge/static/’
STATIC_ROOT = ‘/home/acountname/www/hogehoge/static/’
#(venv-django) cd ~/acountname/hogehoge/
#(venv-django) ./managy.py migrate
#(venv-django) ./managy.py creagesuperuser
CSSなどのStaticファイルを収集
#(venv-django) ./managy.py collectstatic
http://acountname.sakura.ne.jp/hogehoge/django-python3.cgi/admin/ にアクセス
関連ファイルの配置確認
~/acountname/python #インストールしたpython3.7.2
~/acountname/venv-django #インストールしたpython仮想環境
~/acountname/hogehoge #Djangoプロジェクトのルート
~/acountname/www/hogehoge #cgiを設置直接インターネットから叩く場所
~/acountname/www/hogehoge/static #cssなどの静的ファイルを設置
最終的にインターネットにさらされるのは、.cgiのファイルとstaticのみです。
ちなみに、問題なく動作するのですが、叩くたびにpythonのライブラリを全て読み込んでいるのか、なかなか動作は遅いと思いますが、お試し公開サービスぐらいには使えるかと思います。
また、setting.pyを編集すればさくらで提供されているホスティングのMySqlサービスも使用することが出来ます。