antiword through php

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hello -
I've installed antiword and it is working fine from the command line.
however, running it through php gives no output, BUT, if I run the
through php cli, it works fine.

exec('/usr/local/bin/antiword /users/mm/sites/test.doc', $output);

in a browser I get an empty array, but on the command line
running  > php test.php
returns an array with the proper text.

I'm running php5.2.2 from Marc Liyanage on OS X tiger with apache 1.3

antiword is 777, could it be some other security setting I'm missing?
I've also tried using passthru and shell_exec with the same results.

$out = shell_exec('ls -al');
echo "<pre>$out</pre>";

does work fine in a browser and on the command line.

Re: antiword through php wrote:

Quoted text here. Click to load it

Maybe the user apache or www-data or nobody or whatever your webuser is  
called, has no permissions to execute it?

You can simply check this by:
1) sudo su www-data (or whatever etc.etc see above)
2) call the script as you do in your exec() command

Or you blocked exec() in PHP.ini.

Make sure you have full errorreporting on and check the logfiles.
They often give information you miss.

Good luck.

Erwin Moller

Re: antiword through php


Quoted text here. Click to load it

 antiword also uses some language definition files - are these accessible in
the webserver environment?

 Also, redirect stderr back into stdout so you can see the error, or use
proc_open or whatever to get hold of stderr.
Andy Hassall :: :: :: disk and FTP usage analysis tool

Re: antiword through php

Quoted text here. Click to load it

Yes, it turned out to be the accessibility of the map files - they
weren't world readable,
once I changed permissions, it worked great.  Thanks all

Site Timeline