« NEXCO東日本ミニカープレゼントキャンペーン | トップページ | SNS 招待依頼フォーム »

2007年12月17日

OpenPNEで画像がアップロードできない現象を解決

「hellototomica SNS」では、OpenPNE というソフトを利用してSNSサービスを提供しているのですが、ユーザーさんより画像がアップロードできないという連絡をいただいていて、調査していました。

現象は、日記やメッセージを書くときに画像を添付すると、「確認画面」をクリックした後、真っ白な画面が表示されてしまって次に進めないというものです。

access_log, error_log, $OpenPNE/var/log/php_errors.log, /var/log/messages.log などのログファイルを見ても、それらしい情報は残されていませんでした。

OpenPNEでアップロードできる画像ファイルは、JPG、GIF、PNGで、ファイルサイズは(デフォルトでは)300KB以内となっています。アップロードできない画像ファイルはPNG形式、114KBなのでこの制約はクリアしています。

何種類か画像ファイルを作成して調べてみたところ、画像ファイルによって画面が真っ白になってしまったり、何の問題も無く次に進めたりするようです。ダメな画像ファイルは何回やってもダメなのですが、正常に処理ができるファイルとの違いが分からず、別の方面から調べることにしました。

最初にこの現象を確認したときの画像ファイルがPNG形式だったので、PNG形式がダメなのかもしれないと思ったのですが、JPG形式のファイルでも発生することがあり、ファイル形式とは関係ありませんでした。

画面キャプチャの画像ファイルで真っ白になる現象が発生したので、画像ファイルを作ったソフトが原因かもしれないと思ってグラフィックソフトを何種類か試したのですが、関係ありませんでした。

最後の手段としてOpenPNEのソースファイルに手を入れてデバッグメッセージを表示させるようにしたのですが、うまく表示させることができず断念しました。

それで、結論から言うとPHPの画像処理関数がメモリ不足で異常終了していたことが原因のようです。下記のページに書かれていた情報を参考に、php.ini の memory_limit を 8M から 12M に変更したところ、画像のアップロードができるようになりました。

[wordpress]画像のアップロードができない(解決) - メモ帳であり備忘録でありブログであり・・・
http://kohizuka.ddo.jp/blog/2006/06/07/132/

php.ini は以下のように変更します。変更した後は、Apacheの再起動(apachectl restart)が必要です。

memory_limit = 12M      ; Maximum amount of memory a script may consume (8MB)

[技術情報] 投稿者 はるてん : 2007年12月17日 11:26

トラックバック

このエントリーのトラックバックURL:
http://hellototomica.com/apps/mt-tb.cgi/216

コメント

コメントしてください

サイン・インを確認しました、 さん。コメントしてください。 (サイン・アウト)

(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)


情報を登録する?