ID: 37044 User updated by: dim at dvisionfactory dot com Reported By: dim at dvisionfactory dot com -Status: Bogus +Status: Open Bug Type: Directory function related Operating System: FreebBSD PHP Version: 4.4.2 New Comment:
Sorry, forgot to point out that it also works fine for me on Linux. It fails only on FreeBSD (I use version 6.0). phpinfo: allow_call_time_pass_reference On On allow_url_fopen On On always_populate_raw_post_data Off Off arg_separator.input & & arg_separator.output & & asp_tags Off Off auto_append_file no value no value auto_prepend_file no value no value browscap no value no value default_charset no value no value default_mimetype text/html text/html define_syslog_variables Off Off disable_classes no value no value disable_functions no value no value display_errors Off Off display_startup_errors Off Off doc_root no value no value docref_ext no value no value docref_root no value no value enable_dl On On error_append_string no value no value error_log no value no value error_prepend_string no value no value error_reporting 2039 2039 expose_php On On extension_dir /usr/local/lib/php/20020429 /usr/local/lib/php/20020429 file_uploads On On gpc_order GPC GPC html_errors Off Off ignore_repeated_errors Off Off ignore_repeated_source Off Off ignore_user_abort Off Off implicit_flush Off Off include_path .: .: log_errors On On log_errors_max_len 1024 1024 magic_quotes_gpc On On magic_quotes_runtime Off Off magic_quotes_sybase Off Off max_execution_time 30 30 max_input_time 60 60 memory_limit 48M 48M open_basedir /usr/local/www/some_site/:/usr/local/se/ no value output_buffering no value no value output_handler no value no value post_max_size 8M 8M precision 12 12 register_argc_ar On On register_globals Off Off report_memleaks On On safe_mode On On safe_mode_exec_dir /usr/local/se/ /usr/local/se/ safe_mode_gid On On safe_mode_include_dir no value no value sendmail_from no value no value sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i serialize_precision 100 100 short_open_tag On On SMTP localhost localhost smtp_port 25 25 sql.safe_mode Off Off track_errors Off Off unserialize_callback_func no value no value upload_max_filesize 20M 20M upload_tmp_dir no value no value user_dir no value no value variables_order EGPCS EGPCS xmlrpc_error_number 0 0 xmlrpc_errors Off Off y2k_compliance On On Previous Comments: ------------------------------------------------------------------------ [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