Not sure if this a php error - can someone confirm it?

Jeff Vian jvian10 at charter.net
Tue May 23 19:12:57 UTC 2006


On Tue, 2006-05-23 at 13:10 +0100, PFJ wrote:
> Hi,
> 
> I have the following in a php file
> 
> $filenames = array("fred.pdf", "sid.pdf", "harry.pdf", "wibble.pdf");
> for ($i = 0; $i < count($filenames); ++$i)
> {
>   $command='/usr/bin/zip -9 '.$prog.'.zip ".$filenames[$i];
                                     ^^^^^^^^
Not sure if this is a typo or the actual line, but changing delimiters
is not valid
>   exec($command);
> }
> 
> $prog is just a name.
> 
> If I set $prog to be getcwd()."foo", then no zip file is created.
> Infact, I can set $prog to anything and nothing is created - with one
> exception, $prog="/tmp/foo" - this will create the zip file in tmp, but
> I can't then do anything with it as the permissions say it belongs to
> apache:apache (copy () won't work, neither will cp or mv).
> 
> I cannot chown the file via php either (chown ('/tmp/foo.zip',
> 'paul:paul');)
> 
> Have I hit a bug or is it me needing another lobotomy to remove things
> that shouldn't be there?
> 
Since php is running as the web server user, anything it creates is
owned by apache, and apache must have permissions to write where the
file is created.

Also, apache (the web server) must be able to access/execute in the
directory used.

You will need to make sure that the .conf file for apache/the app
( usually a file in /etc/httpd/conf.d/*.conf ) provides permissions to
write/execute in whatever directory you are using and that permissions
are otherwise restricted.

This also may be impacted by selinux if you have it in enforcing mode.


> TTFN
> 
> Paul
> -- 
> "Logic, my dear Zoe, is merely the ability to be wrong with authority" -
> Dr Who
> 




More information about the test mailing list