別の更新が現在進行中です。

wp core upadte –locale=ja –force && wp core update-db && wp core language update

と打っちゃいました。。。( ꒪⌓꒪)
ほんと、tab補完を使いましょう(俺だよ)。

Error: 'upadte' is not a registered subcommand of 'core'. See 'wp help core'.

ごめんなさい、ごめんなさい。。
気を取り直して、改めて入力しなおすと、

Updating to version 4.7.2 (ja)...
Error: 別の更新が現在進行中です。

…と。。

前にも出たことはあったんですが、特に調べもせずだったので、ググってみると、結構皆さんハマってらっしゃるようで、沢山記事出てました。

参考 : WordPressの更新で”別の更新が現在進行中です。”エラーが出るときにすべき事

ありがとうございます!!!
ということで、15分待てばOKみたいですが、そんな待てない。。

参考 : WordPress「別の更新が現在進行中です。」の対処方2つ | Thought is free

  • DB から core_updater.lock を消す

これですね 😀

ということで、ローカル(VCCW)でやっていたので、

mysql -u wordpress -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 31
Server version: 5.7.16-0ubuntu0.16.04.1 (Ubuntu)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wordpress          |
+--------------------+
2 rows in set (0.00 sec)

mysql> use wordpress;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;
+-----------------------+
| Tables_in_wordpress   |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.00 sec)

mysql> select * from wp_options where option_name = 'core_update.locl';
Empty set (0.00 sec)

mysql> delete from wp_options where option_name = 'core_updater.lock';
Query OK, 1 row affected (0.01 sec)

えーっと、タイプミスひどいですね…😅
これで、「別の更新が現在進行中です。」は消えました 😀

タイプミスは気をつけないとですね…😅

自分もCoreを確認してみる

/**
	 * Creates a lock using WordPress options.
	 *
	 * @since 4.5.0
	 * @access public
	 * @static
	 *
	 * @param string $lock_name       The name of this unique lock.
	 * @param int    $release_timeout Optional. The duration in seconds to respect an existing lock.
 *                                Default: 1 hour.
	 * @return bool False if a lock couldn't be created or if the lock is still valid. True otherwise.
	 */
public static function create_lock( $lock_name, $release_timeout = null ) {
	global $wpdb;
	if ( ! $release_timeout ) {
		$release_timeout = HOUR_IN_SECONDS;
	}
	$lock_option = $lock_name . '.lock';

	// Try to lock.
	$lock_result = $wpdb->query( $wpdb->prepare( "INSERT IGNORE INTO `$wpdb->options` ( `option_name`, `option_value`, `autoload` ) VALUES (%s, %s, 'no') /* LOCK */", $lock_option, time() ) );

	if ( ! $lock_result ) {
		$lock_result = get_option( $lock_option );

		// If a lock couldn't be created, and there isn't a lock, bail.
		if ( ! $lock_result ) {
			return false;
		}

		// Check to see if the lock is still valid. If it is, bail.
		if ( $lock_result > ( time() - $release_timeout ) ) {
			return false;
		}

		// There must exist an expired lock, clear it and re-gain it.
		WP_Upgrader::release_lock( $lock_name );

		return WP_Upgrader::create_lock( $lock_name, $release_timeout );
	}

	// Update the lock, as by this point we've definitely got a lock, just need to fire the actions.
	update_option( $lock_option, time() );

	return true;
}

/wp-admin/includes/class-wp-upgrader.php の826行目〜のWP_Upgraderクラスの中にあるんですね〜😀

【更新】wp-cliの–sshオプションでローカルからまるっと操作する

@allでまるっと

WP-CLI 0.24 でリモートサーバーに対してコマンドを実行できるようになりましたよ! | Firegoby

wp-cliとても便利!! ありがとうございます 😆
聞いて知ってはいたけどやっていなかったヤツです。

wp-cliの–sshオプションを使ってローカルからリモートにあるWordPressのコア・プラグイン・テーマのアップデートやDBのエクスポートなどをやれるやつ…😅
さっさとやれば、もっと楽ちんになっていたのに…。。今年はこういうのを無くしていくんだ。

–ssh=[<user>@]<host>[:<port>][<path>]

      Perform operation against a remote server over SSH.

これっすね。

先ずはsshコマンドで確認してみて、いけたらエイリアス追加でやってみました。

ssh user@host -p port -i key

僕の場合ですが、毎度ssh-addしないと、Macがキーを忘れちゃってたので、

macOS Sierra で ssh-agent の鍵をすぐ忘れられちゃうのめんどくさいんじゃこらーの対処法 – Qiita

↑↑この記事を参考に、~/.ssh/configにそれぞれ

AddKeysToAgent yes
UseKeychain yes

を追加。

一通り確認してみてOKだったので、~/.wp-cli/config.ymlに@allを作成!! 😁

EXAMPLES

    # List all available aliases.

    $ wp cli alias

   

    @all: Run command against every registered alias.

wp help cli aliasより

ってことで、@allは全てのエイリアスでコマンド走るので、@allを作る必要はありませんでした!! 宮さん、ありがとうございます!!

@allがあるってことは、サーバ別とか分けても行けるってことだな 😀

一応テストで

#!/usr/bin/env bash

set -eu

wp @all core check-update

exit 0

更新確認をば 😀

@allでまるっと
などなど。 サーバ別でも一度にやれちゃうのはサイコーに便利っすね 😀

ばっちりっすね 😀
サーバ跨いでもいっぺんにできるのはサイコーに楽ちんっす!!

  • wp-update.sh
  • wp-update-core.sh
  • wp-core-checkupdate,sh

を作成し、ファイルにエイリアスを設定してみました。
共通してやってる内容は

  • wp db export backup.sql
  • wp core language update

です。一度DBバックアップ取りつつって感じっす 😀
これで、次からエイリアス一発で終わるるるる〜 😀

あっ、ヘテムル用も作ればいいのか!! 😜

さくらの共用サーバでssh + wp-cli + WordMoveをセット

例によって、もっと早くやっておけば良かった話。

ありがとうございます!!
今回さくらの共用サーバでの作業になったので、サクッとできないかなぁ…確かやってる方いたよなぁということで、発見しました。っていうか、随分前に読んでたやつですね…読むだけで試していないパターン… (^0^;)

上記2記事の通り設定すれば、あっさりさくらの共用でもwp-cli, wordmove使えます。sshでパスワードを入力する必要もなく、WordMoveもssh使えるので楽ちんだし、コケないし、良いことずくめです。

最近は、AMIMOTO + VCCW + wp-cli + WordMoveを使う機会が多かったので、さくらでも同じようにwp-cliとWordMoveが使えるのはホントありがたいです。感謝っす!!

楽ちん過ぎて泣けるほどイケてるAMIMOTO

こんにちはAMIMOTO Advent Calendar 2015  18日目の記事です。

普段、仕事はもちろん、このブログもAMIMOTOを使ってます。いつもありがとうございます!!
既にこのAdvent Calendar 2015にもスゲーTipsがてんこ盛りですね 😀
早速載ってる記事を参考にあれこれやってみたいと思います。

このブログはセルフホスティングプランを使っています。サイト運営に集中される方はマネージドホスティングプラン が超絶オススメです。

さて今日はタイトル通り、俺的楽ちんポイントを2点紹介したいと思います。

楽ちんポイントその1 : wp-setup

AMIMOTOの大好きなコマンドは、wp-setupです。

AWS AMI Amimoto の wp-setup

↑↑でも書いたんですが、僕の直接のお客さんって、個人事業主さまや企業さまで比較的小規模なお客さまが多いんですよね。なので一つのインスタンスに複数サイトを置いていたりします。
レンタルサーバでも同じ事がコントロールパネルからできるんですが、AMIMOTOはwp-setupコマンド一発でできちゃいます!!
立ち上げるのにマウスでポチポチやってSFTPとかであれこれとか必要ないです。

AWSな話になりますが、Route53でワイルドカード仕込んでおけば、サブドメインでWordPressサイトを立ち上げるのに5分かかんないっす。

楽ちんポイントその2 : wp-cli

その1で書いた通り普通の共用と変わらない状態になってたりしますが、AMIMOTOにはデフォルトでwp-cliが入ってます。黒い画面から操作しますが、 コマンドはとてもシンプルで、「俺にもできたw」的なノリであれこれできちゃいます 😀

よく使うコマンドは、

  • wp plugin install xxxxxx –activate
  • wp plugin list
  • wp plugin status
  • wp core update
  • wp core update-db
  • wp scaffold xxx

などなどです。僕が使っているのはほんの一部ですが、それでも相当便利です。管理画面にログインするのが面倒になるくらい (^^)
wp plugin searchなんかも最近は使うようになってきました。最近はプラグイン作成に挑戦中なので scaffold plugin も!!

以上2点になりますが、これだけでもかなり時間短縮です。

楽ちんポイントではないですが…

楽ちんポイントではないですが、個人的にコマンドを覚えるようになったのも収穫です。

以前はターミナルで○○など見ただけで、「俺には必要ないな…」と拒絶反応出てたんですが、AMIMOTOハンズオンに参加したのを機に変わりました。
黒い画面でコマンドが全てで最高!! という思考にはまだまだ至りませんが、そういう世界が広大に広がっている事を知ることができたのもAMIMOTOのおかげっすね 😀

2016年一発目のAMIMOTOハンズオンは1月29日福岡で開催予定です!!
AMIMOTO知ってはいるけど、触ったこと無いって方、一度参加してみるといいですよ〜!!

もう他のツールが面倒になるくらい便利で楽ちんになると思います (^^)

それではよいAMIMOTOライフを!! 明日は @banjo さんです 😀

wp-cliメモ

wp-cliメモ。
WordPress構築してて、完全に忘れ去っていたチェック項目……

検索エンジンがサイトをインデックスしないようにする

(^0^;)。。。
wp-cliで確認できないかなぁと思って探してたらありました (^^)

コマンド

$ wp option get blog_public

チェックが入ってたら、「0」
チェックが入ってなかったら「1」
が返ってくるるるるる。。

.shファイルとか作れるようになりたいっすなぁ…。いや、なろう 😀

ついでに

wp core version

4.0 とか返ってくる。
公開前に網元にログインして確認するのもアリだと思ったなぁ (^^)

before-launch.shファイル作って(コマンドだけ書き込んだ)を実行してみたらとりあえず出た。

before-launch.sh
4.0
0

これ見易く書き換えたい 😀

wp-cliのwp post list –post_type=page –format=ids 便利

投稿を確認して削除したいとき大変便利だった。

投稿を確認して削除したいとき便利

wp post list --post_type=page --format=ids

して、
+————+
| post_title |
+————+
| News |
| Business |
| Business |
| News |
| |
| |
| News |
+————+
とか出てきて(あ、これ作って見失ったヤツ…(^0^;))

wp post delete 12 11 10 9 7 6  --force

でバッチリ削除 😀

WP_DB_PREFIX で躓く…(泣

すっかりVCCWのお世話になりっぱなしです、ありがとうございます!!

今回はタイトル通りなんですが、WordPressを覚えたての頃に$table_prefixをいろいろと書き換えていたことが原因だったのに、ずーっと気がつかなかった事を備忘として残しておこうと思います。

wp db importでsuccess出てんのに変わんない

VCCWwp-cliがデフォルトで入っています。何が便利かって全部便利なんですが、wp db importとwp search-replaceが大変便利です。

wp db import | WP-CLI

僕は主に本番環境からエクスポートしたDBをVCCWにインポートしてプラグインのアップデートで不具合出ないか確認するんですが、wp-cliのおかげで今まで苦手だった置換作業がコマンド一発で終わります。

wp search-replace | WP-CLI

今回は2サイトこの状態で、何度上記のコマンドを実行しても反映されませんでした。
っていうか、絶対反映されるはずなかったんですが… ( ꒪⌓꒪)

自分で$table_prefix書き換えてたの忘れてただけ…

はい、コレだけ。
もう情けないといいますか、これが判らず3週間位放置してました。。

2サイトは僕がWordPressを覚えたての頃作成したサイトで、盲目的に$table_prefixを書き換えて構築していました。
現在は特にそのような事はしていないのですが、すっかり忘れていて、ずっと書き換わるはずもないのに同じ事を繰り返していました。。

始末に負えないのが、その2サイトが同じ所に置いてあったサイトだったので、担当の方に質問までしてしまいました。。。

しかし、その質問で気付きましてVagrantfileの”WP_DB_PREFIX”を書き換えて vagrant provision → vagrant reload で無事インポート・置換完了しました。
Nさん、お忙しい中貴重なお時間をホントありがとうございましたっ 😀

そして忘れるな、気付け…(^0^;)