|
Web
Support -- CGIWrap |
|
Requirements and limitations for UNIX CGI scripts using CGIWrap are as follows:
- Scripts must be placed in a subdirectory of the public_html directory
called "cgi-bin". For example, a user with username "joeuser"
would put his script "test.pl" in:
/home/joeuser/public_html/cgi-bin/test.pl
- The public_html and cgi-bin directories, along with all the
scripts in cgi-bin, must be world-executable. Use the command
"chmod a+x filename" or "chmod a+x directoryname" to set
the execute-allow bit for all users.
- When FTP'ing Perl or shell scripts into your account, you
must FTP them in ASCII mode and not binary
mode. When FTP'ing text files from a DOS/Windows machine
to Unix in binary mode, the MS-DOS end-of-line character
(^M) is left which will cause your script not to run in
Unix. FTP'ing in ASCII mode will strip these end-of-line
characters for you.
- The script will execute as if it were run by its owner; that is,
a CGI script owned by user "joeuser" will run with all the rights
and priveleges of joeuser's account when invoked via an HTML
document or form.
- The script must belong to the user who owns the directory. That is,
if joeuser put a script in janeuser's public_html/cgi-bin directory,
the script won't run.
- The DCANet Web Server runs BSDI BSD/OS as its operating
system, so any compiled executables must be for that architecture
(Perl or shell scripts will work regardless).
- The DCANet server will limit the CGI script to reasonable levels
of CPU and bandwidth use.
- All calls to user cgi-bin programs are logged on the DCANet web
server.
- Before writing for help with your script, make sure you
can run it from the command line (via entering ./scriptname at
the Unix prompt) and try using CGIwrap's debug mode (see
below) to help find any errors.
Running Your ScriptsTo run your cgi-bin script, use the following syntax. We'll assume your
username is "joeuser", and your script is called "test.pl". Here's
a snippet of HTML code to show you how to invoke your script from
an HTML document:
< a href="/cgi-bin/cgiwrap/joeuser/test.pl">Run test.pl</a>
Similarly, you can invoke your script from an HTML form. We recommend
always using the POST method with HTML forms.
< form method=POST action="/cgi-bin/cgiwrap/joeuser/test.pl">
Note that in the above examples, your cgi-bin program is being invoked by
another cgi-bin program called "cgiwrap". Cgi-wrap provides many added
security features. More information about cgi-wrap is available at
http://wwwcgi.umr.edu/~cgiwrap/.
Cgi-wrap has another feature, which allows you to run your script in "debug
mode" to aid in debugging your script. To run your script in debug mode,
invoke "cgiwrapd" instead of "cgiwrap", vis.:
< a href="/cgi-bin/cgiwrapd/joeuser/test.pl"> Run test.pl</a>
On a final note, please be careful in writing your scripts as it is possible to write a script which erases all the files in your account. If you have doubts about the security of your script, have someone more knowledgable about CGI and Unix security take a look at it.
|
|
|