Joomla!をすこしずつ触っているのですが、やっぱり情報が少ないよねぇ、と思うわけです。とは言え、以前自分が書いた記事は検索してみてもあまり人気がない。どうやら環境構築ごときでは「箸にも棒にもひっかからない」のでしょうなぁ。
ということで、地味にではあるけれどずっと開発しているJoomla!についてのアップデートです。前回は、
テストサーバとしてVagrantを使うことにしました。Docker/Docker-composeでも良かったんですが、なんかまだ「サーバの動きが見えていない」状態なので
と、まだサーバがどうなっているのかもわからない状態だったのですが、一回Vagrantで構築をしてだいたいサーバの様子がわかってきたので、Dockerでの構築にチャレンジをしてみました。
「サーバ」の構築①(概要編)
Vagrantのように具体的なサーバを作るわけではなく、基本的には「アリモノ」の(サーバ)コンテナイメージを使う*1のがDocker流のような気がします。
最初はLAMPスタック風かな、と考えていました。以前EC-CUBEのテスト環境構築をしたことがあるのでこの方式の応用です。
ただ、Wordpressを構築する場合は、基本的にWordpress用のコンテナとDB(MySQL)コンテナを組み合わせてDocker-composeで構築をしています。Docker HUBの公式イメージを使うんですね。コレと、MySQLのコンテナを組み合わせるわけです(リンクはあとで紹介しますね)。
同様に、Joomla!に特化したコンテナがあるのでそれを使うことになります。
ちなみにコレがMySQLのコンテナ。
「サーバ」の構築②(セットアップ編)
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に似た感じですが、更にダメさが増しています。テーマやプラグインなどは一切入れていないので(デフォルトのテーマを使っています)、まぁ仕方ないのですが、ここからテーマやプラグインを導入して「カスタマイズ」を行っていくわけです。 ということで一旦セットアップは完了としておきましょう。