Keep in mind that the environment for the account that the webserver uses will be different than your account. There will be differences in the path, permissions, etc. You really don't want the webserver account to have too much access to the rest of your system, so it's likely to be locked down fairly well.
If you can, run the CLI program from the webserver account, and you can start figuring out which environment changes you may need to get the script to run.
On the other hand, since you say that the utility script is in perl, you might consider extracting the interesting bits into a perl module. Then you could simply load the module in your web application and use it. Using the modulino concept, you can make your perl code both a script *and* a module, something like:
sub some_interesting_function { ... here we do the real work ... } sub main { ... This is called if run as a script ... ... blah, blah, blah, setup ... some_interesting_function(various arguments); } # Detect if we're being called as a CLI script or module. If CLI # script, execute main. main(@ARGS) unless caller();
For more information on modulinos, check out http://perltricks.com/article/107/2014/8/7/Rescue-legacy-code-with-modulinos.
...roboticus
When your only tool is a hammer, all problems look like your thumb.
In reply to Re: how to call system commands from cgi file?
by roboticus
in thread how to call system commands from cgi file?
by kpofcochin
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |