つばくろぐ @takamii228

知は力なり

WordPress 4.9.x系で管理画面でのテーマ編集に失敗した(解決済み)

WordPress 4.9.x系で管理画面でのテーマ編集に失敗した

f:id:takamii228:20180319193448p:plain:w300

WordPressを4.9.4にアップデートしてから、管理画面からテーマファイルを更新しようとしたら以下の警告が出た。

f:id:takamii228:20180319191402p:plain

そのまま押し切って更新しようとしたら以下のエラーがでて失敗した。

f:id:takamii228:20180319191426p:plain

エラー文言は以下の通り。

日本語版

致命的なエラーをチェックするためにサイトと通信できないため、PHP の変更は取り消されました。SFTP を使うなど、他の手段で PHP ファイルの変更をアップロードする必要があります。

英語版

Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.

どうやら4.9.x系で強化されてたファイルチェック周りが原因っぽい。

https://wpdocs.osdn.jp/Version_4.

安全のためのサンドボックス

真っ白な画面は非常に恐ろしいですね。WordPress 4.9はエラーがある状態で保存すると警告するので、テーマやプラグインに取り組んでいるときに白い画面を避けられるでしょう。夜はもっとよく眠れますね。

-

潜在的な危険を警告

テーマやプラグインを直接編集すると、WordPress 4.9はそれが危険なやり方だと警告します。そしてファイルを改変する前にバックアップするように勧めます。安全なルートを選べば、後から自分自身もチームと顧客もあなたに感謝することでしょう。

解決策

エラー文言でいろいろ調べたら どうやらwp-admin/includes/file.phpでファイルを更新するときに自分自身へリクエストを投げて正常終了するかどうか確認していた。

https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/file.php

このリクエスト経路を見直してみたら、ポート番号がブラウザ(8000)コンテナ(8000→80)Apache(80)になってた。

WordPressのホスト名的には8000番ポートが入ってたのでApacheの8000番が空いてなくてエラーになったのが原因だった。

ブラウザ(8000)コンテナ(8000→8000)Apache(8000)になるように直したら無事更新できた。

WordPressは予約投稿や今回みたいな自分自身にリクエスト投げてきて処理をするやつが結構あるので、CDN・LB・リバプロ・IP制限などを間に挟んでいる構成ではその辺の経路がうまく通ってないとハマるので注意が必要だ。

qiita.com

よく使う開発ツールの連携方法をまとめた

お仕事で使う頻度の高い以下のツールの連携手順を備忘録としてQiitaにまとめました。

ツール一覧

連携手順

イメージ図

f:id:takamii228:20180315103656p:plain

他のツールでも似たような感じなのかな 🤔

Nexus7(2013)を文鎮化から復活させる手順

f:id:takamii228:20180315220115p:plain

Googleが2013年に発売したNexus7をかれこれ5年愛用しているのですが、タッチパネルが何もきかなくなって、再起動してもGoogleのロゴ画面から何も動作しなくなるということがしばしば起こるようになってきました。

発生の都度、復帰手順をググってた気がしたので自分への備忘録としてまとめました。

モデルと病状

モデル

  • Nexus7 32GB Wifiモデル
  • Android 6.0.1(アップデート済み)

Nexus 7 (2013) | タブレット | ASUS 日本

症状

  • タッチパネルが反応しない
  • 起動するとGoogleのロゴ画面から起動画面へ移らない

復旧手順

Recovery Modeで入って、cache partitionをクリアします。

  1. 電源ボタンを長押しして電源を切る

  2. 電源ボタンと音量-ボタン(一番下のボタン)を長押ししてRecovey Modeで起動する

  3. 音量-ボタン(一番下のボタン)を二回おして「Recovery Mode」に合わせた後、電源ボタンを押してRecovery Modeで再起動する

  4. Googleのロゴのあとに「コマンドが指定されていません」と表示されるまで待つ

    • 表示されない場合は昔のテレビみたいに端末をポン、と叩くと出る場合もある
  5. 電源ボタンを押した後に音量+ボタン(電源ボタンの下のボタン)を押してAndroid system recoveryに入る

  6. 音量ボタンで「wipe cache partition」を選択する

  7. 音量ボタンで「YES」を選択する。

  8. 画面の下の方に[cashe wipe complete]と表示されたことを確認する

  9. 音量ボタンで「reboot system now」を選択し再起動する

  10. 正常起動することを確認する

5年も使ってるのでそろそろ限界かなぁ。

参考

どうやって文鎮化したNexus 7タブレット(起動中のGoogleロゴから進まない)を復旧しますか?

http://知っていると役に立つ情報サイト.com/archives/1047

Android スマホ 重い 遅い 直す方法: NEOland