WordPressで画像をアップロードすると、以下のようなエラーがでた。
Fatal error: Allowed memory size of 8388608 bytes exhausted ~~
これは、phpでユーザーが確保可能なメモリ「memory_limit」以上のメモリを確保しようとしたためにでている。
私の場合はadmin-functions.phpの2152行あたりの「imagecreatefrom***」というphpのGD関数でエラーがでていた。
ここらの処理は、アップロードされた画像を展開してサムネイルを作成する処理・・・・・にみえる。
ちなみに、私が利用させてもらっているレンタルサーバーではmemory_limitは8M。
つまり、展開して8M以下の画像しかアップロードしてもエラーがでちゃうわけである(画像自体はアップロードされている)。
これを解決するには、WordPressでのアップロードをあきらめFTPでアップするか、memory_limitをもっと大きな値にするしかない。
私の場合、アップロードしてDBに登録された情報を利用してイメージリストを作りたかったので、なんとしてもWordPressでアップロードしたい。
ということで、memory_limitを変更する方法です。
1..htaccessを利用する。
WordPressのフォルダの.htaccessに下記の文を追加。
php_value memory_limit 16M
私の場合はこれでOKでした。
2.ini_setを使う。
WordPressで利用するphpファイルのどこかにini_set(‘memory_limit’,’16M’);を追加する。
しかし、追加できるそれっぽいファイルを発見できなかったのでこの方法はやっていません。
3.サーバーによっては、php.iniを設置する。
記事を見かけただけで試していませんが、ルートフォルダとかにphp.iniを設置して設定を記述すると、反映されるところもあるそうです。
上記2つの方法でだめなら、サーバーの人にきいてみましょう。
★参考
アップロードについて
ボヤキ:なんでローカルで記事を保存せずに、MTだけで書いてアップしたときに限って、うまく送信できないんだ・・・。゚(゚´Д`゚)゚。