自粛期間の正しい過ごし方

RGサザビー

自粛期間が退屈で思わず購入&素組み。1/144なのに大きさに驚き。上半身だけでジオングを同じくらいありそう。

RG νガンダム

サザビー完成の翌週に作り始めた第2弾。これも素組みだけど、墨入れと軽く汚し入れました。

コンソール出力プラグイン

他サイトのブログを見ると、シェルコマンドの入出力の表記が綺麗なので、Wordpressでも出来ないかと調べてみたら結構あったので、プラグインを二つほど入れてみた。

Enlighter – Customizable Syntax Highlighter

SyntaxHighlighter Evolved

どちらもプログラムソースコード用で、コンソール出力も対応しているが、Enlighterはコピーコマンド付きでテーマを都度々設定する必要があり。Evolvedはコピーコマンドは無いがプラグイン設定でテーマ選択が固定出来る。両方の特徴を活かして、前者Enlighterはプログラムソースコード表示用とし、後者Evolvedは黒画面固定出来るということで、シェルコマンド画面用として使用することにしました。

サーバー引越などで再設定するときの覚え書きとします。

djangoサイト立ち上げメモ①

Django によるポータルサイトを公開したので、今後のメンテのためにメモを残しておきます。

まずは最初にPyhon環境から構築します。

Pythonはバージョン依存が大きい所もあるので、仮想環境を作ります。

当サイトではWEBアクセス用アカウントを使用しているので、そちらにsuして作業。

先に python 用 virtualenv をインストールします

$ python -m pip install virtualenv

djangoプロジェクトを作成する仮想環境を作成します。(WEBアクセス用アカウントで)

場所は適当で、python3.8 の環境にしてみました

$ virtualenv -p python3.8 venv
以降ドラフト

ポータルサイトは完成しているので、思い出しメモ代わりに追々と続けます。ただ殆どの内容は他サイト情報のコピペに近いものになるので、実際にこのサイトを構築するのに自分がやったことが中心に出来ればと思います。

→ はじめてのDjangoアプリ作成

  • 仮想環境に各種ライブラリをインストール(mysql用ライブラリも含む)
  • 公開サイトのプロジェクトを作成
  • アプリケーション作成(top)
  • ビュー作成
  • モデル作成・データベース接続
  • ビュー修正、テンプレート作成
  • Apache環境へのデプロイ(https仮想サーバ設定)

Django と Letsencrypt

まろ茶ネットの公開WEBサーバーをSSL化するに当たってLeysencryptを導入しましたが、現在作成中のポータルサイトで採用しているDjango WEBアプリでは -webrootによるサイト登録がうまく行かない問題がありました。(現在はテスト用仮想サーバにて動作確認中)

certbot-auto で登録するサイトのwebroot(DocumentRoot?)に一時的な静的ファイルを作成して、登録URLからアクセスできるかどうかを確認しているようですが、DjangoではDocumentRootに静的ファイルを作成しても、WEBアプリのエンジンによりURLからアクセスできないようになっている感じ。

そこで、urls.py などを細工して、Letsencryptの静的ファイルにアクセスできるように誘導する必要がありました。

<project>/settings.py

# for Letsencrypt certification 
CERT_ROOT = os.path.join(BASE_DIR, '.well-known') 
CERT_URL = '/.well-known'

注).well-known はcertbot-autoが作成する静的ファイル

<project>/urls.py

urlpatterns = [ 
    path('admin/', admin.site.urls),
    path('', include('top.urls')), 
    path('tinymce/', include('tinymce.urls')),
] 
urlpatterns += static(settings.CERT_URL, document_root=settings.CERT_ROOT)

urlpatterns はリストに直接入れても良いような気がするが、上記のようにしないとうまく行きませんでした。

これでDjangoアプリサイトをLetsencryptに登録出来るようになりました。

下記サイトを参考にしました(と言いますか、まんまの情報です)

SSL証明書の取得(無料版letsencrypt)

https://www.server-world.info/query?os=CentOS_8&p=ssl&f=2

CentOS8へのインストール

# dnf module -y install python36
# dnf -y install gcc mod_ssl python3-virtualenv redhat-rpm-config augeas-libs libffi-devel openssl-devel
# curl -O https://dl.eff.org/certbot-auto [root@marocha ~]# mv certbot-auto /usr/local/bin/
# chmod 700 /usr/local/bin/certbot-auto

登録コマンド

# certbot-auto certonly --webroot -w /var/www/html -d www.marochanet.org

バーチャルホストのサイトは並べて登録するか、続けて登録

更新コマンド(複数のバーチャルホストは一度に更新可能)

# certbot-auto renew
ということで、こちらブログサイトも無事SSL化となりました。
 

CentOS8にpythonモジュールmysqlclinetインストール問題

サーバーOSをCentOS8に変更した機会に、メインのポータルサイトをXOOPS環境から変更を検討中。

個人サイトのポータルなのでそんなに豊富なコンテンツはないが、かといって静的なHTMLサイトではつまらないと言うことで、Python環境のWEBアプリフレームワークDjangoの導入・勉強で進めている。

参考サイト
https://docs.djangoproject.com/ja/3.0/intro/tutorial01/

デフォルトのSQLite3からWordPressと同じMySQLに変更
https://qiita.com/SE_AmericanFootball/items/e222604943c500801746

しかし、CentOS8では MariaDBがメインになっているため、うまく mysqlclientがインストールできない。

そこで

$ dnf remove mariadb-devel
$ dnf install mysql-devel

とすることで

$ python pip install mysqlclient

が通るようになり

$ python manage.py migrate

などあとはSQLiteと同じ手続きで進めるようになった。