Our Virtual Private Servers are unique because they provide you
with all of the flexibility, power, and control of a Dedicated Server.
Because of this, you are free to customize and configure your Virtual
Private Servers for your specific circumstance and needs. This includes
the ability to install your own custom developed CGI scripts or those that you have downloaded
from a third party source.
is divided into several sections. Each section includes a discussion
about a specific topic. Each topic, though important, may or may
not have applicability to your specific situation.
||The "Virtual Environment"
Your Virtual Private Servers services operate in an environment completely
separate of the root system (and any other Virtual Private Servers hosted
on the same host machine). This means that your script does not
have access to any files residing on the root file system, only
those files that are located in your home directory hierarchy.
Because your CGI scripts operate in a "Virtual Environment" (see
above), the pathnames that you specify in your CGI scripts should
be declared with respect to your home directory. For example, your
script may access a file to read from or write to. Instead of specifying
a pathname that begins with /usr/home/LOGIN-NAME/usr/local/..., you would simply use /usr/local/...
After you have uploaded your script or have created it on-line,
make sure you give the script permission to execute. In a UNIX environment,
each file has a specific mode or set of permissions which determine
who can read or write to the file as well as who can execute the
file (if anyone). Setting the "execute bit" on a file is easy to
do. You can either use iManager or you can Telnet or SSH to your Virtual Private Servers and type this command:
% chmod +x FILENAME
is the name of your script. If a script does not have execute permissions,
your web server will report a "403 Forbidden" server error when it
attempts to execute the script.
||Common Problems with Perl Scripts
to upload the Perl script in ASCII mode.
Perl scripts, unlike compiled executables, are plain text files.
Plain text files should be transferred from your local computer
to your Virtual Private Servers using ASCII mode (not BINARY mode). Failure
to transfer your Perl scripts to your Virtual Private Servers in ASCII
mode may result in 500 Server Errors.
path specification of Perl interpreter.
The first line of a Perl script indicates the path name of the
Perl interpreter. In the Virtual Private Servers environment, the correct
specification of your Perl 4 interpreter is
If you downloaded a Perl script from a third party source, the
Perl interpreter is most often defined based on the author's host
environment which may be different from the Virtual Private Servers environment
(/usr/bin/perl is a fairly common however).
a Perl4 interpreter for a Perl5 script.
If you have uploaded a Perl5 script to your Virtual Private Servers,
you will need to install Perl5 on your Virtual Private Servers as well. You
would then want to be sure to specify the correct location of
the Perl5 interpreter in your script - which is /usr/local/bin/perl.
||Troubleshooting "500 Server Error"s
If you encounter the enigmatic "500 Server Error" when you execute
your scripts, the best way to diagnose the actual source of the
problem is to examine your web server's error log. Your error log
is typically stored in your ~/www/logs directory under the
To review the
server error generated in real time, perform the following steps,
after connecting to your Virtual Private Servers via Telnet or SSH:
% tail -f ~/www/logs/error_log
command displays the last part of error_log file and
will print anything appended to the error_log file to
your console window. This in effect give you a real time view
of what is being written to your error log file.
browser, attempt to execute your CGI script again. When you
do this, the actual error message will be displayed in your
CGI Errors and Solutions
HTTPd/CGI: exec of [CGI PATH INFO] failed, errno
The first line of your CGI script failed to specify
the correct location of the interpreter. If your script
is written in Perl, please see the "Common Problems
with Perl Scripts" section above for the proper first
line definition of the Perl interpreter. If your Perl
interpreter definition is correct, it is very likely
that you uploaded the script in BINARY mode from your
Windows machine to your Virtual Private Servers. If you originally
uploaded the script in BINARY mode, re-upload the script
in ASCII mode to correct the problem.
HTTPd: malformed header from script [CGI PATH
Your script is not printing out a proper header response.
When a CGI is executed, it communicates back to the
web server a message which is divided into two parts:
the header and the body. The header typically tells
the web server the "content type" of the data that will
be sent as the body of the response. The header and
body are separated by a single blank line. An example
of a CGI response is shown below:
malformed header from script" error message
indicates that your script is not properly returning
the header portion of the response. You may not have
misspelled "Content-type", not supplied a valid type
(such as "text/html"), or failed to print out a blank
line to separate the header from body of the response.
Toll Free 1-866-GSP-4400 • 1-301-464-9363 • firstname.lastname@example.org
Copyright © 1994-2016 GSP Services, Inc.