続・Joomla!セットアップ顛末

Joomla!をすこしずつ触っているのですが、やっぱり情報が少ないよねぇ、と思うわけです。とは言え、以前自分が書いた記事は検索してみてもあまり人気がない。どうやら環境構築ごときでは「箸にも棒にもひっかからない」のでしょうなぁ。

racchie.hatenablog.com

ということで、地味にではあるけれどずっと開発しているJoomla!についてのアップデートです。前回は、

テストサーバとしてVagrantを使うことにしました。Docker/Docker-composeでも良かったんですが、なんかまだ「サーバの動きが見えていない」状態なので

と、まだサーバがどうなっているのかもわからない状態だったのですが、一回Vagrantで構築をしてだいたいサーバの様子がわかってきたので、Dockerでの構築にチャレンジをしてみました。

「サーバ」の構築①(概要編)

Vagrantのように具体的なサーバを作るわけではなく、基本的には「アリモノ」の(サーバ)コンテナイメージを使う*1のがDocker流のような気がします。

最初はLAMPスタック風かな、と考えていました。以前EC-CUBEのテスト環境構築をしたことがあるのでこの方式の応用です。

racchie.hatenablog.com

ただ、Wordpressを構築する場合は、基本的にWordpress用のコンテナとDB(MySQL)コンテナを組み合わせてDocker-composeで構築をしています。Docker HUBの公式イメージを使うんですね。コレと、MySQLのコンテナを組み合わせるわけです(リンクはあとで紹介しますね)。

hub.docker.com

同様に、Joomla!に特化したコンテナがあるのでそれを使うことになります。

hub.docker.com

ちなみにコレがMySQLのコンテナ。

hub.docker.com

「サーバ」の構築②(セットアップ編)

docker-composeを実行するディレクトリにdocker-compose.ymlファイルを作ります。そのディレクトリの下層に更に「html」「data」のディレクトリを作っておきます。

これがdocker-compose.yml。

version: '3.1'

services:
  joomla:
    image: joomla
    links:
      - joomladb:mysql
    ports:
      - 8080:80
    volumes:
      - "./html:/var/www/html"
    environment:
      JOOMLA_DB_HOST: joomladb
      JOOMLA_DB_PASSWORD: example

  joomladb:
    image: mysql:5.6
    ports:
      - 3306
    volumes:
      - "./data:/var/lib/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: example

htmlディレクトリはdocker-compose.ymlでルートディレクトリに設定していますので、ここにJoomla!のパッケージファイルを展開すればよいです。そして、 docker-compose up -dでコンテナを起動し、起動が完了したらブラウザでlocalhost:8080を実行すればJoomla!のインストールが始まります。

Joomla!のセットアップ

画面通りに設定すればOK、なのですが、一応注意点を。セットアップ画面の2番め、「データベース設定」画面でのDBアクセス情報は以下のようになります*2。 * ホスト:joomladb * 設定したホスト名を指定しています * ユーザ名:root * 今回は明示的にユーザの指示をしていないので、ルートユーザでDBアクセスを行っています。 * パスワード:example * MySQLのルートパスワードを指定しています。 * データベース名:joomladb * コンテナ名を指定しています

セットアップが終わったらどうするの?

サンプルデータのインストールを行ってみても、今ひとつイケてない画面が表示されます。すごく私的な話で恐縮ですが、WordpressのTwenty Tenに似た感じですが、更にダメさが増しています。テーマやプラグインなどは一切入れていないので(デフォルトのテーマを使っています)、まぁ仕方ないのですが、ここからテーマやプラグインを導入して「カスタマイズ」を行っていくわけです。

f:id:racchie:20200730132341p:plain
初期状態のサイト。ダサい。
ということで一旦セットアップは完了としておきましょう。

*1:そしてなければ作る

*2:サンプルとしてわかりにくくてごめんなさい。