ID: 37044 User updated by: dim at dvisionfactory dot com Reported By: dim at dvisionfactory dot com -Status: Feedback +Status: Open Bug Type: Directory function related Operating System: FreeBSD PHP Version: 4.4.2 New Comment:
It is a production server! I cannot just "switch" to PHP5! Any other suggestions? Previous Comments: ------------------------------------------------------------------------ [2006-04-12 14:44:48] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.1-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.1-win32-latest.zip ------------------------------------------------------------------------ [2006-04-12 08:26:22] [EMAIL PROTECTED] Works perfectly fine here. ------------------------------------------------------------------------ [2006-04-12 08:00:36] dim at dvisionfactory dot com I've added "clearstatcache()" after "chgrp(..)"! Now "filegroup()" produces the right output, but it hasn't solved my problem. Output of the script: SUCCESS, 16888, 80, 80 FAIL, 16888, 80, 1005 SUCCESS, 16888, 80, 80 SUCCESS, 1688, 80, 80 ------------------------------------------------------------------------ [2006-04-11 18:39:42] [EMAIL PROTECTED] What if you call clearstatcache() between chgrp() and filegroup() calls ? ------------------------------------------------------------------------ [2006-04-11 18:32:00] dim at dvisionfactory dot com Description: ------------ MKDIR has a strange behaviour. In my case, I tried to the following: - Create a directory A - Change group of A - Create directory B which is a sub-directory of A -> ERROR I wrote a test case. The strange thing: I create directory A by mkdir('A'); and I change it's group by chgrp('A', 'some_user');. fileowner('A'); return as expected '80' which is the user 'www', but filegroup('A') also returns '80', although it should be '1005' (='some_user'). If I now try an 'ls -l' in a shell I get "www:some_user", which indicates that chgrp('A', 'some_user'); was successfull. Reproduce code: --------------- function mk_dir($dir, $ch_grp = true) { mkdir($dir); if (!is_dir($dir)) { echo 'FAIL'; } else { chmod($dir, 504); if ($ch_grp) chgrp($dir, 'some_user'); echo 'SUCCESS'; echo ', ' . fileperms($dir); echo ', ' . fileowner($dir); echo ', ' . filegroup($dir); } } mk_dir('/var/www/directory/test1'); // OUTPUT: SUCCESS, 16877, 80, 80 mk_dir('/var/www/directory/test1/test2'); // OUTPUT: FAIL, 16877, 80, 80 rmdir('/var/www/directory/test1/test2'); // CLEAN UP rmdir('/var/www/directory/test1'); // CLEAN UP mk_dir('/var/www/directory/test1', false); // OUTPUT: SUCCESS, 16877, 80, 80 mk_dir('/var/www/directory/test1/test2', false); // OUTPUT: SUCCESS, 16877, 80, 80 rmdir('/var/www/directory/test1/test2'); // CLEAN UP rmdir('/var/www/directory/test1'); // CLEAN UP ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=37044&edit=1