ID: 14839 Updated by: mfischer Reported By: [EMAIL PROTECTED] Old Summary: getcwd() and `pwd` report incorrect directory Old Status: Closed Status: Open Old Bug Type: *Directory/Filesystem functions Bug Type: Documentation problem Operating System: Linux, FreeBSD, Solaris PHP Version: 4.0.5 New Comment:
Valid points .. I reopen this als doc thing. Previous Comments: ------------------------------------------------------------------------ [2002-01-04 11:59:30] [EMAIL PROTECTED] "[EMAIL PROTECTED]" makes it all clear. I searched all the release documentation (for all the releases since getcwd() was introduced in 1999) prior to writing this bug for any remarks about this kind of behavior, but couldn't find anything. The default behavior for Unix and DOS programs is to run in the CWD, so programmers tend to expect that of other programs, such as PHP. As "[EMAIL PROTECTED]" and "[EMAIL PROTECTED]" pointed out, this may not be the most desirable behavior for a Web script. Since it is contrary to what most programs do, I'd like to request that the documentation of the startup behavior of PHP be sure to note this behavior, and that the -C option be documented a bit more boldly -- at least listed in the release notes. Thanks. ------------------------------------------------------------------------ [2002-01-04 05:02:27] [EMAIL PROTECTED] Closing the report. ------------------------------------------------------------------------ [2002-01-04 05:01:54] [EMAIL PROTECTED] There is nothing wrong with getcwd(). The problem is that php changes current working directory to the script's. This makes sense if you think of CGI scripts, but makes no sense if you write command line programs. That's way a new command line switch (-C) was introduced in PHP 4.1.0 which prevents PHP from chdir'ing into script's directory. So changing the first line of your script to #!/usr/local/bin/php -qC (and upgrading to 4.1) should fix the problem. ------------------------------------------------------------------------ [2002-01-04 00:47:58] [EMAIL PROTECTED] Ok, some comments, if i may. Firstly, I have verified this behaviour, however (and I could be wrong), this is not unexpected. The script executes relavtive to the directory it exists within, not the directory you are currently in. I can't particularly explain why, but this kind of makes sense. If you had a script in some unsafe directory, allowing the moving and deleting of files, and you could run it in a secured directory, in which the php process had sufficient access, and affect the files there, would that not present potential security risks? Anyhow, i could be wrong, so don't take what i said as corret. ------------------------------------------------------------------------ [2002-01-04 00:22:32] [EMAIL PROTECTED] Oh, I suppose you want my configure line, even though it really doesn't make a difference. Here it is: CONFIGURE_COMMAND = './configure' '--with-gd=/usr/local' '--with-mysql' '--with-openssl' '--with-apxs=/usr/local/sbin/apxs' '--prefix=/usr/local' ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/?id=14839 Edit this bug report at http://bugs.php.net/?id=14839&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]