[PHP-users 27339] safe_modeにおけるimagejpeg関数

a2cf@achn.co.jp a2cf @ achn.co.jp
2005年 11月 2日 (水) 17:55:10 JST


atsushiといいます。
いつも参考にさせていただいております。

imagejpeg関数について質問があります。
先日発表されたPHP4.4.1にバージョンアップしたところ、safe_mode=Onの場合、
imagejpeg関数で画像をファイルに保存すると下のエラーが発生するように
なってしまいました。

「エラーメッセージ」
PHP Warning:  imagejpeg(): Unable to access photopath/a.jpg in cgipath/xxx.cgi on line nnn
PHP Warning:  imagejpeg(): Invalid filename 'photopath/a.jpg' in cgipath/xxx.cgi on line nnn

いろいろテストしたところ、imagejpeg関数で画像を新規に作成する前に、
ダミーのファイルをtouch a.jpg等で作成しておくと、エラーが発生せずに
正しい画像データでファイルの内容が更新されるようになりました。
これは仕様なのでしょうか?もしくは誤っている部分などがありますでしょうか?
単純な質問で申しわけありませんが、もしもお分かりの方がおりましたら
お知らせいただければ幸いです。

環境としては、php.iniはphp.ini-recommendedをそのまま
使い(safe_mode=Onのみ変更)、画像を書き込むディレクトリの
所有者・グループはhttpdプロセスと同じで、念のためパーミッションも
777にしてあります。


何とぞよろしくお願いします。

環境: RedHat / PHP4.4.1(ソースからコンパイル)



PHP-users メーリングリストの案内