[GRASS5] Grass with PHP (newbie question)
Glynn Clements
glynn.clements at virgin.net
Tue Aug 17 10:48:02 EDT 2004
Namnath, Sharyn wrote:
> Thanks for your reply. Yes, I do mean running GRASS programs from a PHP
> script via "system" calls. I've been playing with setting the environment
> variables, but it still doesn't work. I tried doing a simple version call
> and piping it into a file. The file gets created, but there is nothing
> inside of it. It just creates a zero-length file.
>
> Here is the code I'm using :
>
> <?php
> putenv("GISBASE=/Applications/Grass/grass53");
> putenv("GISRC=/Users/administrator/.grassrc5");
> putenv("GRASS_LOCATION=$location");
> putenv("GRASS_PNGFILE=/Users/administrator/Sharyn.png");
> putenv("DYLD_LIBRARY_PATH=/Applications/Grass/grass53/lib");
> putenv("GRASS_TRUCOLOR=TRUE");
> putenv("GRASS_PNG_COMPRESSION=0");
>
> system("env > /Users/administrator/Sites/click/environment_vars.txt");
>
> system("/Applications/Grass/grass53/bin/g.version > /Users/administrator/Sites/click/version_info.txt");
> ?>
Have you checked the server/PHP logs for error messages?
The attempt to run g.version may result in error messages being
written to stderr. I don't know how mod_php handles this, but anything
written to stderr by CGI scripts usually end's up in Apache's
error_log file.
Alternatively, you could redirect stderr directly, e.g.:
system(".../g.version > .../version_info.txt 2> .../version_errors.txt");
> The environment variables are echoed to the environment_vars.txt file just
> fine :
> PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/System/Library/CoreServices
Yuo also need to add $GISBASE/bin and $GISBASE/scripts to PATH; some
GRASS programs run other GRASS programs/scripts; this will fail if
those directories aren't in $PATH.
--
Glynn Clements <glynn.clements at virgin.net>
More information about the grass-dev
mailing list