[PHP-users 13846] Re: qmailからのパイプでPHP 起動

komura php-users@php.gr.jp
Sat, 8 Mar 2003 14:23:32 +0900


komura です。

chmod の第2引数の権限の指定でダブルコーテーションを付けないように
すれば解決すると思います。


On Sat, 08 Mar 2003 02:22:53 +0900
Tatsuro Nakagawa <tatsuro_nakagawa@ydc.co.jp> wrote:

> |/usr/local/bin/php -q /home/user/hogehoge.php
> 
> PHPの中身で・・・
> 
> $fp = fopen( $filepath."/".$filename,'w');
> fwrite( $fp, $data );
> fclose( $fp );
> if(!chmod($filepath."/".$filename,"0644")){

if(!chmod($filepath."/".$filename, 0644)){

>    エラー処理
> }
> 
> とやっていて、エラー処理は呼ばれていない模様です。
> 
> しかし出来上がったファイルは・・・
> 
> --w----r-T    1 user   user       4560  3月  8 01:26 filename.ext
> 
> というようなファイルができてしまいます。
> 上位のパスは全て755になっています。
> userは適切なuserに置き換えてください。
> 
> # qmailのエイリアスを実在ユーザに転送し、その実在ユーザの.qmail内に上記
> のパイプ処理が入っています。
> 
> このfopenで作成されるファイルのパーミッションを変更することは可能なので
> しょうか?

chmod 関数をダブルコーテーションを付けて呼び出した時の挙動がおかしい
ような気がします。


$ php -v
PHP 4.3.0 (cli) (built: Jan 26 2003 01:13:35)
Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

$ ls -l test.txt
-rw-r--r--    1 komura   komura          0  3月  8 14:04 test.txt

$ php -r 'chmod( "test.txt", "0644" );'

$ ls -l test.txt
--w----r-T    1 komura   komura          0  3月  8 14:04 test.txt


-- 
komura
komura@ma9.seikyou.ne.jp