原因
犯人はこいつ
upload_max_filesize 100MB
100MBじゃなくて100Mって書かないとダメでした。
ケアレスミスですが、何のエラーも出ないのでハマりました。
phpinfo()にもしれっと何の警告もなく100MBってかいてあるから、問題ないと勘違いしていました。
だいたい元のファイルに書いてあるから、こんな書き間違いする人いないと思いますがハマると厄介なので忘備録として残しておきます。

PHP本格入門[上] ~プログラミングとオブジェクト指向の基礎からデータベース連携まで
Webアプリケーションの定番言語であるPHPの基礎から実践までを、上下巻のフルボリュームで集大成。「この目的を実現するためには、どの文法テクニックが適合しやすいだろう?」「このプログラムをより読みやすくするために、どんなアプローチができるだ...