今回は普段からサーバー上の WordPress システムの管理運用に大変お世話になっている WP-CLI 絡みということで、是が非でもいかねば!とおもって参加しました。

ちょっといろいろバタバタしていて、WordPress Meetup は3月に参加して以来、久しぶりになります。
場所は、前回参加した場所と同じ、グラングリーン大阪北館3F Blooming Camp by さくらインターネットさんのところでした。


WordCamp, WordPress Meetup 等 WordPress 関連のお土産品(自由にお取りください!)がずらりと並んでいました。結構、いろいろありますね!

WordPress Meetup 広島からは、きびだんごを、それ以外にもいろいろお菓子があるということです!
そうそう、昼食は大阪駅にあるルクアの地下2Fの、とんかつ新宿さぼてん ルクア大阪店で食べました。

また大阪駅にフランスのアーティスト作品、テッド・イベールなる緑色のくま?が鎮座していました。


プログラム

冒頭、
WordCamp Kansai 2025 の告知がありました。チケット販売も昨日から開始したということ。筆者も実行委員として参加します。次回、10月11日の本イベント、Kansai WordPress Meetup@大阪で、このWordCamp Kansai 2025 の見どころを発表するということ!
参加者の一人が3D Wapuu を作ったということで、それを元に試行錯誤して作成した Wapuu を紹介していました!
以下、いつもながら筆者が聞き取った内容のメモです。
そのため、必ずしも発表者の意図した通りの内容になっているかの保証はしません。
筆者のコメントは # をいれてます。
『WP-CLIの基礎を学ぶ(前半)』

スピーカー:浅川幸宣(あさかわゆきのぶ)
https://profiles.wordpress.org/yukinobu/
セッションスライド(Googleスライド)
前半は WP-CLI について説明、後半はローカル環境をインストールして、実際にいろいろ試してもらう(ハンズオン)。
WP-CLIは、WordPress のような動的処理を行うシステムの場合、コマンドを使って WordPress にログインしなくてもいろいろなことが出来るのが便利。複数サイトの管理や、ブログ更新等。
昔は インターネット回線が遅く、GUIで遠隔地のサーバーを管理することが困難だったこともあり、CUIであることが多かった(Windowsサーバーは古くから GUIだったが)。
実践!
Macはターミナル、PC(Windows OS)はコマンドプロンプトを起動する!
下記は Macのターミナル
下記は PC (Windows OS) のコマンドプロンプト
*Windowsでもコマンドプロンプトでは、get-date がないので date を入れる(新しい日付は何もいれずにEnterで無視する
*Windowsでは、PowerShell というのを使えば、get-dateを使える
以下の PowerShell(コマンドプロンプトよりも高機能な CLI)は、検索で PowerShell と検索すると出てくる。
Macのターミナルでの日付計算- echo $(( ( $(date +%s) - $(date -j -f "%Y-%m-%d" "2003-05-27" +%s) ) / 31556952 ))
*date +%s で現在の日時を数値に変換
数値変換:1970-01-01 00:00:00 UTC からの秒数に変換
*date -j -f "%Y-%m-%d" "2003-05-27" は、
2003年 5月27日 火曜日 15時24分03秒 JST などのように表示される。
-j が日を二桁表示だけれど、0をつけない(8日だと 08日ではなく 8日とする)
-f は次の "%Y-%m-%d" 形式(年-月-日)で年月日を表示するフォーマットを指定
ですので、date が
2025年 9月13日 土曜日 15時25分58秒 JST
だとするなら、
2025年 9月13日 15時25分58秒を数値変換 - 2003年5月27日 15時25分58秒を数値変換の差(秒数)をとって、それを 31556952 で割る(グレゴリオ暦の1年=365.2425日(正確には31556952秒))と、年数がわかるということ。今回は 22 が出力される。
Windowsの場合の日付計算
- powershell -Command "$birthday = Get-Date '2003-05-27'; $now = Get-Date; [math]::Floor(($now - $birthday).TotalDays / 365.2425)"
上記も現在日時 - 2023-05-27(Floorで小数点以下は切り上げして整数化) をするために、TotalDays メソッドを呼び出してうまく数値化して計算。それを、365.2425(1年)で割ると年数がわかるということをしている。今回は 22 が出力される。
『WP-CLIの基礎を学ぶ(後半)』
Local を以前いれていて、しかしログインパスワードがわからないという人がいたのでフォロー。
参考:【Local by Flywheel】パスワードを忘れたときの対処法
wp user list
でユーザーを確認して、下記のコマンドでユーザーのパスワードを変更するというもの
wp user update {メールアドレス} --user_pass={新しいパスワード}
# Local でパスワードを忘れたときにどうするかは経験してなかったので、体験できたのはよかったです!
質問
本番のリモートで使うには?
*本番環境で WP-CLI等コマンド操作をするときは、かなり慎重になってください。場合によっては本番環境のデータを消してしまう可能性もあるためです。基本的にユーザーや記事などを「消す」系のコマンドは使わないことを強く推奨します。またシステム更新などをする場合には、その前にバックアップは必ず取っておいてください。
- SSHを使ってサーバーにリモートログインする
- WordPress の本体が入っているフォルダに移動する(移動は cdコマンドを使う)
- cd www/hogehoge (さくらインターネットの場合、hogehoge にインストールされているとこのようになる)
- WP-CLIで WordPress のコアバージョンをチェック
サーバーで主に使うのは、下記の2つです。それ以外にもいろいろあります。
cd :フォルダ(ディレクトリ)の移動
cd フォルダ名
cd ../ (一つ前のフォルダに戻る)
ls:今いるフォルダ(ディレクトリ)に何が入っているのかリスト表示
複数のサーバーがある場合には?
#以下、筆者説明
個々のサーバーにログインして、WP-CLIが出来るようになるぐらいに操作になれてくれば、次にやりたいのは、サーバーにログインせずとも確認する手段を持つということです。
それは下記を使えば可能です。
端末から直接複数サーバーに対して WP-CLIをする方法
Knowledge for WordPress: 【備忘録】WP-CLI エイリアスを利用したリモートサーバーの WordPress 管理 #wckyoto2017
また同一サーバー上で複数のサイトがある場合に、これを自動バックアップしてメンテナンスするということをしたければ、バックアップを何らかの方法でやったとして、下記のような WordPress ごとにアップデートをするようなコマンドを並べておいて、これを Linux OSや FreeBSD OS などの場合には、cron を使って自動スケジュールをしておけば、自動メンテナンスをすることが可能です。
cd $HOME/www/WordPressAのフォルダ
wp core update
wp core update-db
wp plugin update --all
wp theme update --all
wp language core update
cd $HOME/www/WordPressBのフォルダ
wp core update
wp core update-db
wp plugin update --all
wp theme update --all
wp language core update
バックアップについては、BackWPUP や、
UpdraftPlusプレミアム(有料版)であえれば、WP-CLI に対応しているので、下記をアップデートをする前に実行するようにしておけば、安全です。
UpdraftPlus
wp updraftsplus backup --label="プラグイン UpDrafts 上のラベル"
BackWPUP
wp backwpup start jobID
参照:
筆者はバックアッププラグインBackWPUP はバージョン5.0 から開発者が変更してUIがつかいにくくなってので使わなくなってしまいました。
現在は、下記の GitHUBにあげているスクリプトを実行しています。ちょっと複雑のため、サーバー管理をしたことがある人向けになります(何やっているか、大まかにでも理解せずには使わないでください)。何をしているかわからない場合には、こういったプログラムを通じて WordPress が増えても自動処理を楽にしているんだーという理解ぐらいでいいかなと思います。
- どのようにバックアップするか wp-backup-targets.dat に指定する
- wp-update.csh を深夜に自動実行するよう cron でスケジュールしておく
- wp-update.csh は、wp-backup-targets.dat の中身を読み取って、バックアップする対象の WordPress に対して、データベースデータのエクスポートを WP-CLIコマンドで実行
wp db export --default-character-set=utf8mb4 - WordPress のフォルダ直下に .sql ファイルとしてバックアップデータが保存される
- WordPress フォルダを、丸ごと圧縮して保存
*tar+gzip, tar+bzip2, tar+xz, zip の4つのいずれかの方法で、世代バックアップ(毎日1度ずつ 7日間保存など)。
*指定した日数以上の古いバックアップデータがあれば削除 - エクスポートしたデータベースのデータ .sql ファイルを削除
さくらインターネットの WP-CLI は古いこともあるので(勝手に更新する権限がない)、自前で指定の位置に wp コマンドをインストールしています。
$HOME/backup/bin/wp に wpが存在することを前提にしてます。ここは自動化忘れてます。これがなければ警告がでてプログラムは実行されずに終了するようにはしています。
*スクリプトを作っている間に力尽きて、ここはもういいや〜ってなってしまったのだと思います。
サーバーで隠しフォルダを作れないのか?
UNIX系OS(Linux OS等)のサーバーについては、ディレクトリ(フォルダ)やファイルの名前の先頭にピリオド(.)をつけることで隠しファイルやフォルダになる。
しかし見えなくなるであり、実際にはユーザーやグループに対して適切な権限を付与してアクセスできなくさせることになる。
# WordPress に関連する大きな隠しファイルは、Webサーバーとして有名な apache を使っている場合、WordPress でパーマネントリンクを設定したり、SiteGuard 等セキュリティ系プラグインをいれると、.htaccess という隠しファイルを WordPress は自動で作成します。セキュリティ対策系では、ログインを制限(/wp-admin や /wp-login.php)をすることが多いです。たださくらインターネットの場合には、
国外IPアドレスフィルタのように海外からのアクセスをブロックするフィルタを
明示的に無効化していない限り、自動で有効になっているなど、レンタルサーバーによっては別途セキュリティ対策がされている場合もあります。
その他筆者のメモ
実践!WP-CLIを使って WordPress の管理運用してみよう! -前半- セミナー
懇親会(楽韓堂 グランフロント店)
セッションは17時に終わり、そのまま会場にて18時ぐらいまでいたあと、残ったメンバー8名で懇親会となりました。
グランフロント大阪をうろうろしていると、写真展をしているのが目に止まりました。
その後、懇親会の場所として楽韓堂にふらっと入ったのでした。


*顔出しOKということで、懇親会の雰囲気が少しは分かる感じになっているかと思います。
以下、手前のテーブルで注文した料理の数々は下記の通り。
2時間ほど歓談して20時すぎに解散となりました!




2025年9月13日 @kimipooh