a-blog cmsを導入します。個人利用を無料にする「ソロライセンス」の提供が2021年6月23日から開始されています。a blog cmsは国産なので読者の方はいかがでしょうか?
まずはライセンスを購入する必要がありますが、個人は無料です。
マイページへのログインが必要ですので新規でアカウントを作成します。
次に使用するドメインを登録しておきます。ソロプランはあとでドメインの変更ができないので注意します。
インストールする環境はOracleCloudのLinixのインスタンスです。ホストOSはubuntu22.04でdockerを使用して構築します。
ダウンロード→解凍→解凍して作成されたディレクトリ名を変更
wget https://developer.a-blogcms.jp/_package/3.0.27/acms3.0.27.zip
unzip acms3.0.27.zip
mv acms3.0.27 acms3
a-blog cmsはPHPを使用しているので、おそらくWordpressのイメージを使用できます。コンテナを立ち上げるだけの簡単なコマンドを入力します。
docker run --name test -d wordpress
コンテナに入って主要なファイルの場所を確認します。
docker exec -ti test bash
ファイルの場所は下記のようになっていました。
/var/www/html→ドキュメントルート
/etc/apache2→webサーバーの設定ファイル
/usr/local/etc/php→PHP関連
a-blog cmsのディレクトリに移動して作業します。ここにコンテナからPHP関連とWebサーバー関連のファイルをコピーしてきます。ディレクトリ付きでコピーしてくるのでファイルがごちゃごちゃになることはありません。
cd acms3
docker cp test:/usr/local/etc/php /root/acms3/
docker cp test:/etc/apache2 /root/acms3/
公式のページに書いてあるように、次のファイルを適切なファイル名に変更します。
htaccess.txt
archives/htaccess.txt
archives_rev/htaccess.txt
media/htaccess.txt
cache/htaccess.txt
private/htaccess.txt
themes/htaccess.txt
editorconfig.txt
env.txt
gitignore.txt
例
mv htaccess.txt .htaccess
mv editorconfig.txt .editorconfig
PHPとウェブサーバー設定ファイルをコピーしたので、コンテナを停止して削除します。
docker stop test
docker rm test
今度は、a-blog cmsが動作するようにコンテナを立ち上げます。ホストにあるa-blog cmsのファイルをコンテナのWordpressがあるディレクトリにマウントして起動します。ホストが優先されるので、コンテナ内のWordpress関連のファイルはa-blog cmsのファイルに置き替わります。
docker run \
--name acms3 \
-p 8888:80 \
-v /root/acms3/php:/usr/local/etc/php \
-v /root/acms3/apache2:/etc/apache2 \
-v /root/acms3/ablogcms:/var/www/html \
-d wordpress
忘れずにホストで使用するポートのトラフィックを許可しておきます。オラクルクラウドのイングレスルールにも追加しておきます。
ufw allow 8888/tcp
ufw status
WordPressのディレクトリでは所有権がwww-dataになっていたので、同等の設定にします。
chown -R www-data:www-data /root/acms3/ablogcms
ブラウザでアクセスします。
http://ipアドレス:8888/
データベースの設定画面では自分のデータベース情報を入力します。データベースは別マシンにあるのでその情報を入力します。データベースには外部からユーザーにアクセスする権限を与えておくことも忘れずにしておきます。しかし、なんどやっても次に進めません。
コンテナに入って、データベースに接続するのに必要な拡張機能をインストールします。データベースへのアクセスを可能にするためのインターフェイスを実装したドライバです。
docker exec -ti acms3 bash
docker-php-ext-install pdo_mysql
コンテナの再起動を忘れずにします。
docker restart acms3
国産CMSなので使い方もそれほど難しいものではありません。