カテゴリー: WordPress

Call to undefined function mb_convert_kana()

GCPに移行してから

エントリの検索をすると「サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。」みたいなエラー画面が表示されて検索結果を取得できない状態になっていた。

移行とドメイン移管は済ませてあるから放って置いていいかなと思っていたが、ちょろっと調べて直した。


WP_DEBUG

何はともあれ、何のエラーが発生しているのかを確認するためにデバッグモードを有効にせねばと思ったがやり方を忘れてた(ノ∀`)
wp-config.phpで

define( 'WP_DEBUG', true );

か。


wp-multibyte-patch

Fatal error: Uncaught Error: Call to undefined function mb_convert_kana() in /var/www/wpbl/wp-content/plugins/wp-multibyte-patch/ext/ja/class.php:147

ということなのでプラグインの「WP Multibyte Patch」が原因か(´・ω・`)

取り敢えず、プラグインページで停止しようとするも「サイトで技術的な問題が発生しています。サイト管理者のメールを確認して指示に従ってください。」画面になったので、数日前に使用したWP-CLIを使用してプラグインをdeactivateする。

これで検索は出来るようになったので、もうこれでいいか(・∀・)と思ったが、折角なのでもう少し調べるw


mb_convert_kana()

詰まるところ、php-mbstringが入っていないのが問題だった模様。

sudo apt install php-mbstring
sudo service apache2 restart

とかしたら、「WP Multibyte Patch」を動かしたままでも、検索が出来るようになった。

インストール後に何かしないといけないのかと思ったが、そんなこともなく。

php -i | grep mbstring

してみたら、何行かphp.iniに設定が追加されていた。
自動でやってくれたのだろう、多分。
ちなみにインストール前には一行くらいしか該当行(“Multibyte decoding support using mbstring => disabled”)がなかった。

参考:
[PHP] mb_convert_kana() / mb_convert_encoding() などが使えずエラーが発生する時の対処法
php環境構築時に入れ忘れてコケるやーつ…。


何はともあれ一応解決したみたいではある(・∀・)

取り敢えず、SSL化出来た模様(´・ω・`)

SSL化

だがしかし、具体的に何がどうなったらSSL化なのか、全く内容を理解していない(ノ∀`)

参考:
CGP上のWordPressのSSL化

参考にしたエントリの「certbotのインストール」をやったらSSL化出来てしまったようなので「WordPressのSSL化」の方はやってないけど、やらないと駄目なのかしら(´・ω・`)?

一応、WordPressの「一般設定」の[WordPress アドレス (URL)]と[サイトアドレス (URL)]の値の頭を”https://”にしたけど、これも必要なのか必要じゃないか不明(ノ∀`)

「証明書の自動更新」もやったけど、きちんと動くかどうかは不明(ノ∀`)
数ヶ月後にSSLじゃなくなったら、またやり直す方向でw


なんかおかしい(´・ω・`)

うちのブログ、今では一日100もアクセスがないこと日がほとんどなのに一日2円くらいの課金が発生している(´・ω・`) 5日くらい前にこっちに移しただけなのに
「Network Internet Egress from Americas to Americas」で”1.7 gibibyte”になってる…

インストール後の色んな作業でネットワークトラフィックを浪費しちゃったのかしら(´・ω・`)?

それとも今まで適当にサイズを小さくせずに貼っていた画像達が問題なのか…
まあ一日2円くらいなら、良いは良いんだけども(´・ω・`)ソレクライナラハラエマス

取り敢えず、GCP側に移行出来た模様(´・ω・`)

さくらVPSからgTLDドメイン転出用のオースコードが届いたので、移行作業を続行。
【さくら→Google移行作戦 前半】ドメイン移管編

Google Domain 1400+112(税)=1512円だった。さくらVPSは税込み1852円なので340円差か。働いていたら誤差のレベルだな。というか働いていたらさくらVPSからGCPの無料運用に移行することもなかったか(ノ∀`)


移行前に最新データのバックアップを忘れる(ノ∀`)

深いことを考えずに作業した為に、元ブログ側の管理ページに入れなくなる(ノ∀`)
加えてどっちのページが表示されているのかわからなくなるw
致し方なく、データ移行処理後に追加した2エントリは手動で移し替えたw

ドメインとGCPのIPアドレスが結びついている状態で何故かhttp://mole-kingdom.com/idx.htmlのページがURL指定で表示されたのは謎(´・ω・`)?
さくらVPSのインスタンスを止めたら表示されなくなったので、あっち側のページなのは間違いないのだが。なんだろう? キャッシュ?
今はデータを移行したので表示されて当然なんだけども


language-pack-ja

従来の方法でubuntuの文字化けが直らなかったので、以下のエントリに従ってaptでインストールしたら文字化けが解消された。もしかしたらlanguage-pack-jaが入ってなかっただけなのかな?

参考:
Ubuntuのデフォルトロケールを変更する


wp-cli

何故か移行先でDuplicatorプラグインが削除出来なかった(´・ω・`)
正解に言えば停止しようとすると技術的問題がどうとかというエラーが出て、先に進めない。

プラグインフォルダから削除するだけでもいいが、dbの中にゴミが残るとかどうとかいう噂を読み、wp-cliを入れて処理した。いきなりuninstallは出来なかったので先にdeactivateしてからuninstallした。

その後、WordPressのプラグインページに行ったら、まだDuplicatorは何故か存在しつづけていたが、その状態で削除をクリックしたら、無事に一覧から消えた。色々と謎が残る(´・ω・`)

参考:
WP-CLIの使い方
wp-cli コマンド一覧


xlrd

Pythonでexcelファイルを触る為のライブラリ xlrdを使ってみた。なんというか、まあ、ふーん(・∀・)と言った感じである。

パスが上手く通らなくて困ったが、Windowsだと全部”/”でええんかΣ(゚∀゚;)

参考:
Excel読み込み (xlrd)
Windowsのパスがうまく指定\表示できない問題 in Python
パワポエンジニアの憂鬱を軽減する誤字/表記揺れ検出ツールを作った物語


Google DriveでのOCR

なんやかんやで出来るようになったが、何をどうして上手く行ったのかよくわかってない(ノ∀`)
参考にしたコードはWindows向けではなかったからか、ちょっとはまった。Spyder3のフォルダ内で作業していたのが悪かったのかもしれない。

取り敢えず、そもそもoauth2clientが入ってなかったので動かなかったみたい(ノ∀`)
pipでinstallした。

正しい対処法かわからないが、CLIENT_SECRET_FILEの値に絶対パスを追加したり、credential_pathのところを絶対パスに変えて、Anconda Promptでの実行にもパスを追加した。

全く詳しいことを覚えていないが、なんかクレデンシャルがない状態の時にOCR対象のファイル名を引数に指定せずに実行したら、クレデンシャルがとれたような……

その後で改めてファイル名も指定して実行したら、無事にOCRが動いたような……( ´・ω・)ジシンガナイ

固有表現抽出APIにはまだ投げていない(ノ∀`)
忘れなければそのうちやるw

参考:
GoogleのAIとNTTのAIを融合したら最強の業務カイゼンツールが爆誕した
ServiceAccountCredentialsのインポートエラー

もぐら王国 とりあえずGCPの無料枠にWordPressを移したが…

またドメインは変更していないので、ミラーサイト状態(ミラーブログ状態(?))。

GCPの無料枠だと使用出来るメモリ量は600MBくらいであり、それだと当然のことながらOpenCmsを動かすのは無理なので、あっちの方の内容は基本的に廃棄という感じにすることに。※ちなみに今のさくらVPSの1GBですら、しばらくするとOutOfMemoryになるw 今はOutOfMemoryで閲覧不可になることを回避するために日に数回、cronでTomcatをリブートしているw ←酷い対応策(ノ∀`)

まあ、HTML形式でページを移築させればいいわけだが、android関連の翻訳ページや古い環境構築ネタはそのまま廃棄してしまう予定。android関連の翻訳はすでに元ページが存在しないし、環境構築ネタもWin8ベースとか内容が古いから。最早ネットデブリと言っていい。

64進数ネタやらDevQuiz関連は移築しようかなと思いつつ、もう俺氏はJavaを触ることはなさそうだから必要ないんじゃなかろうかとも思ったり(ノ∀`)


数年前の俺氏なら、殊丁寧にエントリ化しているところであるが、面倒くさいから qiitaなどでヤングなジェネレーションの技術者達が詳しく書いているので適当な感じで概略をエントリ化する(・∀・)

ちなみに俺氏は

  1. 無料枠(σ・∀・)σゲッツ!!というか、そういうインスタンスを作成。
  2. ubuntu 18.04を自動インストール(?)、ssh接続出来るようにした。
  3. バケット作成
  4. 中国、オーストラリアからの接続を遮断(`・ω・´)カネガナインヤ
  5. db作成やWordPressは手動インストール。
  6. Duplicatorプラグインでデータ移行。

を行った。(ちょっと手順的に前後してる部分はあったかも)

なんて書くと全てがスムーズに行ったように思われるが、実際は何度もやり直した…(ヽ’ω`)


ググってすぐにヒットするページのURLを羅列して意味があるのかと問われると返す言葉もないが、取り敢えず、ざっと以下のページを眺めてみて、おおまかなGCPの無料枠の概念やその流れを掴むのが妥当だと思う。

GCP(Google Cloud Platform)でWordPressスタート
GCP上でWordPressを無料で構築したい
これから始めるGCP(GCE) 安全に無料枠を使い倒せ
お前らのSSH Keysの作り方は間違っている
GCPでCentOS7を構築してssh接続してみる

Git for Windowsは前にインストールしていたので、それを使ってssh鍵を作る。よくわからないが4096とかで作った。ED~形式って知らんな(´・ω・`)

ちなみに、俺氏がUbuntu18.04を入れた時はスワップが自動生成されてなく、これが後々のハマりへとつながることになった(ノ∀`)


GCPのGoogle Cloud Storage無料枠を使うには注意が必要
GCE の無料枠のサーバを立るときに、初見でハマりそうなところ
GCPの課金データ取得のススメ

IPアドレスの固定やsshポートを変更したり、バケット作成をしたんだったかな。

【 sed 】コマンド(基礎編その4)――文字列を置き換える/置換した行を出力する


どうも中国とオーストラリアからのアクセスは無料運用の妨げになるらしく、それを回避するためにはファイアーウォールルールを使って、その二国からアクセスを遮断しないといけないらしい。

[GCP]課金対象国からのアクセスを抑止する
Google Cloud Platformで中国からの通信をブロック

割当一覧
中華人民共和国 China
オーストラリア Australia

手作業でやらないといけないのか(ヽ’ω`)と思ったら…
GCP:GCE 海外からのアクセスを一括で拒否するFW管理スクリプトというエントリを発見(・∀・)

但し、これは全世界からのアクセスを遮断するスクリプトらしく、これをこのまま使うとちょっと問題が有ったw

無料枠での使用だからなのか、ファイアーウォールルールが100件を越したところでインポート出来なくなった(ノ∀`)

致し方なく、インポート済のau以外のファイアーウォールルールを削り、その後、Cloud Shell上でviでスクリプトファイルを開き、cn以外を削って再実行した。

実は中身のIPの全てが正しい値なのかはチェックしていないのであれだが、ここで大事なことはCloud Shellを使って色々と出来るよということだな(・∀・)

ファイアウォール ルールの使用
【GCP入門編・第9回】 Cloud Shell で、いつでもどこでも Google Cloud Platform (GCP) が操作可能に!

一応、auとcn以外を削ったテキストを作ったが、内容は精査していない(ノ∀`) 加えてCloud Shell上へアップロードをする方法を知らないw まあ利用する時にこれをwgetしてmvでリネームして実行すればいいか。reject_au_cn.txt


UbuntuへのWordPressのインストール等はかつてエントリ化したものを適当に見ながらやったら出来た。確かtaskselをわざわざ入れて、そこからLAMPを入れたんだっけかな?

WordPress検証用環境の作成手順(`・ω・´)

taskselから入れた時にrootパスワードを指定しなかったのか聞かれなかったのか忘れたが、何はともあれ設定した。
MySQLでパスワードを変更する「SET PASSWORD」


で、

  1. Duplicatorプラグインで普通にデータ移行を試みる → OutOfMemoryで失敗。
  2. Duplicatorプラグインで画像データなしでデータ移行を試みる → OutOfMemoryで失敗。
  3. All-in-One WP Migrationプラグインで画像データなしでデータ移行を試みる → 成功するも、エントリを幾つか移動すると反応しなくなる。(最終的にデータベース接続確立エラーになる。)

という流れに…(ヽ’ω`)

600MBじゃWordPressの運用って無理なのだろうかと悩んだが、最終的にスワップ領域を作成していないことに気づく(ノ∀`)

参考にしたエントリでは”bs=2M count=2048″となっていたけれども、そんなにはいらないかなと適当に”count=1024″にしたw
Ubuntu Server 18.04 LTS スワップファイル設定

一応これでフリーズ状態にならなくなったので、もう一度dbやら何やらを綺麗にして、Duplicatorプラグインで画像データ有りでデータ移行を試みたら上手く行った(`・ω・´)

パーマリンク形式変更による404エラー対策の作業を忘れて、一瞬焦ったが(ノ∀`)
※移行するデータ量が512MB以下ならAll-in-One WP Migrationプラグインの方が楽かもしれないが、こっちはこっちでアップロードリミットを修正しないといけなかったりで、それはそれでめどいかもしれない(´・ω・`)


取り敢えずはこれでいいか。データ転送量(?)が1GBを超えない限りは無料運用が出来そうな気配ではあるがはてさて。もしも1GBを超えるようだったら、画像はGoogleドライブに移そうかな。面倒くさそうだけども。
サーバ通信量を節約!ブログ内の画像をGoogleドライブから参照!

後はmole-kingdom.comのドメインをあっちに移せばいいのかな。これは後日するとしよう(´・ω・`)