ConoHa WINGは、SSHもWP-CLIも対応していると公式ページにも書いてあるし、Xserverやさくらと同じ感覚で動くと思っていたら結構大変のようです。
他のレンタルサーバーと同じ感覚で叩くと引っかかるポイントがいくつかあって、運用に組み込もうとすると意外と一手間かかる。
罠① SSHポートが 22 ではなく 8022
ConoHa WINGのSSHポートは標準の22ではなく、8022 です。
普段ポート指定なし(=22)でSSH接続している人や、自動化スクリプトに22をハードコードしている場合、最初の接続でひたすらタイムアウトを食らいます。エラーメッセージが「接続できません」「タイムアウトしました」系で、原因がポート番号だけだとは中々気づけない。
ssh -p 8022 c1234567@xxxx-xxxx.conohawing.com
のように、ポートを必ず明示する。アプリやライブラリ側に「SSHポート」設定があるなら、まずここを 8022 に変えるのが第一歩です。
罠② SSH鍵は .pem 形式で発行される
ConoHa WINGの公開鍵認証用の鍵は、コントロールパネルの「サーバー管理 → SSH → +SSH KEY」で発行します。発行ボタンを押すと .pem ファイル がダウンロードされます。
中身はOpenSSH互換の秘密鍵なので、パスを指定すれば普通に使えます。ただし:
-
macOS :ダウンロード直後の
.pemはパーミッションが緩すぎて、SSHが「Permissions are too open」と言って鍵を読んでくれません。chmod 600 ~/.ssh/conoha.pemを一度だけ実行する必要があります。 -
Windows :
%USERPROFILE%\.ssh\配下に置けば、特別な権限調整なしで動くことが多い。
地味なポイントなんですが、ここもハマりポイント。
罠③ WP-CLI がそのままでは見つからない
これが一番厄介。
Xserver・さくら・Heteml系のサーバーは wp コマンドが最初からPATHの通った場所に置いてあって、SSHでログインしていきなり wp --info を叩けばバージョンが返ってきます。
ConoHa WINGは、
$ wp --info
-bash: wp: command not found
$ which wp
(何も出ない)
PATHに通っていないだけかと思って探しても、ホーム領域には見当たらない。共有環境のどこかにあるのかもしれませんが、少なくとも自分のシェルからは到達できない状態でした。
つまり、どこあるか分からない…😅
解決策:ホーム領域に自分で置く
WP-CLIは公式から wp-cli.phar という単一のPHARファイルをダウンロードして配置するだけで動きます。自分のホーム領域に置いてしまえば、サーバー全体やほかの利用者には何も影響しません。
ターミナル派(SSH接続後にコマンドで設置):
mkdir -p ~/bin
cd ~/bin
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
mv wp-cli.phar wp
chmod 755 wp
~/bin/wp --info # バージョンが出れば成功
ファイルマネージャー派(ターミナル不要):
ConoHa WINGには「WING → サイト管理 → ファイルマネージャー」というブラウザベースのファイル操作ツールがあって、これだけで全工程をこなせます。
- パソコン側で
wp-cli.pharをダウンロードし、ファイル名をwpにリネーム(拡張子.pharを消す) - ファイルマネージャーでホーム直下に
binフォルダを作成 - その中に
wpファイルをドラッグ&ドロップでアップロード - アップロードした
wpを右クリック → 「属性変更」→ パーミッションを755に
エンジニアじゃないクライアントに「ターミナル開いてください」とお願いしなくて済むのは、それだけで運用上のメリットがあります。
罠④ wp コマンドは絶対パスで呼ぶのが安全
~/bin を .bashrc 等でPATHに通すこともできるんですが、自動化スクリプトから非対話シェルで実行する場合、.bashrc が読み込まれないことがあります。結果として「対話SSHでは動くのに、自動化スクリプトからだと動かない」という、再現条件のはっきりしない問題になりがち。
確実なのは、絶対パスで呼ぶこと。
/home/c1234567/bin/wp plugin list
c1234567 の部分はアカウントごとのユーザー名で、コントロールパネルの「サーバー管理 → SSH」画面で確認できます。
自動化ツール側に「サーバー別のWP-CLIパス」設定を持たせておくと、Xserverは wp、ConoHa WINGは /home/c1234567/bin/wp、Hetemlは /usr/local/bin/wp、というように切り替えられて、運用がぐっと安定します。
動かしてみると
ここまで4つの罠を片付けると、ConoHa WINGでも他社と同じようにWP-CLIが普通に回ります。
/home/c1234567/bin/wp db export backup.sql
/home/c1234567/bin/wp plugin update --all
/home/c1234567/bin/wp plugin install some-plugin --version=1.2.3 --force
ステータス異常が合ったプラグインだけ戻す「ピンポイントロールバック」も問題なく動きました。設定さえ通れば、Xserverとの違いを意識する場面はほとんどありません。
ConoHa WINGで詰まらないためのチェックリスト
- SSHポートは 8022(22ではない)
- 秘密鍵は .pem 形式。macOSは
chmod 600を忘れない - WP-CLI は 自分で
~/bin/wpに配置(デフォルトのシェルからは見えない) - スクリプト・自動化からは 絶対パス(
/home/c1234567/bin/wp)で呼ぶ
「対応サーバー一覧」にConoHa WINGが入っていても、実運用に組み込む時はこの4項目を最初に確認するのが確実です。逆に言えば、この4つさえ片付けてしまえば、ConoHa WINGでもWP-CLIベースの自動メンテは普通に成立します。