in reply to Re: Re: Re: Re: code problem
in thread code problem

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.

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

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Re: code problem
by sandal (Initiate) on Jul 22, 2003 at 17:11 UTC

    I set chmod 755 for cgi-bin directory and set the same 755 to file folder. The file stored in separate folder into web directory, I am owner of this file. There is local(system) path to file in this code. I have found then that chmod has remained rw -r -r for this file folder, not 755 set by me. So, probably this server only allow set 755chmod to cgi-bin directory. The server is: Operating System: BSD OS 4.01, Web Server -Apache ver. 1.3.12, Perl version 5.0.

    It seems, they service have many various restrictions(as free service), so this probably code not work in this server.

    Thank you

    sandal

      Hence the suggestions I made in this response Re: Re: Re: code problem. See items 1 & 3.

      In the code I gave you add:
      to see what userid your script is running as. This will give you some idea of how to permission your files.

      Most hosting sites run their httpd as "nobody" for security reasons. A handful of cluefull hosting providers will run the virtual httpd as the userid of the account owning the hosted site. Since this is harder to do a lot of sites (and you said this was a free site so they may fall into this category) opt not to provide the level of service.

      If this is the case (they are running httpd as nobody) then you will need to have the files you want your script to read set to a minimum of 0444.

      Be aware that you have to make sure you do not put sensitive information into that file as anybody can read it now.


      Peter L. BergholdBrewer of Belgian Ales
      Peter@Berghold.Netwww.berghold.net
      Unix Professional
        <html> <body>

        print p("This script runs as `id`");

        In what place I should add this line in test code? Is this important?

        sandal </body> </html>