とあるSEの戯れ言 このページをアンテナに追加 RSSフィード

2010-01-29

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

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

諸々の情報は以下。

OpenPNE 3.0.2

Apache 2.2.3

PHP 5.3.1

MySQL 5.1.41

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

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

の表示が。


画面の注記には、

300KB以内のGIFJPEGPNGにしてください

と書いてありますが、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 では起こらない問題のようです。


でわ。

2010-01-13

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 に設定書いて終了。


でわ。

2010-01-05

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です。

でわ。

2009-12-02

twitterはじめました

id:smegheadさんの勧めで、twitter はじめました。

http://twitter.com/momiage3dau/


まだなんとなく使ってる感じだけど、bot 作れるんだね。


数年前から延ばし延ばしにしてきたPythonの勉強ですが、そろそろ本当にやらないと、と。


って事で、twitter の bot を Python で作ってみようかな、と。


今月は仕事が忙しいから、Python の基本的な部分の勉強やって、年末の休みに bot を作る感じで。


でわ。

2009-10-28

java.sql.SQLException: Communication link failure: java.io.IOException

このエラーが取れない。


Oct 28, 2009 9:32:42 AM org.apache.jk.server.JkCoyoteHandler action
INFO: RESET
java.sql.SQLException: Communication link failure: java.io.IOException
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1604)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:886)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:945)
        at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:917)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:1841)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:1775)
        at com.mysql.jdbc.Statement.executeQuery(Statement.java:1220)
(snip)

発生するトリガーも不明。


Tomcat動かして、2,3日すると発生する模様。


う〜ん・・・


頑張って調べよう。


でわ。