[WordPress] KUSANAGI Runs on DockerでKUSANAGIコマンドを使う

KUSANAGIをDockerで使える便利なコンテナ「KUSANAGI Runs on Docker」。単純にWordPressを立ち上げるだけでなく、KUSANAGI特有の「KUSANAGIコマンド」がどれくらい使えるか試してみました。

まずは、nginxコンテナに入る

imageでprimestrategy/kusanagi-nginxを指定しているコンテナです。ここでは「kusanagi-nginx」という名前のコンテナとします。

docker exec -it kusanagi-nginx sh

これで、kusanagi {コマンド}と打てばKUSANAGIコマンドが使えるようになります。

コマンドを試してみる

コマンド 処理内容 結果
kusanagi provision 新しいWordPressサイトを立ち上げる
kusanagi status KUSANAGIサイトのステータスを確認する
kusanagi target KUSANAGIコマンドの向き先を設定する
kusanagi warm-up HHVMをウォームアップ ×
kusanagi nginx nginxに切り替え ×
kusanagi httpd apache2に切り替え ×
kusanagi restart KUSANAGIを再起動 ×
kusanagi bcache 生成されるページをキャッシュするbcacheの設定
kusanagi fcache FastCGIのレスポンスをキャッシュするfcacheの設定
kusanagi configure KUSANAGIの設定内容を確認
kusanagi setting –fqdn KUSANAGIのURLを設定 ×
kusanagi https redirect KUSANAGIのHTTPS化
kusanagi https autorenewal Let’s EncryptのSSL証明書の自動更新 ×

kusanagi provision

kusanagi provision test_wordpress

/home/kusanagi/test_wordpress.
Choose the installation language of WordPress.

1 : en_US
2 : ja

q : quit

Which do you choose?: 2

You choose: ja

Enter hostname(fqdn) for your website. ex) kusanagi.tokyo
test.revdev.work
Re-type hostname(fqdn) for your website.
test.revdev.work

In order to use Let's Encrypt services, you must agree to Let's Encrypt's Term of Services.
If you agree to this TOS, type your email address; if not, hit enter twice.
TOS of Let's Encrypt : https://letsencrypt.org/repository/

Re-type mail address.


Enter the name of your database.
wordpress
Re-type database name you create.
wordpress

Enter user name for database 'wordpress'.
user
Re-type user name for database 'wordpress'
user
/usr/lib/kusanagi/lib/provision.sh: line 161: mysql: command not found

Enter password for database user 'user'. USE [a-zA-Z0-9.!#%+_-] 8 characters minimum.
Re-type password for database user 'user'.
/usr/lib/kusanagi/lib/provision.sh: line 180: mysql: command not found
/usr/lib/kusanagi/lib/provision.sh: line 183: mysql: command not found
/usr/lib/kusanagi/lib/provision.sh: line 184: mysql: command not found
--2017-09-02 06:40:09--  https://ja.wordpress.org/latest-ja.tar.gz
Resolving ja.wordpress.org (ja.wordpress.org)... 66.155.40.250, 66.155.40.249
Connecting to ja.wordpress.org (ja.wordpress.org)|66.155.40.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8652714 (8.3M) [application/octet-stream]
Saving to: 'wordpress.tar.gz'

100%[======================================>] 8,652,714   7.65MB/s   in 1.1s

2017-09-02 06:40:11 (7.65 MB/s) - 'wordpress.tar.gz' saved [8652714/8652714]

Provisioning of test_wordpress completed. Access test.revdev.work and install WordPress!

mysqlのところでエラーになっていますが、primestrategy/kusanagi-nginxコンテナにmysqlがインストールされてないので当然です。ここは手動でMYSQLの設定をしておけばOKです。

test.revdev.workにアクセスするとしっかりとWordPressの設定画面が表示されたので、HTTPサイトであれば利用可能かもしれません。(SSLはオレオレ証明書になってます)

ただし、複数サイトを登録すると502エラーになりました。

kusanagi status

sh-4.2# kusanagi status

Profile: hogehoge.com
KUSANAGI Version 7.8.2

*** nginx ***
Failed to get D-Bus connection: Operation not permitted

*** Apache2 ***
Failed to get D-Bus connection: Operation not permitted

*** HHVM ***
Failed to get D-Bus connection: Operation not permitted

*** php-fpm ***
Failed to get D-Bus connection: Operation not permitted

*** php7-fpm ***
Failed to get D-Bus connection: Operation not permitted

*** Cache Status ***

fcache on

取れるところは取れてます。

kusanagi target

sh-4.2# kusanagi target
hogehoge.com

設定ができてるっぽいです。

kusanagi warm-up

kusanagi warm-up

...

HHVMじゃなくてPHP7を使っているので何も起こりません。

kusanagi update plugin

kusanagi update plugin

/usr/lib/kusanagi/lib/functions.sh: line 128: /usr/bin/php: No such file or directory
/usr/lib/kusanagi/lib/functions.sh: line 128: /usr/bin/php: No such file or directory

本来なら「Done.」と出るようですが、PHPが別コンテナなので、PHPを呼び出せてません。

kusanagi nginx

kusanagi nginx

use nginx
Failed to get D-Bus connection: Operation not permitted

使えません。どのみちnginx使ってるんで意味ないですね。

kusanagi httpd

kusanagi httpd

use httpd
Failed to get D-Bus connection: Operation not permitted

使えません。

kusanagi restart

kusanagi restart

...

何も起こりません。使えないっぽいですね。

kusanagi bcache

kusanagi bcache on

Turning on
...
//固まる

kusanagi bcache on

Turning off
...
//固まる

kusanagi bcache clear
Clearing cache
/usr/lib/kusanagi/lib/functions.sh: line 448: php: command not found

全般的にダメでした。docker-compose.ymlでオフになっている場合は使えないのかもしれません。

kusanagi fcache

kusanagi fcache off

Turning off

kusanagi fcache on
Turning on

kusanagi fcache clear
Clearing cache

全般的に使えました。キャッシュもしっかりとクリアされています。

docker-compose.ymlでFCACHEをONにしていたからだと思われます。

kusanagi configure

innodb_buffer_pool_size = 128M
query_cache_size = 64M
sed: can't read /etc/my.cnf.d/server.cnf: No such file or directory
sed: can't read /etc/my.cnf.d/server.cnf: No such file or directory
Failed to get D-Bus connection: Operation not permitted

外部コンテナを使っている部分が取ってこれないようです。

kusanagi setting –fqdn

kusanagi setting --fqdn test.revdev.work test2.revdev.work
/usr/lib/kusanagi/lib/setting.sh: line 38: sudo: command not found
sed: can't read /etc/nginx/conf.d/test2.revdev.work_http.conf: No such file or directory
sed: can't read /etc/nginx/conf.d/test2.revdev.work_ssl.conf: No such file or directory
sed: can't read /etc/httpd/conf.d/test2.revdev.work_http.conf: No such file or directory
sed: can't read /etc/httpd/conf.d/test2.revdev.work_ssl.conf: No such file or directory
cat: /etc/httpd/conf.d/test2.revdev.work_ssl.conf: No such file or directory
cat: /etc/httpd/conf.d/test2.revdev.work_ssl.conf: No such file or directory
=== WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN ===
Your certificate config in /etc/[nginx|httpd]/conf.d/test2.revdev.work_ssl.conf was not changed.
Please change certificate config you need.
=== WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN WARN ===
sed: cannot rename /etc/sed9fz9Tf: Device or resource busy

使えませんでした。docker-compose.ymlで指定するのが良さそうです。

kusanagi https redirect

kusanagi https redirect

kusanagi https redirect
Set redirect all traffic on kusanagi.example.jp to HTTPS.(Permanently)
/usr/lib/kusanagi/lib/https_redir.sh: line 26: sudo: command not found

最後のhttps_redir.shはこけてますが、一応WordPress内URLはHTTPSになっていました。ただ、オレオレSSLなので、ブラウザでエラーになります。

kusanagi autorenewal on

kusanagi autorenewal on

Enabling auto renewal certificate
cat: /var/spool/cron/root: No such file or directory
/usr/lib/kusanagi/lib/autorenewal.sh: line 9: /var/spool/cron/root: No such file or directory

使えません。公式ページの記載の通りですね。


主なコマンドを見てきました。概ね使えないと思った方が良さそうですね。

ただし、bcacheコマンドなどは、キャッシュクリアをしたい時に使うことになるので、覚えておくのは良いでしょう。