さくらの共用レンタルのスタンダードでのdjango公開方法のメモ。
環境としては下記の通り。
ネットで調べてインストール。
.cshrcを見ると下記を追記していた。
作成(非公開フォルダで良い)と切り替え
virtualenv myenv
cd myenv
source bin/activate.csh
抜けるときはdeactivate
pip install django==1.9.7
pip install PyMySQL
pip install mysqlclient
manage.pyに下記追加
import pymysql
pymysql.install_as_MySQLdb()
あとはcreatesuperuser等。
詳しくは分からないがPyMySQLとmysqlclient両方を追加しないと上手くいかなかった。
公開フォルダにはdjango.cgiを設置するのだが、python3で動作するものを使う必要があるので下記を使用。
django-cgi/django-python3.cgi at master · chibiegg/django-cgi · GitHub
中身は下記を設定。
1行名は仮想環境のbin/pythonのパス。
sys.path.appendをしろ、というところに下記を追記。
sys.path.append('仮想環境パス/lib/python3.5/site-packages')
sys.path.append("仮想環境パス/プロジェクト名")
末尾あたりに
os.environ['DJANGO_SETTINGS_MODULE'] = 'プロジェクト名.settings'
あとは.htaccessも設置。
(RewriteBaseは適宜指定)
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ django.cgi/$1 [QSA,L]
とりあえず上記でアクセスできるようになるのだが、
adminにアクセスしてみるとcss等が正しく反映されていない。
ローカル環境のrunserverと違い、staticが正しく表示されないので、
collectstaticを利用しファイルを公開フォルダにコピーする必要がある。
まずsettings.pyに下記を設定。(バーチャルホストを使わない例)
STATIC_ROOT = '/home/username/www/myapp/static'
STATIC_URL = '/myapp/static/'
この状態で下記を実行でコピーされる。
python manage.py collectstatic
これで公開までの一通りの準備が完了。
(この先の諸々も問題なく動作するかは不明)
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント