Wagtail動かす最低限の設定
2022/02の作業
1.サイト作成
まずは、サイトを作成する。
CodeRedCMSのチュートリアル(https://docs.coderedcorp.com/cms/getting_started/index.html)が分かりやすいので、だいたいその通りにやる。
$ sudo su - work_user $ source work_venv/bin/activate (work_venv) $ coderedcms start --sitename "WorkSite" workesite
Creating a CodeRed CMS project called workesite for WorkSite Success! workesite has been created Next steps: 1. cd workesite/ 2. python manage.py migrate 3. python manage.py createsuperuser 4. python manage.py runserver 5. Go to http://localhost:8000/admin/ and start editing!
この通りに進めていく。
その前にサイトのファイルがいろいろできたので、DBの設定等を変える。
2.サイトの初期設定
CodeRedCMSをベースにファイルがいろいろできているので、Puputの設定等を入れていく。
url.py
・Puputのurlを追加。
(work_venv) $ vi worksite/worksite/urls.py
from puput import urls as puput_urls
・・・・ # urlpatterns の「search/」の下辺りに追加
re_path(r'', include(puput_urls)),
・・・・
base.py
CodeRedCMSでサイトを作成すると、Djangoのsettings.pyがsettingsディレクトリの下にbase.py、prod.py、dev.pyって感じで環境毎の設定に分けて作成してくれる。
まず、全環境共通設定のbase.pyを修正。
・アプリケーションを追加
・日本について設定
・Puputを使う設定
(work_venv) $ vi worksite/worksite/settings/base.py
・・・・ INSTALLED_APPS = [ ・・・・ # INSTALLED_APPS に追加
'wagtail.contrib.sitemaps', 'wagtail.contrib.routable_page', 'django_social_share', 'puput', 'colorful',
・・・・ ] ・・・・ # 日本語使うので変更 #LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'
LANGUAGES = [ # 日本語使うので追加
('ja', _('Japanese')),
('en-us', _('English')) ] # 日本時間がいいので変更 #TIME_ZONE = 'America/New_York'
TIME_ZONE = 'Asia/Tokyo'
・・・・ # 最後にPuputを使うので追加
PUPUT_AS_PLUGIN = True
prod.py、dev.py どれか
それぞの環境に合わせてDBの設定を入れる。
・DB接続情報を追加。
(work_venv) $ vi worksite/worksite/settings/dev.py(prod.py)
・・・・ DATABASES = { 'default': {'ENGINE': 'django.db.backends.postgresql', 'HOST': '127.0.0.1', 'PORT': '5432', 'NAME': 'workdb', 'USER': 'work_db_user', 'PASSWORD': 'パスワード', 'ATOMIC_REQUESTS': True, } } ・・・・
3.DB に初期データを作成
初期マイグレーションする。
x行ちょっとのDDLが実行される。
admin のユーザを作成する。
prod.pyの設定を使うならパラメータの引数を渡す。(--settings worksite.settings.prod)
(work_venv) $ python manage.py migrate
Operations to perform: Apply all migrations: admin, auth, coderedcms, contenttypes, puput, sessions, taggit, wagtailadmin, wagtailcore, wagtaildocs, wagtailembeds, wagtailforms, wagtailimages, wagtailredirects, wagtailsearch, wagtailseo, wagtailusers, website Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK ・・・・
(work_venv) $ python manage.py createsuperuser
ユーザー名 (leave blank to use 'worksite'):
<ユーザ名>
メールアドレス:
<空でもいい>
Password:
<パスワード>
Password (again):
<パスワード>
Superuser created successfully.
起動してみて起動を確認(dev.pyの設定値で起動される)。
(work_venv) $ python manage.py runserver
Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). February 03, 2022 - 18:22:57 Django version 3.2.12, using settings 'worksite.settings.dev' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
って感じで、一応起動はしたはず。
$ ss -an | grep 8000
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 10 127.0.0.1:8000 0.0.0.0:*
ローカルホストで、LISTEN してるので、とりあえず、動作確認する為に、
ssh -i kagi.pem -4 -C -2 -N -L 8000:127.0.0.1:8000 ec2-user@ec2-99-99-99-99.us-east-2.compute.amazonaws.com -p 22 -g
みたいな感じで、 SSHトンネルを作って、アクセスすれば、つるっとした画面が表示される。
起動したコンソールに、
[03/Feb/2022 18:39:34] "GET / HTTP/1.1" 200 3635
[03/Feb/2022 18:39:34] "GET /static/coderedcms/vendor/bootstrap/dist/css/bootstrap.min.css HTTP/1.1" 200 161409
[03/Feb/2022 18:39:34] "GET /static/coderedcms/css/codered-front.css?v=0.22.3 HTTP/1.1" 200 5971
[03/Feb/2022 18:39:34] "GET /static/website/css/custom.css HTTP/1.1" 200 0
[03/Feb/2022 18:39:34] "GET /static/coderedcms/vendor/bootstrap/dist/js/bootstrap.min.js?v=0.22.3 HTTP/1.1" 200 63467
[03/Feb/2022 18:39:34] "GET /static/coderedcms/js/codered-front.js?v=0.22.3 HTTP/1.1" 200 10630
[03/Feb/2022 18:39:34] "GET /static/coderedcms/vendor/jquery/jquery-3.5.1.min.js?v=0.22.3 HTTP/1.1" 200 89476
・・・・
こんな感じでアクセスログが出力される。