http://www.perlmonks.org?node_id=172297


in reply to CGI won't execute GPG properly...

I am required to mention that you might consider programming Perl with #!/usr/bin/perl -w, use strict, and (in this case) use CGI. These may make your life easier in the future.

But to your immediate question, why don't you try writing a quick command-line-only version of this? Example:
#!/usr/bin/perl -w use strict; my $gpgpath = "/usr/bin/gpg"; my $gpguser = "xxxxxxxx\@xxxxxxxxx.com"; my $filenum = 'set_to_test_path'; $gpgcommand = "$gpgpath --batch --always-trust --eatr -a -r $gpguser - +o tmpMessages/$filenum.enc -e"; print $gpgcommand, "\n"; my $gpgresults = `$gpgcommand`; print $gpgresults, "\n";
That way Apache isn't interfering. You can also test your CGI scripts from a command line (so that Apache configuration is not the issue), by running this with perl script.pl. You will have to enter any form information by hand key=value and press return, then this will dump output to STDOUT. Either of these methods will allow you to see the warnings (provided you add -w to your shebang line), which may be very informative. Don't forget to execute these using the same login that the Apache process will have.

Replies are listed 'Best First'.
Re: (ichi) Re: CGI won't execute GPG properly...
by eoPh (Initiate) on Jun 06, 2002 at 18:32 UTC
    thanks, the strict and -w are probably a good idea :] (like I said, I'm new to perl)

    after making the minor modifications, I realized that the user executing the script was 'apache', not 'nobody', but even being that user doesn't seem to help. Executing the script on the command line works fine, but still a no-go through a browser

    thanks for the help, though