in reply to Re: code problem
in thread code problem

It should allow open any necessary file(including appl) instantly in a client browser. There are Internal server error(500)message, I can no get other details from server. Sandal

Replies are listed 'Best First'.
Re: Re: Re: code problem
by blue_cowdawg (Monsignor) on Jul 21, 2003 at 18:10 UTC

      I can no get other details from server. Sandal
    Bad ju-ju that. You really need to know what the server itself is complaining about. Internal errors are usually logged to the server's logs. See if your system administrator can glean that information for you.

    Suggestions

    1. Try setting the permissions of the file you are trying to open to 777 temporarily and see if it runs
    2. Try using adding the line: to your code and see what shows up on the browser. You will want to remove the qw/ fatalsToBrowser / once your code goes " production" as it can present an information leak later on.
    3. Try substituting a plain text file for the executable and change your header to Content-type: text/plain and see if that works. There may be something configured on the server that will prevent you from pushing presenting executables, such as some form of draconian measures to prevent spread of viruses.

    Hope this helps.


    Peter L. BergholdBrewer of Belgian Ales
    Peter@Berghold.Netwww.berghold.net
    Unix Professional

      Of cource, reading server logs is most effective way.

      The hosting plan I use does not provide log access, unfottunately. I try code(with this additional line) on another similar server(bad, without log access as well).

      use CGI::Carp qw/ fatalsToBrowser /;

      and get error:

      Software error:

      Can't access file at akvilon.cgi line 7.

      Thank you,

      Sandal

        Sandal sez he is seeing:
          Software error: Can't access file at akvilon.cgi line 7.

        Check the file permissions of the file you are trying to open. This not so much a perl problem as a file permissions problem.

        • What are the permission bits set to on the file?
        • Who owns the file?
        • What userid does the CGI program run as?
        • What platform are you running on?

        Some code for you to try running on your web server:
        #!/usr/bin/perl -w ############################ $|=1; use strict; use CGI qw / :all /; use CGI::Carp qw / fatalsToBrowser /; my $q = new CGI; # We'll use this later.. you'll see... print header; print start_html( -title => 'what my system looks like' ); print h1('Environment'); print table( map { tr ( td($_),td($ENV{$_})) } sort keys %ENV ); print h1('CGI structure'); print table( map { tr ( td($_ ),td($q->param($_))) } sort $q->param ); if ( $ENV{HOME} ) { print h1('MISC stuff'); my $stuff=`ls -lad $ENV{$HOME}`; print p('Home directory permissions',br(),$stuff); if ( -d $ENV{HOME} . '/cgi-bin' ) { $stuff=`ls -lad $ENV{HOME}/cgi-bin`; print p('CGI directory permissions',br(),$stuff); } else { print p('The directory cgi-bin is not in $ENV{HOME}'); } } print end_html; exit(0);

        CAVEAT: This code is untested! I threw it together before my first cup of coffee!

        That should give you some information that might help you.

        There is more to writing CGI scripts to consider than the code itself.


        Peter L. BergholdBrewer of Belgian Ales
        Peter@Berghold.Netwww.berghold.net
        Unix Professional