各種プラグインの不具合
引越しをして一からサーバ構築している。
先日、 WordPress の更新をしていた際に不具合が発生していることに気づいた。
しかもプラグインをアップデートしたら使い方が変わっていたものがあったりしてまいっちんぐ。
WP Super Cache 1.2
また君か。
症状
- キャッシュのテストで、couldn’t connect to host と出てキャッシュテストが NG になる
- 予約投稿がうまくいかなくなる
すべてがこのプラグインのせいではないのだが、間接的に大き目の影響を及ぼしてくれる。なかなか大した奴だ。
1. couldn’t connect to host の解決
このエラーが出たせいで /etc/resolv.conf の設定に気づかされたので、感謝していないこともない気がする。
状況としてはこうだ。
サーバには BIND が入っていて、 LAN から studio-soleil.com を引いたときと、インターネット側から studio-soleil.com を引いたときの IP アドレスが異なる仕様になっている。
LAN 側 | 192.168.1.1 (Dummy) |
---|---|
インターネット側 | 180.37.181.181 |
WP Super Cache のエラーを調べていくうちに、「ping studio-soleil.com」はローカル IP ではなくグローバル IP を打っていることに気づいた。
$ ping -c 1 studio-soleil.com PING studio-soleil.com (180.37.181.181) 56(84) bytes of data. 64 bytes from 180.37.181.181: icmp_seq=1 ttl=64 time=0.036 ms
dig で localhost を指定してドメインを問い合わせたときにはうまくいっていたので、そのことにまったく気づいていなかったのだ。
$ dig @localhost studio-soleil.com (略) studio-soleil.com. 86400 IN A 192.168.1.1 (Dummy)
こっちを実行していれば、おかしいとわかったのに。
$ dig studio-soleil.com (略) studio-soleil.com. 86400 IN A 180.37.181.181
で、 /etc/resolv.conf の nameserver 127.0.0.1 を最初に持ってくることで、別の DNS 鯖に問い合わせしに行くことも、結果的にインターネット側の答えを引っ張ってくることもなくなった。
- search studio-soleil.com example.internal
- nameserver 127.0.0.1
- nameserver 192.168.2.1
「nameserver は自分だけでいいし、複数ドメインも使わない」というならこっちのが少し速い。
- domain studio-soleil.com
- nameserver 127.0.0.1
2. 上記でも解決しない場合
普通は上記の方法でうまくいくと思うのだが、どういうわけかはまったく知らないが、うまくいかない場合がある。ちゃんと内部向け IP を拾えているにもかかわらずだ。
$ dig @localhost studio-soleil.com (略) studio-soleil.com. 86400 IN A 192.168.1.1 (Dummy)
これの解決策は、 /etc/hosts 。これでお茶を濁す。
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 studio-soleil.com www.studio-soleil.com
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 studio-soleil.com www.studio-soleil.com
上手くいった。
で後日、何か知らないが、 /etc/hosts からドメイン部分を削っても上手くいくようになった。
何なんだ……
LightBox Gallery と Highslide JS
LightBox Gallery というプラグインを使っている。
WordPress のプラグインなんて気が向いたときにしかアップグレードしないものだから、かなり使い方やらアップグレード方法やらが変わっていて驚いてしまう。
1. アップグレード
- # cd <WordPress ディレクトリ>/wp-content/plugins/tmp
- # wget http://downloads.wordpress.org/plugin/lightbox-gallery.0.7.4.zip
- # unzip lightbox-gallery.0.7.4.zip
- # chown -R apache lightbox-gallery
- # mv ../lightbox-gallery/ ./lightbox-gallery.bak20130307; mv ./lightbox-gallery/ ../
- ・ 以下は個別に DL することになった
- # cd <WordPress ディレクトリ>/wp-content/plugins/lightbox-gallery/js
- # wget http://wpgogo.com/jquery.lightbox.js
- # wget http://wpgogo.com/highslide.js
2. 設定
これはめんどくさがりやな私の設定。
- Highslide JS にチェック
- その他は全部チェック外す、空欄にする
- デフォルトのlightboxサイズをセットする場合 : full
3. 使い方
Highslide JS を利用することにしたので、画像の投稿が若干面倒になった。 Highslide JS を使うと、画像をクリックしたときにぐにゅーんと広がる。
ただ画像のリンクを挿入するだけなら今まで通りだが、ぐにゅーんがしたいなら以下の通りにする。
Highslide JS を使うにはまず、ライブラリを作成する必要がある。
[メディアを追加] – [必要な画像を選択する] – [ギャラリーを作成のボタン]
カラム設定は画像数に応じて調整。
- リンク先はメディアファイル
- カラム 3
[ギャラリーを挿入]
すると、投稿画面にこんな風に入力されるはずだ。
[gallery ids=”1,2,3,4,5″]
これで小さなサムネイルが並んだギャラリーが出来上がる。
しかし、問題は 1 点の画像を Highslide JS で表示させたい場合だ。
[gallery ids=”1″]
これだけでは、小さなサムネイルがぽつんと表示されてしまい、ページが寂しい。
かといって LightBox の設定で「デフォルトのサムネイルサイズをセットする場合: medium」とかにしておくと、横幅が狭いサイトにとっては 3 カラムのときに画像が重なり合ったりして美しくない。
というわけで、投稿記事の方で個別制御することにした。
LightBox Gallery のサムネイルを「中」にする方法
[gallery size=”medium” ids=”1″]
これで OK だ。いちいち size=”medium” を入れるのは面倒だがしょうがない。というか記事を書くことの方がよほど面倒だが、それを言っちゃぁおしまいよ。