忘れないように記録しとこ

カバの樹

ある日突然WordPressでファイルアップロードができなくなった

2017年4月10日

動作環境

HHVM:  3.18.2-dev
OS:  kusanagi
サーバー: Conoha 1G
Wordpress: 4.7.3

 

出会いは突然に

やってきました!うれしくない!

画像がアップロードできなくなりました!

先週の4/5に記事を書いた時点では問題無かったのですが、本日(4/10)に記事を書こうと思ったら画像がアップロードできないじゃないですか!

 

原因は?

アップロードの項目を見ると、最大アップロードサイズが、0Bになってるじゃないですか!

 

 

検証

アップロード容量のところをいじった記憶が無いのですが、むしろいじる訳がないのですが・・・

念の為確認する。
下記PHPを走らせる。

phpinfo();

 

 

うーむ、16MB設定されてますね。
ちなみに当ブログはHHVMで稼働しています。
もう一年くらいHHVMですが、今のところ問題ありませんね。

 

ソースを追う

設定値は問題無さそうなので、Wordpressのバグなのか、プラグインのバグですかね。
とりあえず、ソースを追ってみます。

まずは、メディアページのソースを確認する。

<?php media_upload_form(); ?>

media_upload_form() が、0Bを表示するコンテンツを吐き出しているようです。
ここのところが怪しいですね。
さらに追います。

 


$max_upload_size = wp_max_upload_size();
if ( ! $max_upload_size ) {
$max_upload_size = 0;
}

続いてここが怪しいですね。
なにかを変数に格納して、判別して、だめだったらアップロード容量を0に設定するみたいです。

なにを格納しているのか追いかけます。

 


$u_bytes = wp_convert_hr_to_bytes( ini_get( 'upload_max_filesize' ) );

はい、来ました。
ここが怪しいです。

サーバーに設定されたupload_max_filesizeを取り出して、wp_convert_hr_to_bytes()に投げ込んでいます。

ひとまず、 ini_get( 'upload_max_filesize' )が16MBを取得しているのかを確認します。


var_dump(ini_get( 'post_max_size' ));

bool(false)

 

え!

false を返してくるんですが!

試しに、HHVMをやめてPHP7に切り替えてみる。

 

$ kusanagi php7

 

kusanagiはコマンド一発で変更ができて楽ですねー

 

 

な、治ったー!

原因はHHVMなのか?

 

ひとまずは、HHVMは避けてPHP7で運用してみます。

今日はこの辺で―

 

  • B!