WordPressでサイトを作ることになって(このブログもWordPressですが・・・)、高速化するのにKUSANAGIという仮想マシンが話題になってたなと思い出して、試しにMacBook上のDocker machineにKUSANAGIのDocker用イメージ「KUSANAGI Runs on Docker(KUSANAGI RoD)」をインストールしてみました。
ちなみに、KUSANAGIは、推奨メモリが4GBなんだとかで、調べているうちに「メモリが少ないと極端に遅い」というレビューも見ましたが、今回はあえてKUSANAGI用docker machineには、Conohaの最安値プラン(1コアCPU / 512MB)での運用を目指して、同じスペックにしてあります。
MacBookの環境を極力汚さないようにDocker Machineを使いましたが、Mac上でもできます。その場合は、Docker machine上でまで読み飛ばして、Docker MachineをMacに置き換えて進めてください。Mac
Mac上で
[bash] //Conoha 512MBプランを想定して「memory=512」「cpu-count=1」を設定 docker-machine create --driver virtualbox --virtualbox-memory=512 --virtualbox-cpu-count=1 kusanagi-machine //docker machineが立ち上がっているか確認 docker-machine ls //docker machineの詳細。あとで使うので、IPアドレスを控えておく docker-machine env kusanagi-machine //docker machineにSSHログイン docker-machine ssh kusanagi-machine [/bash]
Docker machine上で
[bash] //Mac上でやるなら不要 sudo su //docker-composeをインストール curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-uname -s
-uname -m
> /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose version // 作業用ディレクトリ。不要な場合は飛ばす mkdir kusanagi cd kusanagi //KUSANAGI用docker composeを用意 //from https://kusanagi.tokyo/cloud/kusanagi-runs-on-docker/ vi docker-compose up -d version: '2' services: kusanagi-data: container_name: kusanagi-data image: busybox restart: always stdin_open: true tty: true volumes: - /var/lib/mysql - /etc/nginx/conf.d - /etc/httpd/conf.d - /etc/kusanagi.d - /home/kusanagi command: /bin/sh kusanagi-nginx: container_name: kusanagi-nginx image: primestrategy/kusanagi-nginx:1.10.0-1 environment: PROFILE: kusanagi FQDN: kusanagi.example.jp WPLANG: ja BCACHE: "off" FCACHE: "off" volumes_from: - kusanagi-data links: - kusanagi-php7:php - kusanagi-mariadb:mysql ports: - "80:80" //Mac上でやる場合は、80番ポートが使えないので、8080:8080などを使う - "443:443" kusanagi-mariadb: container_name: kusanagi-mariadb image: mariadb:10.0.24 environment: MYSQL_ROOT_PASSWORD: my-secret-pw MYSQL_USER: user //DBのユーザー名 MYSQL_PASSWORD: password//DBのパスワード MYSQL_DATABASE: wordpress//DB名 volumes_from: - kusanagi-data kusanagi-php7: container_name: kusanagi-php7 image: primestrategy/kusanagi-php7:7.0.6-1 links: - kusanagi-mariadb:mysql volumes_from: - kusanagi-data //KUSANAGI用のdockerを起動 docker-compose up -d [/bash]
プラグインなどの更新をする設定
KUSANAGIではデフォルトでftpポートを閉じているそうです。というか、そもそも今回のDocker環境ではftpサーバー環境がないので、アップデートやプラグインのインストールができません。
そこで、kusanagi-dataコンテナに入って、「wp-config.php」を編集してFTPじゃないアップデートを許可します。
[bash] docker exec -it kusanagi-data /bin/sh vi /home/kusanagi/kusanagi/wp-config.php //ここの行を追加 define('FS_METHOD', 'direct'); [/bash]
これで、アップデートやプラグインの追加ができるようになりました。ただ、セキュリティ的にはあまりよくないので、インストール系が終わったら切るほうがよさそうです。
WordPressにアクセス
ブラウザで、Docker-machineのIPアドレスを叩くと、WordPressの初期設定画面が出てきます。
データベースのIDやパスワードは、上のdocker-compose.ymlに記述したものになるので、そちらを入力します。
KUSANAGI for WordPressを使ってみて
使ってみると、MacBook 12インチ(2016 Core m7)上でもサクサク動きました。また、データがほとんど入っていない&&アクセスがないからという気もしますが、これなら、ひょっとしたらConoha 512MBでも意外と快適かもしれませんね。
(少なくともこのブログよりかは早い ---> こっちは無料サーバーだから当たり前)