ImHosted.com FAQ


Match word(s).

Home : Customer Support Center : FAQ Index

CGI Scripts and Databases

  • Troubleshooting "Cannot connect to the database" Errors.
  • What is PHP?
  • How do I setup Hit Counters, Guestbooks, etc?
  • Why am I getting a 403 Forbidden Error?
  • How do I set permissions with WS_FTP?
  • What are the basics of installing scripts?
  • I keep getting a 500 Internal Server Error. Why?
  • How do I manually backup my database via ssh/telnet?
  • How do I use formmail?
  • Where can I put my CGI scripts?
  • What version of mySQL are you currently running?
  • Can I use the Ultimate Bulletin Board (UBB) forum on my site?
  • What is the path to ...?
  • What permissions should I use?
  • I am unable To Delete CGI Related Files...
  • How can I troubleshoot an "Internal Server Error"?
  • What is the exact physical path to your root directory on the webserver?
  • What version of PHP are you running?
  • How to I create a MySQL Database?
  • Do you allow CGI to run on your servers?
  • What Perl modules are installed?
  • How do I manually backup my db via phpmyadmin?
  • How do I move around in Telnet. What are some UNIX commands?
  • What is CGI?
  • How do I use mySQL to create & maintain databases, tables, etc?
  • What version of Perl are you running?
  • Why Does My CGI script give me a Permission Denied Error?
  • Can you help me troubleshoot my script?
  • Where can I learn how to use it?
  • How do I create a mySQL User and grant them permission to a certain database?
  • Where do I put scripts?
  • Why doesn't my CGI work?


    Troubleshooting "Cannot connect to the database" Errors.
    Here are a few initial things (common mistakes) to take a look at:

    - Make sure that after you created your database and database user that you didn't forget to ADD the database user to the database (at the bottom of the "Databases" section in Control Panel > MySQL Manager you'll see two drop down menus "User:" and "DB:" followed by an "Add User to DB" button).

    - Confirm that you entered localhost as the database host/server name and if applicable that you specified mysql for the database server type.

    - Make sure that you specified the correct database and database user names. Besides noting the fact that these values are cAsE sEnSiTiVe be aware that your account userid (usually the first 7 characters of your domain name) is added with an underscore as a prefix to both your database and database user names (userid_dbname rather than just dbname and userid_dbuser instead of just dbuser).

    - As far as the password make sure that you use the password that you assigned to your database user in MySQL Manager (NOT your account password)

    EXAMPLE:

    - if your domain name is "testserver.com"
    - if your account userid is "testser")
    - if you created a database named "phpbb2"
    - if you created a database user named "dummy"
    - if you assigned user bozo the password "doh"
    - if you added dummy to the phpbb2 database


    ...then you would enter the following logon/connection info:

    database server type = mysql
    server name = localhost
    database name = testser_phpbb2
    database user name = testser_dummy
    database user password = doh

    What is PHP?
    The folks over at PHP.net say it best... "PHP is a server-side, cross-platform, HTML embedded scripting language." In other words, PHP is a programming language, similar to HTML, but is parsed by the server, rather than the browser. It is often used with databases to build sites with dynamic content.

    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. To access them click "Scripts & DB -> Pre-Installed CGI Scripts"

    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.

    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 do I set 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.

    What are the basics of installing 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.

    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.

    How do I manually backup my database via ssh/telnet?
    Read this .

    How do I use formmail?
    Formmail is a very easy to use form processor, simply place the following on any page after entering your domain. You can change this code to fit your specific needs.

    <FORM METHOD=POST ACTION="http://yourdomain.com/cgi-sys/FormMail.cgi">
    <input type=hidden name="recipient" value="sales@yourdomain.com">
    <input type=hidden name="subject" value="Order">
    <input type=hidden name="return_link_url" value="http://yourdomain.com/">
    <input type=hidden name="return_link_title" value="Back to MainPage">

    Be sure to replace yourdomain.com, with your real domain name.
    For more information, visit:
    http://www.imhosted.com/supportcenter/formmail.shtml

    Where can I put my CGI scripts?
    CGI scripts are executable from anywhere within your "public_html" directory, or from within the cgi-bin directory in your home directory. 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 version of mySQL are you currently running?
    The latest stable build of mySQL. Generally we do not include the version information on the FAQs as mySQL commonly undergoes upgrades.

    Can I use the Ultimate Bulletin Board (UBB) forum on my site?
    No. We only accept PHP-base forum boards like phpBB, VBulletin, etc. Any flat-file database forum like Ultimate Bulletin Board is not permitted on our server due to their extensive hog on the CPU/memory.

    What is the path to ...?
    The paths to some commonly used programs for CGI scripts, mySQL and others are:

    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

    Document Root: /home/username/
    WWW Directory: /home/username/public_html/
    CGI Directory: /home/username/public_html/cgi-bin/

    What permissions should I use?
    All scripts as well as the directories that contain them, should be set CHMOD 755.

    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 ticket and include your login/password for the first 2 and last 4 digits of your credit card number for confirmation.

    How can I troubleshoot an "Internal Server Error"?
    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 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

    What version of PHP are you running?
    We always run the latest stable build of PHP. Furthermore, we utilize Zend Optimizer/Cache to speed up your PHP scripts.

    How to I create a MySQL Database?
    To create a mysql database, log into your control panel and select the 'MySQL Databases' link. Enter in the name of the database you want to create and submit it.

    Once you have created a database you must create a database user and then grant that user access to the database you created. This is all done through the same mysql manager page.

    Once you have a mysql database and username you can manage it via your shell account, or via phpMyAdmin which is located in your control panel.

    Make sure you are using the correct login/password and database name as listed on the mysql manager as they will not be exactly the same as the name you entered in when you created the database.

    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.

    What Perl modules are installed?
    Click here to see a list of all modules installed on our server.

    How do I manually backup my db via phpmyadmin?
    Read this .

    How do I move around in Telnet. What are some UNIX commands?
    Click here for a list of commonly used UNIX commands.

    What is CGI?
    CGI, Common Gateway Interface, includes programs that run on the server to enhance the quality and functionality of a web site.

    How do I use mySQL to create & maintain databases, tables, etc?
    Please read our mySQL guide.

    What version of Perl are you running?
    We are running Perl v5.6.1. The path to perl is: /usr/bin/perl

    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.

    Note: 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!

    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.

    Where can I learn how to use it?
    The creators of PHP also provide an excellent tutorial on how to use it at http://www.php.net/tut.php. There are plenty of other resources out there, as well.

    How do I create a mySQL User and grant them permission to a certain database?
    In Telnet/Shell type: "mysql"

    This will load the mysql command line. Next type:

    GRANT ALL PRIVILEGES ON [database].* TO [username]@[domain] IDENTIFIED BY '[password]';

    (where "[database]" is the database you created earlier, [username] is the mysql username you want, [domain] is the domain you'll be connecting from (usually 'localhost') and [password] is the password you'd like to use. Be sure it's enclosed in 's.

    For example:
    GRANT ALL PRIVILEGES ON mydatabase.* TO bob@localhost IDENTIFIED BY 'fruitfly';

    Where do I put scripts?
    You may place your scripts in any directory you'd like within the "www" directory, but you will stay better organized if you place them in the subdirectory named "cgi-bin".

    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. Make sure you CHMOD your scripts to "755" otherwise you will get errors. For specifics on chmoding you can refer to our "file permissions" help section.




  • © ImHosted.com, All Rights Reserved.


    Script provided by SmartCGIs.com