BlueHost Web Hosting Package

- Trusted by more than 500,000 domains
- Unlimited hosting Space & file transfer
- 24/7 support, live chat support, toll free phone.
- Fantatico: Free tools for blog, ecommerce, CMS
- CGI, Ruby (RoR), Perl, PHP, MySQL
- SSH (Secure Shell), SSL, FTP, Stats
- Bluehost Promo: Special Link $6.95


Coppermine Gallery at Bluehost

Considering hosting a photo gallery website at Bluehost? Try out Coppermine Photo Gallery.

Coppermine is an Image Gallery system. Users get a wide image gallery features including categories and albums, thumbnails and intermediate size pics, search feature, new and random pictures, user management, user comments, e-cards feature, and slideshow viewer.

Example of Coppermine Gallery

Coppermine Gallery

The system has been tested to work well on IIS, Apache 1.3.24 onwards to the latest Apache 2, on Linux, UNIX, OSX, and Win32 systems thus you don’t need to worry about software compatible issue.

Download Coppermine to your local computer.

Installing Coppermine at Bluehost

Coppermine installation at Bluehost

At Bluehost, Coppermine script can be installed easily with both Fantastico and SimpleScripts.

Considering Bluehost coppermine hosting? Bluehost shared hosting $6.95 per month is with cpanel and mysql database, and with unlimited domain hosting, unlimited storage space and unlimited transfer per month. This unlimited hosting plan is very suitable if you want to host your photo gallery website, and not sure of how much traffic you will require.

Bluehost hosting is coppermine script compatible and ready, you can setup coppermine very quickly and easily and then host your own photo gallery website that look like screen capture below.


How to avoid canonical issue at Bluehost

What’s canonicalization?

In Matt Cutt’s words, Canonicalization is…

Canonicalization is the process of picking the best url when there are several choices, and it usually refers to home pages.

For instance, a human will consider these are the same URLs for a website: www.dummywebsite.com, dummywebsite.com, and dummywebsite.com/index.html. Technically, or in search engine’s eyes, there URLs are all different. A web server could return different content for each URL thus these URLs are all indexed separately in Google’s database. Such situation had caused problems to webmasters as Google impose penalty for duplicated content and having the same content showed up on www.dummywebsite.com, dummywebsite.com, and dummywebsite.com/index.html will certainly trigger the ban.

This was a pretty huge issue in the past and it sparks lots of debates and arguments. Websites with both WWW (www.dummywebsite.com) and non-WWW (dummywebsite.com) version get penalized by Google.

Nowadays, the issue can be solved easily with the usage of Google Webmaster Tools (you get to select which version of the website is preferred) or with the usage of rel=”canonical” tags. There are pretty much info covered at Google official guidelines: What is a canonical page? Why specify a canonical page? and I’m not going to drill deep on that.

Avoid canonical issue from your .htaccess file

301 Redirect at Bluehost hosting

What I want to discuss here is things to be done at your end to avoid such problem.

The non-WWW and WWW pages can be a huge treat to your website ranking and shouldn’t be taken lightly. Besides stating which version (WWW or non-WWW) to be indexed at Google, you can actually standardized your website URL with a few lines of .htaccess code.

301 Redirect at Bluehost

One good part about Bluehost is that the hosting company allows modification of .htaccess file (a server configuration file located at root folder by default). This makes our life easier when it comes to avoiding Google duplication (or canonical) penalty.

What you can do at your end to avoid this hassle is to 301 redirect your non-WWW web pages to WWW counterparts.

One good thing about hosting with Bluehost is that Bluehost users are allowed to access (create/modify/delete) the .htaccess files at root. Hence, redirecting all non-www web pages to www counterpart is easy.

To do so, simply add the following lines to your ,htaccess file (replace fakesite.com with your website URL):

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.fakesite\.com [NC]
RewriteRule ^(.*) http://www.fakesite.com/$1 [L,R=301]

The codes above will direct all your non-WWW URL to the WWW version thus it will not cause any duplication issue for your website. To test, simply type in the non-www URL of your website to your Internet browser and see your web URL being redirect to the www.


Recent server status at Bluehost

Bluehost server performance

My Bluehost hosting had a few significant outages in the past two months and server status was not looking good during that time.

Fortunately, things are improving slowly by now.

If you check Bluehost (from my account) recent server status you’ll see some alert on the server load as well as disk storage usage. The server load is still normally high (>1) during peak hours but I don’t find any obvious slow response time anymore. In fact, although the red/yellow indications look ugly, the figures are actually improving from the previous readings.

From my previous contacts with my Bluehost supports, I was told that their engineers are working on the high server usage issue – I guess they are not bull-shiting on me. Hopefully things will turn better in next month – I’ll keep you posted.

Right now, I don’t see any other big issue with Bluehost hosting thus they are still recommended in my book. In case you are looking for a cheap but yet reliable hosting, have a look on Bluehost.


CGI scripts usage at Bluehost

The permission to use CGI scripts at Bluehost is a commonly asked presell questions.

In case you are wondering – yes, Bluehost does allow CGI script usage in their shared hosting account. As long as the scripts are not harmful to the web servers (scripts used for spamming, buggy codes that eat up server resources), Bluehost implement no limitation at all on their users CGI scripts.

Introducing CGI

CGI is the short form of Common Gateway Interface (CGI). It refers to a standard protocol that’s used for connecting external application software with computer servers (more often, a web server).

In most of the time, a CGI folder is created at the root folder of all hosting account. This folder is used to hold executable CGI applications. Essentially, CGI is the interface between a form on a web page and the web server.

A CGI application normally works in real time and is often used to output dynamic web information.

Why use CGI?

What’s good about CGI is that it ensure your program is run from the server side. Unlike usual browser based scripting like Java, JavaScripts, and ActiveX, a program using CGI ensures all users are able to use your program.

In case you wish to learn more about CGI, read Common Gateway Interface at W3.org.


Setting up and connecting SSH at Bluehost

A SSH or secure shell is a network protocol that enables data exchange to be done safely. SSH initially was designed to replace TELNET and other insecure remote shells. Used primarily on Linux and Unix based machine, the SSH protocol minimize the risk of interception compare to the previous system. The encryption used by SSH provides confidentiality and integrity of data over an insecure network, such as the Internet.

In web hosting, the usages of SSH are mostly meant for providing an encrypted mechanism to log into systems and transfer files – in layman’s term, a secure version of FTP connection.

Is the SSH functions available with Bluehost?

Bluehost SSH functions

The answer is yes, Bluehost offers SSH function. However this function is not enabled by default. In order to activate shell access, you’ll need to fax or mail a copy of your driver’s license, passport or other photo id to customer service. Alternatively, you can upload the copy via Bluehost cPanel.

Bluehost SSH functions

You’ll then need to generate or import your SSH keys in order to start using the SSH services. These SSH keys are used at Bluehost for security measure – as the private SSH key must be held to authenticate, it is virtually impossible to brute force. You can Import existing keys, generate new keys, as well as manage/delete keys.

Common SSH command

Listed below are the common command used in SSH/Secure Shell quoted from Bluehost Helpdesk.

ls : list files/directories in a directory, comparable to dir in windows/dos.
ls -al : shows all files (including ones that start with a period), directories, and details attributes for each file.

cd : change directory · · cd /usr/local/apache : go to /usr/local/apache/ directory
cd ~ : go to your home directory
cd – : go to the last directory you were in
cd .. : go up a directory

cat : print file contents to the screen
cat filename.txt : cat the contents of filename.txt to your screen

tail : like cat, but only reads the end of the file
tail /var/log/messages : see the last 20 (by default) lines of /var/log/messages
tail -f /var/log/messages : watch the file continuously, while it’s being updated
tail -200 /var/log/messages : print the last 200 lines of the file to the screen

more : like cat, but opens the file one screen at a time rather than all at once
more /etc/userdomains : browse through the userdomains file.
hit Space to go to the next page, q to quit

pico : friendly, easy to use file editor
pico /home/burst/public_html/index.html : edit the index page for the user’s website.

vi : another editor, tons of features, harder to use at first than pico
vi /home/burst/public_html/index.html : edit the index page for the user’s website.

grep : looks for patterns in files
grep root /etc/passwd : shows all matches of root in /etc/passwd
grep -v root /etc/passwd : shows all lines that do not match root

touch : create an empty file
touch /home/burst/public_html/404.html : create an empty file called 404.html in the directory /home/burst/public_html/

ln : create’s “links” between files and directories
ln -s /home/username/tmp/webalizer webstats: Now you can display http://www.yourdomain.com/webstats to show your webalizer stats online. You can delete the symlink (webstats) and it will not delete the original stats on the server.

rm : delete a file
rm filename.txt : deletes filename.txt, will more than likely ask if you really want to delete it
rm -f filename.txt : deletes filename.txt, will not ask for confirmation before deleting.
rm -rf tmp/ : recursively deletes the directory tmp, and all files in it, including subdirectories. BE VERY CAREFULL WITH THIS COMMAND!!!

last : shows who logged in and when
last -20 : shows only the last 20 logins
last -20 -a : shows last 20 logins, with the hostname in the last field

w : shows who is currently logged in and where they are logged in from.

netstat : shows all current network connections.
netstat -an : shows all connections to the server, the source and destination ips and ports.
netstat -rn : shows routing table for all ips bound to the server.

top : shows live system processes in a nice table, memory information, uptime and other useful info. This is excellent for managing your system processes, resources and ensure everything is working fine and your server isn’t bogged down.
top then type Shift + M to sort by memory usage or Shift + P to sort by CPU usage

ps: ps is short for process status, which is similar to the top command. It’s used to show currently running processes and their PID.
A process ID is a unique number that identifies a process, with that you can kill or terminate a running program on your server (see kill command).
ps U username : shows processes for a certain user
ps aux : shows all system processes
ps aux –forest : shows all system processes like the above but organizes in a hierarchy that’s very useful!

file : attempts to guess what type of file a file is by looking at it’s content.
file * : prints out a list of all files/directories in a directory

du : shows disk usage.
du -sh : shows a summary, in human-readble form, of total disk space used in the current directory, including subdirectories.
du -sh * : same thing, but for each file and directory. helpful when finding large files taking up space.

wc : word count
wc -l filename.txt : tells how many lines are in filename.txt

cp : copy a file
cp filename filename.backup : copies filename to filename.backup
cp -a /home/burst/new_design/* /home/burst/public_html/ : copies all files, retaining permissions form one directory to another.
find * -type d|xargs -i cp –verbose php.ini {} : copies your php.ini file into all directories recursively.

kill: terminate a system process
kill -9 PID EG: kill -9 431
kill PID EG: kill 10550
Use top or ps ux to get system PIDs (Process IDs)

EG:

PID TTY TIME COMMAND
10550 pts/3 0:01 /bin/csh
10574 pts/4 0:02 /bin/csh
10590 pts/4 0:09 APP

Each line represents one process, with a process being loosely defined as a running instance of a program. The column headed PID (process ID) shows the assigned process numbers of the processes. The heading COMMAND shows the location of the executed process.

Putting commands together
Often you will find you need to use different commands on the same line. Here are some examples. Note that the | character is called a pipe, it takes date from one program and pipes it to another.
> means create a new file, overwriting any content already there.
>> means tp append data to a file, creating a newone if it doesn not already exist.
< send input from a file back into a command.

grep User /usr/local/apache/conf/httpd.conf |more
This will dump all lines that match User from the httpd.conf, then print the results to your screen one page at a time.

last -a > /root/lastlogins.tmp
This will print all the current login history to a file called lastlogins.tmp in /root/

tail -10000 /var/log/exim_mainlog |grep domain.com |more
This will grab the last 10,000 lines from /var/log/exim_mainlog, find all occurances of domain.com (the period represents ‘anything’,
– comment it out with a so it will be interpretted literally), then send it to your screen page by page.

netstat -an |grep :80 |wc -l
Show how many active connections there are to apache (httpd runs on port 80)

mysqladmin processlist |wc -l
Show how many current open connections there are to mysql

mysqldump -u username -p dbname > file.sql
MySQL Dump

tar -zxvf file.tar.gz
UnTAR file

mysql -u username -p database_name Importing MySQL database

which [perl]
Finding path to [perl]