Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Writing Files Outside of My CGI-BIN

by Anonymous Monk
on Mar 23, 2003 at 21:31 UTC ( [id://245314]=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

If I'm on a shared host, how can a script in my CGI-BIN read/write to a file outside of the CGI-BIN (as in the folder with HTML in it, that the CGI-BIN is in).

Replies are listed 'Best First'.
Re: Writing Files Outside of My CGI-BIN
by arturo (Vicar) on Mar 23, 2003 at 21:38 UTC

    On any modern OS, your CGI program will run with a certain user ID. Just make sure that the location you want to write to is writeable by the effective user ID the script is running as. Without knowing anything about your operating system, it's hard to say exactly how to do this. On a Unix-like system, assuming you're using a plain Apache installation, the default user is "nobody", so something like this would work (for some definition of "work"):

    # chown nobody.nobody /path/where/cgi/can/write # chmod 0755 /path/where/cgi/can/write
    (you would have to be the superuser to use exactly these commands, and it might not work if you have a non-default Apache installation).

    But you really should consult the documentation on file permissions for your operating system.

    If not P, what? Q maybe?
    "Sidney Morgenbesser"

      Actually the default user now tends to be 'apache' but of course the logic is correct. $! will reveal the error if it fails (usually Permission Denied).

      #!/usr/bin/perl my $file = '/path/to/some/file'; open FILE, ">$file" or die_nice( "Could not open $file, Reason $!\n" ) +; print FILE "Woo-hoo!"; close FILE; print header(), "<h2>Wrote $file OK</h2>"; sub die_nice( print header(), shift; exit } sub header { return "Content-type: text/html\n\n" }
      cheers

      tachyon

      s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://245314]
Approved by pfaut
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (5)
As of 2024-04-18 20:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found