月別アーカイブ: 2010年1月

OpenPNE3系で画像アップロード出来ない現象の回避方法

先日、OpenPNEで構築されているサイトのサーバ移行があり、作業を実施したところ、画像のアップロードが出来ない状態となりました。

諸々の情報は以下。

・OpenPNE 3.0.2

・Apache 2.2.3

・PHP 5.3.1

・MySQL 5.1.41

プロフィール編集画面で画像をアップロードしようとしたところ、

ファイル形式が間違っています (image/jpeg; charset=binary)

の表示が。

画面の注記には、

300KB以内のGIF・JPEG・PNGにしてください

と書いてありますが、JPEGファイルだし、10K程度だし。

・画像サイズとファイルタイプの再確認

・GDライブラリがインストールされている事を確認

・MySQLの設定確認

 → max_allowed_packetやら・・・

・php.iniの設定確認

 → upload_max_filesizeやら、file_uploadsやら、upload_tmp_dirやら、memory_limitやら・・・

・mysql のログ

・apache のログ

・PHP のログ

などなどなどなど・・・

全て問題なし。

でもって、まだまだ調査継続。

結果、PHPのバージョンとsymfonyのバージョンの絡みがダメだったようで。

参考:http://trac.symfony-project.org/changeset/20296

symfony 1.2.7 で動かしていたのですが、PHP 5.3系では、うまく動かない部分があるようで。

上記URLに記載されている通りに修正して、対応。

障害解消。

ちなみに、現在の段階で最新の symfony 1.2.9 では起こらない問題のようです。

でわ。

PHPで「It is not safe to rely on the system’s timezone settings.」

運用しているサイトのログを確認したところ、大量にWarningのログが・・・

確認したところ、以下ログでした。

PHP Warning:  date() It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in ********.php on line 112

調査したところ、デフォルトのタイムゾーンを設定していない事が原因のようです。

PHP 5.1.x系から、このログが出力されるようになったようで。

回避方法は、

1) date_default_timezone_set(‘Asia/Tokyo’);

2) php.ini に設定する → 「date.timezone = “Asia/Tokyo”」

のどちらかのようで。

とりあえず、php.ini に設定書いて終了。

でわ。

今年の目標など

今年の目標は、

・symfonyの修得

http://www.momiage3dau.com/ の構築

・Pythonの修得

の3点。

勉強します。

■ 平日

10:00 – 22:00 業務

22:00 – 24:00 勉強

24:00 – 01:00 帰宅

02:30 – 08:30 就寝

09:00 – 10:00 通勤

■ 休日

13:00 – 22:00 業務・勉強

22:00 – 23:00 帰宅

23:00 – 04:00 色々

04:00 – 12:00 就寝

12:00 – 13:00 通勤

これだ。

頑張ろう。

でわ。

document.form.submit is not a function の原因は・・・

Javascriptにて、formをsubmitしようとしたところ、

document.form.submit is not a function

のエラーが出て、submit出来ませんでした。

調査したところ、submitしようとしているform内に、

<input type="submit" name="submit" value="送信">

のように、「name=”submit”」があると、ダメみたいですわ。

なので、

<input type="submit" name="submit_btn" value="送信">

に変更して解決。

30分くらいはまってた。。。

でわ。

PHPでのファイルアップロードについて

久々に。

phpMyAdminやPHPを利用したサイトなどでファイルアップロードをする際、

php.ini

の設定を確認する必要があります。

設定を確認する部分は以下3つ。

・upload_max_filesize

・memory_limit

・post_max_size

■ upload_max_filesize

実際にアップロードするファイルの容量制限の設定です。

この値より大きなファイルサイズのファイルはアップロード出来ません。

■ memory_limit

PHPで使用するメモリの設定です。

upload_max_filesize より、大きな値を設定する必要があります。

■ post_max_size

POST出来る最大サイズの設定です。

upload_max_filesize より、大きな値を設定する必要があります。

もし、PHPでのファイルアップロードでエラーが発生したら、上記設定の確認をしてみてください。

上記設定を変更してもダメな場合、

/etc/httpd/conf.d/php.conf

の設定変更が必要な場合があります。

※Red Hat Enterprise Linux の場合

<Files *.php>

SetOutputFilter PHP

SetInputFilter PHP

LimitRequestBody 524288

</Files>

LimitRequestBody の値を変更すればOKです。

でわ。