Azure AppServiceにおけるWordpressプラグインWP-DB Managerの実行について
ただ今、大変げんなりしている
MySQL in App
Azure AppService上でWordpressを運用しているサイトがあり 仕様上の都合でプラグイン「WP-DB Manager」が利用でききず困っていた
まぁAppServiceにはMySQLが入っていないため、当然mysqldumpが使えないので さもありなんである
最近「MySQL in App」なる機能が使えるようになったとのことを風に噂に聞いて ためしに機能を有効化してみると
“D:/Program Files (x86)/mysql/5.7.9.0/bin/”
に待望のmysqldump.exeが!
escapeshellcmd
喜び勇んで設定してみるものの動作せず、結局プラグインのソースコードを読む羽目に
どうもmysqldump.exeの実行時に、escapeshellcmd関数をつかってファイルパスをエスケープしているようだ
当該関数を通すことにより
が
にエスケープされてしまいファイルパスが認識されずコマンドが実行できていない、ということらしい なんだよ…^って
そもそもシステムで利用するフォルダに(x86)とかいう残念なパスを設定したMicrosoftも大概だけど シェル実行用のエスケープ関数通したらシェル実行できないとか意味がわからんのだが…
※ちなみに、escapeshellcmdを使わずに実行すると無事バックアップが取れました