imhosted Web Hosting Knowledge Base CGI, Perl, Sendmail Category
Contents CGI, Perl, Sendmail 1 What directory do I upload my CGI scripts to? 1 What is CGI? 1 What is Perl? 1 Do you allow CGI to run on your servers? 1 The paths to commonly used programs for CGI scripts, mysql and others are... 1 What is the exact physical path to your root directory on the webserver? 2 Why doesn't my CGI work? 2 Can you help me troubleshoot my script? 2 Why Does My CGI script give me a Permission Denied Error? 2 I keep getting a 500 Internal Server Error. Why? 3 What is the path to Perl? 3 What file permissions should I use? 3 Can I use flat file database driven forums? 3 How do I setup Hit Counters, Guestbooks, etc? 3 Why am I getting a 403 Forbidden Error? 3 How can I troubleshoot an \"Internal Server Error\"? 4 What are the basics of installing CGI & Perl scripts? 4 How do I set file permissions with WS_FTP? 4 I am unable to delete CGI related files... 4 Do you have mod_rewrite? 4 What is the path to Sendmail? 4 What version of Perl are you running? 4 Can I create a CGI script that stays resident in memory or forks processes? 5 Does your company have any limit about CGI scripts? 5 Do your servers support Python? 5 Do your servers have curl enabled? 5
CGI, Perl, Sendmail What directory do I upload my CGI scripts to? CGI scripts are executable from anywhere within your "public_html" directory. They do not need to be placed in a CGI-BIN. However for safety reasons we recommend you place them in the public_html/cgi-bin/ subdirectory of your account. Most scripts are then generally CHMODDED to 755. If you use Microsoft FrontPage, it is recommended that you put them within your /cgi-bin/ directory so FrontPage will not change your permission settings on these files. What is CGI? CGI, Common Gateway Interface, includes programs that run on the server to enhance the quality and functionality of a web site. CGI extended definition: A set of rules that describe how a Web Server communicates with another piece of software on the same machine, and how the other piece of software (the 'CGI program') talks to the web server. Any piece of software can be a CGI program if it handles input and output according to the CGI standard. Usually a CGI program is a small program that takes data from a web server and does something with it, like putting the content of a form into an e-mail message, or turning the data into a database query. CGI "scripts" are just scripts which use CGI. CGI is often confused with Perl, which is a programming language, while CGI is an interface to the server from a particular program. Perl is an application of CGI, as well as MIVA, Python, PHP3, and other scripting languages. What is Perl? Practical Extraction and Reporting Language, a robust programming language frequently used for creating CGI programs on Web servers because it is faster than UNIX shell script programs, it can read and write binary files, and it can process very large files. Do you allow CGI to run on your servers? We do allow running of cgi scripts on the servers, however they must conform to our acceptable usage policy. If we deem that a script is using an excessive amount of server resources, it will be disabled. The paths to commonly used programs for CGI scripts, mysql and others are... Commonly used paths - 1 of 5
Perl: /usr/bin/perl Perl 5: /usr/bin/perl5.00503 Sendmail: /usr/sbin/sendmail Date: /bin/date PHP: /usr/bin/php mysql: /usr/bin/mysql ImageMagick: /usr/bin/convert OR /usr/local/bin/convert Document Root: /home/username/ WWW Directory: /home/username/public_html/ CGI Directory: /home/username/public_html/cgi-bin/ What is the exact physical path to your root directory on the webserver? The path to your root directory is: /home/username/ Obviously, substitute "username" with the login you were assigned when you first received your account details. Also, keep in mind that when you configure your CGI, that your /public_html is included in your path. For instance, if you have a guestbook.pl script in your /cgi-bin, the exact physical path to that file is: /home/username/public_html/cgi-bin/guestbook.pl Why doesn't my CGI work? Make sure when you upload the CGI file DO NOT upload in binary mode, instead use ASCII mode. Uploading in binary will cause the server not to recognize the scripts as executables. Most FTP clients will upload.pl or.cgi files in binary mode by default so you will need to change this. You will need to upload the scripts into your cgi-bin directory for security reasons, however they will execute from anywhere within your account. The last step is to set the file permissions. This is otherwise known as chmoding and can be done from most FTP clients (select file then right click for popupmenu). Make sure you CHMOD your scripts to "755" otherwise you will get errors. Can you help me troubleshoot my script? Our support team would be more than happy to help you with any problem you encounter. However, we will only provide free support for our system and services. We will help you with basic problems associated with getting scripts running, but if you need help with third-party software, contact the authors of that software. Why Does My CGI script give me a Permission Denied Error? CGI scripts need to be set executable. You need to change the mode, or permissions, of your programs with your FTP program, and make them 755, or rwxr-xr-x. <B>Note:</B> A lot of scripts out there will tell you need to make them 775 or even 777. This is not good! It means anyone on the server can write to your script, and since its executable and executes as you, it could delete all your files! 2 of 5
I keep getting a 500 Internal Server Error. Why? There are many different possibilities. If you have a problem, misconfiguration, or syntax error in you script, you will probably be able to find it by checking your error logs which can be found in your your control panel under "Statistics -> Show Error Logs". Although this is generally caused by a problem within the script, many times it is caused by incorrect file permissions either on the script itself, or another file or directory used by the script. You should also verify the that the script paths are set correctly. You should verify that the first line of your script is the path to Perl, and that it is correct. It should be set to: /usr/bin/perl OR /usr/local/bin/perl You should also verify that the scripts were uploaded in the correct mode (ASCII or Binary - check the readme for the scripts to see any special instructions. Normally it is ASCII). Another problem could be permissions of the file or directory. Your script permissions should be 755, or rwxr-xr-x. Do Not make your CGI scripts 777 (or rwxrwxrwx). This would make them editable by other customers on the same server. In fact, if you script contains password information to connect to a mysql database, you should make them 700 (rwx------) so no one else would even be able to read them. The same thing applies to directories where the scripts reside. What is the path to Perl? The path to perl is: /usr/bin/perl What file permissions should I use? All scripts as well as the directories that contain them, should be set CHMOD 755. Can I use flat file database driven forums? We do not allow the use of flat file database driven forums such as <B>UBB or YABB</B> bulletin boards. Use of these boards for large or very active forums, results in system performance degradation, and cannot be allowed in our shared server environment. We suggest using VBulletin or phpbb (found within control panel) as a more efficient, database-driven alternative to these bulletin boards. Busy sites with large forums and data bases are not suited to a shared server environment. How do I setup Hit Counters, Guestbooks, etc? We have a collection of CGI scripts that are already pre-installed on your hosting account. Some of these CGI scripts include: A hit counter, web clock, Guestbook, FormMail, Search Site and more! You can find these scripts within your control panel. Why am I getting a 403 Forbidden Error? A 403 Forbidden error occurs when the web server finds itself with insufficient permissions to run your script. 3 of 5
Make sure you have given the script proper permissions. In SSH, this is accomplished with: chmod 755 scriptname.cgi If you are uploading via FTP, your FTP client probably has some facility for setting file permissions. You want to make sure that all choices (user, group, and other) have execute permission. How can I troubleshoot an \"Internal Server Error\"? Method 1. Log into your control panel, there should be a link called "View Error Log". This will show you the last few entries of any errors which occured with your script. Method 2. Log in to your account with SSH and test your script. To do this, go into the directory in which your script is located, then execute the script. simply type "/usr/bin/perl myscript.pl" What are the basics of installing CGI & Perl scripts? 1) Be sure the file permissions are set correctly on the cgi that you are trying to run start with 755. 2) Always upload and download a cgi in ASCII transfer mode. How do I set file permissions with WS_FTP? Just highlight the file you want to set, and right-click on it. A menu will pop up, then select CHMOD. I am unable to delete CGI related files... If you have any files or folders that were created by a cgi script running on your account, you will be unable to modify or delete these files because they were created by the user 'nobody' (the webservers itself). To get these files deleted please send in a support ticket. Do you have mod_rewrite? Yes mod_rewrite is enabled on the servers. What is the path to Sendmail? The path to Sendmail on all of our servers is: /usr/sbin/sendmail What version of Perl are you running? As of this writing all of our servers are currently running Perl version 5.8.1. (Note: We always run the latest stable build of Perl). 4 of 5
Can I create a CGI script that stays resident in memory or forks processes? We do not allow any type of program that stays resident in memory or listens to a port number or forks multiple processes, because of the shared nature of the server. Does your company have any limit about CGI scripts? We don't have a limit on how many you can install. There are some scripts that we do not allow. In general, you are free to install scripts as long as they do not use too many server resources, cause the server to become unstable, create a security breach, harm the server or other users, etc. Do your servers support Python? Yes. It can be found at the following location: /usr/bin/python Do your servers have curl enabled? Yes, all of our Linux Cpanel servers have curl enabled. curl is located here: /usr/bin/curl 5 of 5