D810サイズの写真を上げられるアップローダをQNAP上に構築していたが、最近PHP Fatal error: Allowed memory size of xxxで投稿できなくなっていることに気付いた。一瞬、QNAPの新型を買えば解決するのではないか(笑)と思ってしまったが、冷静に考えればphpでは良くある話。そうなると、どうもTS-219pをQTS4.xにアップグレードしたせいのような気がする。となるわけで。
QTS4だと、php.iniのカスタマイズは[コントロールパネル]で表示されるアプリケーションカテゴリの[Webサーバ]を選択して出てくる画面を一番下までスクロールしたところにあるphp.iniのメンテナンス-[編集]で行える。
しかしここでmemory_limitを変更して保存してもFatal errorが出るので、もう一度php.iniを見てみると128Mに戻っていた。要は反映されないみたいだ。D810は8kサイズなので128Mではアップロード時にメモリが全く足りず、384M位の割り当てがないと上記のFatal errorが出てしまう。
QNAPフォーラムとかを調べてみたがどうにも解決しないので、結局phpファイルが置いてあるディレクトリに.htaccessを配置することで解決することにした。以下の1行だけ書いてFatal errorがでるphpが置かれているディレクトリに配置すればOK。
php_value memory_limit 384M
ちなみに\QwebにWindowsエクスプローラでアクセスできるようにしている場合、.htaccessをWindowsで作ろうと考えるかもしれないが、Windowsの仕様で拡張子だけのファイルが作れない、つまり.htaccessという名前のファイルは作れないので注意。例えばWindowsでFatal errorが出るphpが置かれているフォルダを開いて、htaccessというファイル名を作り、上記を記載して保存した後、QNAPにtelnetして、
cd /share/Qweb/[phpが置かれているディレクトリ]
mv htaccess .htaccess
とでもすれば解決はできる。
そんなわけでD810の写真を再び扱えるようになった話。
あ、そういえば昔の投稿で記載のあった以下の項目はQTS4では以下の値になっています。
upload_max_filesize = 32M→2047M
post_max_size = 32M→2047M
memory_limit = 64M→128M
このジャンルでは古い投稿は信用できないという話でもある(笑)。