画面上に出るエラーは、下記です。
Fatal error: Out of memory (allocated 92012544) (tried to allocate 3200 bytes) in /home/1005917498/ibamachi-kankou-jp/public_html/cp-bin/wordpress/wp-includes/media.php on line 2043
実際、media.php の該当の行を見ると、下記の上から2行目になります。
function wp_imagecreatetruecolor($width, $height) {
$img = imagecreatetruecolor($width, $height);
if ( is_resource($img) && function_exists(‘imagealphablending’) && function_exists(‘imagesavealpha’) ) {
imagealphablending($img, false);
imagesavealpha($img, true);
}
return $img;
}
新しい画像を作成するときにエラーが出ているのはわかるのですが、対処方法がわかりません。
Fatal error: Out of memoryとはメモリが足りませんよ、というエラーメッセージです。
アップロードの上限の問題ではありませんよ。
Fatal error: Out of memory (allocated 92012544) (tried to allocate 3200 bytes) in /home/1005917498/ibamachi-kankou-jp/public_html/cp-bin/wordpress/wp-includes/media.php on line 2043
これは、3200バイトを使おうとしたけれど足りなかった(92,012,544 バイト使用中)と言ってますね。
アップロードの上限をあげる方法(.htaccessのphp_value memory_limit等の変更)も試してみましたが、変化がありません。
何メガバイトまで増やしてみて変化がありませんでしたか?(ご利用のサーバーで使用可能な変更方法とサイズ上限はご確認済みと思いますが。)
それから
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
上記のエラーは別の理由から発生しているのかもしれません。
맹조様
gblsm様
ご返信ありがとうございます。
昨晩気づいたのですが、
メディア>ライブラリ>新規追加 の順(下部にグリッド画像が配置されている)だと画像の追加がされず、メディア>新規追加(下部にグリッドの画像が無い状態)からだと画像の追加が出来ることが分かりました。
ただし、2M以内の画像しか追加されません。
また上限値を上げても(2M→10M)2M以内の画像しか追加できません。
上記で回答いただいた、メモリが足らないことに起因しているのでしょうか?
何メガバイトまで増やしてみて変化がありませんでしたか?
php_value memory_limitを128Mまで上げました。サーバーの上限も128Mです。
宜しくお願い致します。
サーバーの上限が128Mだと、遊びがほしいところです。
わたしは全てのワードプレスサイトには 256MB を割り当てています。
トップページでスライダーを使用されていませんか。
php_value を .htaccess で利用できるのは、Apache の設定ファイルで、該当のディレクトリに、最低限、AllowOverride Option が指定されていて、かつ、PHP が、Apache のモジュールとして動作している場合だけです。お使いのサーバは、この要件をみたしていますか?
Request exceeded the limit…
は、Apache が出しています (だから、Apache のエラーログに残ります)。.htaccess の記述が無限ループになっていて、閾値を越えたということです。これについては、.htaccess の内容を確認してください。
php_value memory_limitを128Mまで上げました
これ、有効になってないみたいですよ。
回答ありがとうございます。
php_valueが利用できることは、確認しました。
ご教示の通り、256Mにしてみましたが、残念ながら解決しませんでした。
.htaccessの中身は下記ですが、私には無限ループになる場所がよくわかりません。
わかりますでしょうか??
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
php_value memory_limit 256M
php_value post_max_size 255M
php_value upload_max_filesize 10M
# END WordPress
また、気づいたことがあります。
uploadフォルダの中を確認してみました。
そうすると、エラーになってしまった6M程度の画像でも、原画がアップロードされていることがわかりました。
upload時にサムネイルや、大中小の画像が自動作成されて保存されるようですが、エラーになったものは、原画のみで、これらの小さいファイルが作成されていませんでした。
画像アップロードの時、処理中のバーが最後まで行ったあとに、「処理中」と表示がかわり、うまくいくときは、その後サムネイルが出るのですが、いかないときは、処理中の表示のままになってしまいます。
要は、アップロードはできるが、サムネイル等が作れない状況で、エラーになっているようです。
前述したようにmedia.phpの中の下記の行でエラーになるのと整合がとれているように思いますが、やはり、対処方法がわかりません。
$img = imagecreatetruecolor($width, $height);
引き続き、アドバイス頂ければ幸いです。
よく見たら、まだだれも PHP のバージョンを確認していませんでした。バージョンはわかりますか?
php_valueが利用できることは、確認しました。
とすると、mod_php5 はどのユーザ権限で動いてるんでしょうね。一応、念のため、
<?php
echo phpversion();
echo exec('whoami');
?>
とすると、どんな値が返るでしょうか (考えられる可能性を絞るためなので、これで解決できるわけではありません)。
.htaccess の記述は問題なさそうです。この問題は後回しですね。
このスレッドを最初から読んでくると、php_value を設定しない状態で、アップロードに成功しているのかどうかがわかりません。もう一度、整理してもらえますか?
- php_value の設定なしでアップロードに成功するかどうか。ブラウザアップローダではどうか。エラーの場合、どんなエラーが出るか。
- php_value を設定したときに、変化があるのかどうか。
ブラウザを右クリックすると、「要素を検証」とか「要素を調査」とかいうメニューが出るので、確認するときにはそれを表示して、「コンソール」または「console」に何か出力があるかどうかを確認しながら行っていただけますか? それから、ブラウザは何をお使いなのかもわかるといいかもしれません。
おっしゃる通り、現在のところ、エラーメッセージと、現象は整合性があります。class-wp-image-editor.php が media.php で定義されている関数を呼んでいるので、エラーは、たぶん _resize() で出ています。
以上、まったく成算はありませんが、とりあえず。