joomla!とは、オープンソースのCMSをインストールします

スポンサーリンク

本日はjoomla!をインストールします。Joomlaは、ウェブサイトを作成・管理するためのオープンソースのコンテンツ管理システム(CMS)です。ユーザーがプログラミングスキルを持っていなくても、ウェブサイトのコンテンツを編集したり、デザインを調整したりできます。

Docker

OracleCloudのインスタンスにDockerを使用してインストールします。旧WappyのWADAXでもインストールできました。ですのでPleskでもインストールできることになります。こちらはファイルをダウンロードして、それを解凍してデータベースの設定をするだけで簡単に設置することができました。今回の記事はdockerを使用する設置の仕方を説明します。joomlaの公式イメージがあるので比較的容易に設置できます。
まずは簡単なコマンドで立ち上げます。コンテナの中を調査するためです。

docker run --name test -d joomla

しかし、起動しないのでログを確認します。

docker logs test

error: missing JOOMLA_DB_HOST and MYSQL_PORT_3306_TCP environment variables
Did you forget to –link some_mysql_container:mysql or set an external db
with -e JOOMLA_DB_HOST=hostname:port?

どうやらデータベース情報がないと立ち上がらないようです。コンテナを削除します。

docker rm test

データベース情報を追記してコマンドを入力します。

docker run \
 --name test \
 -e JOOMLA_DB_HOST=10.0.0.107:3306 \
 -e JOOMLA_DB_NAME=joomla \
 -e JOOMLA_DB_USER=mamushi \
 -e JOOMLA_DB_PASSWORD=testpass \
 -d joomla

この時、データベース情報が間違っているとコンテナが途中で停止します。どうやらデータベースに接続を試みているみたいです。コンテナが立ち上がったのでコンテナ内を調査します。

docker exec -ti test bash

ファイルやディレクトリの場所は下記のようになっていました。また、www-dataがドキュメントルートの所有者であることを覚えておきます。

/etc/apache2→webサーバーの設定ファイル
/usr/local/etc/php→PHP関連
/var/www/html→ドキュメントルート

コンテナからホストにこれらのファイルをコピーしてきます。コンテナに入らずにファイルを編集できるようにするためです。

docker cp test:/usr/local/etc/php /root/joo-php/
docker cp test:/etc/apache2 /root/joo-apache2/
docker cp test:/var/www/html /root/joomla/

ファイルをコピーしたことにより、ドキュメントルートの所有権がrootに変更になってしまったので修正します。

chown -R www-data:www-data /root/joomla

必要なファイルはホストに取り寄せたので、コンテナを停止して削除します。

docker stop test
docker rm test

ここまででjoomlaを運用できる準備が整いました。マウントするオプションも追加してコマンドを入力します。

docker run \
 --name jcms \
 -p 8881:80 \
 -v /root/joo-php:/usr/local/etc/php \
 -v /root/joo-apache2:/etc/apache2 \
 -v /root/joomla:/var/www/html \
 -e JOOMLA_DB_HOST=10.0.0.107:3306 \
 -e JOOMLA_DB_NAME=joomla \
 -e JOOMLA_DB_USER=mamushi \
 -e JOOMLA_DB_PASSWORD=testpass \
 -d joomla

ホスト側のポートのトラフィックを許可しておきます。

ufw allow 8881/tcp

ブラウザでアクセスします。

http://IPアドレス:8881/

日本語ファイルも管理画面でダウンロードしてインストールすることができる親切設計です。

タイトルとURLをコピーしました