kpofcochin:

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

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.