How to redirect pages using a 301 redirect and the .htaccess file

Posted December 22nd, 2010 in Tips, Tutorials by admin

301 redirect is the most efficient and Search Engine Friendly method for webpage redirection. It is very easy to implement and it should preserve your search engine rankings for that particular page.

If you have to change file names or move pages around, it’s the best option to preserve your rankings and incoming traffic. The code “301″ is interpreted as “moved permanently”.

Redirect to www

Create a .htaccess file with the below code, it will ensure that all requests coming in to domain.com will get redirected to www.domain.com
The .htaccess file needs to be placed in the root directory of your old website (i.e the same directory where your index file is placed)

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

Please REPLACE domain.com and www.newdomain.com with your actual domain name.

Note* This .htaccess method of redirection works ONLY on Linux servers having the Apache Mod-Rewrite moduled enabled.

Redirect a Single Page

Add the following text to your .htaccess file and upload to the base directory of your website.

Redirect 301 /oldpage.html /newpage.html

So, for example, you changed your domain, it would be:

Redirect 301 http://olddomain.com http://newdomain.com

Redirect 301 /pagename.php http://newdomain.com/newpagename.php

Some tips to finding the best web host

Posted December 22nd, 2010 in Tips, Tutorials by admin

What is Web Hosting
As peculiar as it may seem to most techies, many people don’t understand what web hosting is. Basically, web hosting is what allows the world to see your website. You can design, code, and place a website on your harddrive where nobody sees it.. or you can spend a few bucks a month and host it on a type of computer known as a Web Server. This allows you to share your masterpiece with the public. A web server sends out, or serves, the files (html/php pages, images, etc.) to the visitors web browser (FireFox, Internet Explorer, Opera, etc.).

Shared Web Hosting $50 yearly

Professional Web Hosting $19.95 monthly

Does it matter which web host you choose?
Choosing your web host is one of the most important decisions you will make regarding your website. Subpar web hosting service can ruin your websites growth, traffic statistics, and mostly importantly, the visitors opinion of your website. Some web hosts promise the moon and can barely get off the ground. These companies are usually oversellers who cram as many websites on each server as possible. Often,  they may not even own the server they’re selling space on. More often than not, this results in extremely poor performance. If the web server your website is hosted on can’t keep up with the load, all the websites hosted on that machine suffer.

Quality Matters

The old saying, “you get what you pay for” is true almost everytime. Web hosting is no exception. Most people new to website hosting opt for the cheapest plan they can find at first. That is, until they actually experience the service! Their site loads slowly, responds sluggishly, and sometimes might not even load or go offline! Making the move to a quality web host is the first step to success for your website. Don’t spend a bunch of money developing your website only to skimp on the web hosting and ruin your visitors site experience. Who cares how cool the flash intro is if it takes 10 minutes to load?

So, what should I do?

We’ve been messing with servers and playing with the Apache web server for years now. We are tech guys, plain and simple. Just setting up a server and configuring it out the ying yang brings joy to our day. That’s why when we choose where to host our websites, we choose the best. We’ve partnered with several of the industry’s leading web hosts and stand behind their service. They offer professional solutions to all of your hosting needs. Need a quality affordable shared plan for your first website? ChaseHosting’s F1FTY.com has you covered for only $50 dollars a year. Talk about bang for your buck, 1 Terabyte of disk space and unlimited transfer! F1FTY servers are guaranteed to have less than 200 websites per server.

ChaseHosting also offers their Premium Shared Web Hosting plans for your website starting at a little over $80 a year. The professional plan boasts unmetered monthly transfer (no limits on bandwidth) and a terabyte of hard drive space. ChaseHosting’s premium plans are hosted on servers with less than 50 other websites.

Ready to sign up for some of the best apache based web hosting on the net? Click here to signup for Unlimited Shared Web Hosting.

Shared Web Hosting $50 yearly

Professional Web Hosting $19.95 monthly

Get your visitors to trust your ecommerce site

Posted December 22nd, 2010 in Tips, Tutorials by admin

The main goal of an eCommerce website may be to get visitors to buy a product, but this involves much more than just offering and finding the right product. Above all, customers have to have a feeling of trust and security in order to follow through and actually hand you the cash. This isn’t easy, but it certainly isn’t difficult either. Here are a few tips:

Share Other’s Experiences

Take time to collect testimonials from people who have purchased from you previously. Then, use customer photos and business seals like one from the Better Business Bureau with these testimonials to help other web visitors see the value and benefits you have to offer. Just be sure they’re in prominent areas of your site.

Make It Easy To Contact You

A contact page can be a company’s greatest ally when it comes to inspiring trust. After all, if something goes wrong and the customer knows they can contact you to look after it, they have nothing to worry about. Therefore, be sure to have a completed contact page and demonstrate that the customer is important to you.

Use an SSL Certificate

With so many criminals online, sending important information like credit card numbers is a scary prospect. This is where a Secure Sockets Layer (SSL) Certificate can really help. This is a method of sending data over a secure network. With this certificate, the user knows any sensitive information they share with you is encrypted and safe.

Web hosting from FatCow comes with a ShopSite online store so you can accept credit cards and integrate with PayPal as well. Visit FatCow now to find out more about their QuickSSL Premium Certificate and how it can help you inspire trust in website visitors. It’s safe and easy, plus you have nothing to lose!

How to setup an SSL Certificate on Apache

Posted December 22nd, 2010 in Resources, Tips, Tutorials by admin

Online, it is crucial for your visitors to know that the connection is secure. To encrypt the connection to your website, SSL certificates are commonly used to establish a secure connection. Webmasters may buy SSL certificates to secure their website from web hosting companies who sell offerings from premium vendors such as GeoTrust, Verisign, and others. Apache recommends Web Host With Us for buying SSL certificates.

Setup SSL Tutorial teaches you how to generate and setup a SSL certificate.

Assuming you have apache and openssl installed, you would like to generate and setup an SSL certificate for a domain and generate a CSR.

First, Generate the RSA & CSR (Signing Request)

[root@chevelle root]#
[root@chevelle root]# cd /etc/httpd/conf/ssl.key

Generate the RSA without a passphrase: Generating a RSA private key without a passphrase (I recommended this, otherwise when apache restarts, you have to enter a passphrase which can leave the server offline until someone inputs the passphrase)
[root@chevelle /etc/httpd/conf/ssl.key]# openssl genrsa -out yourdomain.key 1024

Or, with a passphrase: Generating a RSA private key with a passphrase. You will be prompted to enter a passphrase right after you hit enter.
[root@chevelle/etc/httpd/conf/ssl.key]# openssl genrsa -des3 -out yourdomain.key 1024

You should generally NOT generate the RSA private key with a passphrase if you have scripts that restart apache automatically in case of a crash or otherwise. If there is a passphrase, Apache will just sit there and wait for the script to input the passphrase which means downtime, and downtime usually equals bad.

Next generate the CSR using the RSA Private Key

[root@chevelle/etc/httpd/conf/ssl.csr]# openssl req -new -key yourdomain.key -out yourdomain.csr
[root@chevelle/etc/httpd/conf/ssl.csr]# mv yourdomain.csr ../ssl.csr

You will be asked to enter your Common Name, Organization, Organization Unit, City or Locality, State or Province and Country.
Do not enter these characters ‘< > ~ ! @ # $ % ^ * / ( ) ?.,&’ because they will not be accepted.

Common Name: the domain for the web server (e.g. MYdomain.com)
Organization: the name of your organization (e.g. YUPAPA)
Organization Unit: the section of the organization (e.g. Sales)
City or Locality: the city where your organzation is located (e.g. Flanders)
State or Province: the state / province where your organzation is located (e.g New Jersey)
Country: the country where your organzation is located (e.g US)

You may be asked for an email address and a challenge password. I usually just hit enter.

Now you should have:
/etc/httpd/conf/ssl.key/yourdomain.key
/etc/httpd/conf/ssl.csr/yourdomain.csr

Be sure to always make a backup copy of your private key! If you lose it, you’ll have to purchase a new cert!

Now you need to submit your CSR to your provider and they will mail you the certificate. They usually also send you a confirmation email before the certificate is sent out.
Now that you have the certificate..

Installing the Certificate for Apache

[root@chevelle root]# cd /etc/httpd/conf/ssl.crt

Copy the certificate that they mailed you to yourdomain.crt
Open your httpd.conf file and place the following to your virtualhost

<VirtualHost 209.123.546.123:443>
- other config details-
SSLEngine  on
SSLCertificateFile /etc/httpd/conf/ssl.crt/yourdomain.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/yourdomain.key
</VirtualHost>

Restart apache
OPTION 1 [root@chevelle /etc/httpd/conf/ssl.crt]# apachectl restart
OPTION 2 (using the sh script) [root@chevelle /etc/httpd/conf/ssl.crt]# /etc/rc.d/init.d/httpd restart

You may be asked to enter the passphrase IF you generated the RSA with a passphrase. If you do NOT want to be asked for a passphrase when restarting apache, re-generate your RSA key file.
[root@chevelle /etc/httpd/conf/ssl.crt]# cd ../ssl.key
[root@chevelle /etc/httpd/conf/ssl.key]# mv yourdomain.key yourdomain.key.has-passphrase
[root@chevelle /etc/httpd/conf/ssl.key]# openssl rsa -in yourdomain.key.has-passphrase -out yourdomain.key

And then restart apache again
[root@chevelle /etc/httpd/conf/ssl.crt]# /etc/rc.d/init.d/httpd restart

Now you should be able to access https://yourdomain.com

Simple PHP mail script that works

Posted December 22nd, 2010 in Resources, Tips, Tutorials by admin

From the Apache forums:

I’m posting this message for the benefit of other newbies like me.

Thanks to CHASE’s advice, I now have a very simple mail script that works:

<?php
$to = $_REQUEST['MyEmail'] ;
$subject = $_REQUEST['subject'] ;
$greeting = $_REQUEST['greeting'] ;
$realname = $_REQUEST['realname'] ;
$HisEmail = $_REQUEST['HisEmail'] ;
$message = $_REQUEST['message'] ;
$headers = “From: $HisEmail”;
$send = mail($to, $subject, $greeting.”\n”.”\n”.$realname.”\n”.”\n”.$HisEmail.”\n”.”\n”.$message, $headers);
?>

In the BODY of the email that I receive, the script shows the person’s greeting (e.g., Ms.), name, email address, and the comments that he/she made.

As I improve the script, I’ll post the results for the benefit of other newbies like me. Suggestions are, of course, welcome.  :-)

– Dr. T.

Installing Apache, MySQL, and PHP on Windows Vista

Posted December 22nd, 2010 in Resources, Tips, Tutorials by admin

If you’re looking for a good developmental server for your work, or just for personal use, what better place than your workstation? It eliminates the need for uploading your work to a remote server and allows you to run your scripts and test your website in a server environment. You can even set it up to be accessible to the public, password protected, or invisible behind your firewall. 

Nowadays, it is easier than ever to get a complete web server setup on Windows. WAMP is a popular package combining the popular web server Apache, MySQL Database server, and PHP scripting language. The install takes a few minutes and is super easy; if you can click Next, you’re good. With a couple quick tweaks to your router and httpd.conf file you are ready to serve files to the web. The below steps will get you up and running in minutes, let’s get started!

First, download the WAMP install package from the WAMP homepage. Once you download WAMP, double click the exe and begin the install process.

Click Next to begin:

screenshot1

After agreeing to the WAMP license, select the destination location. Leave the default location as “c:wamp” and click Next:

screenshot2

screenshot3

Choose your shortcut options and click Next:

screenshot4

Review your installation destination is correct. Click Install and WAMP will begin the install process:

screenshot5

WAMP will extract and install itself. The process should only take a few seconds.

screenshot6

screenshot7

WAMP will prompt you to enter the SMTP server and email to be used by PHP to send emails. Leave the default SMTP value as “localhost”, put your email address in the Email field and click Next:

screenshot8

If you have Firefox installed, WAMP will ask you if you would like to use Firefox as the default browser with WAMP. This is a personal choice, so feel free to choose either “Yes” or “No.” I prefer to use Firefox for pretty much everythig so I click “Yes” and then click Next:

You will likely be prompted by Vista whether the Windows Firewall should allow or block the features of WAMP. You want to allow all of the features of WAMP, so click Unblock:

Congratulations, the installation process is complete. Yes, it was really that easy. Now click Finish and Launch WAMP now:

screenshot9

Open a browser and enter “127.0.0.1″ or “localhost” as the URL, and you will see a summary of the installation process:

screenshot10
There are a few more configuration changes you must make to use WAMP. Firstly, open a port on your router and allow it to forward requests to WAMP. This will allow you to connect to your WAMP server from outside your local area network.

You will need to learn what your local area network IP address is before opening a port on the router. In order to do this, open Command Prompt by going to Start – Run, and typing “cmd”. It will open up a command prompt window.

Once in Command Prompt, type ipconfig. This command will show you your network IP information, we are interested in the IPv4 address and Default Gateway of your Ethernet adapter Local Area Connection.

screenshot11

Your address will be different from the one displayed. Write the IPv4 address and Default Gateway down and close the Command Prompt.

You are at the point where you can open a port on our router and forward requests to WAMP. The firmware for routers is different, so the directions are different for every router.  Connect to your router through the browser of your choice. Enter the Default Gateway address you wrote down above.

If you have a Linksys router enter http://192.168.1.1 into the URL bar. If you have a NETGEAR router enter http://192.168.0.1.

Once you are in your router’s control panel, you will have a location called something along the lines of “Port Range Forwarding.” You will want to create a new entry and call the application WAMP to easily identify the application that is using the port. Enter 80 for Start and End, choose Both for Protocol and enter your IPv4 address (my address was 192.168.1.123) you obtained form the Command Prompt as the IP Address. Choose Enable and click Save Settings:

You need to edit one more file before you will be able to access your documents from outside your local area network. Click the WAMP icon that has been added to the system tray, choose “Config files,” and select “httpd.conf”:

This will open httpd.conf in Notepad. You will need to edit the section called “Controls who can get stuff from this server.” Scroll down to this section (it’s a little less than half way through the file) and change the line that says “Deny from all” to “Allow from all” and resave the document:

Click the WAMP icon in the system tray and restart Apache:

Open a browser and navigate to “http://www.whatismyip.com” and find out what your IP address is. Now open a browser and enter “http://yourIPaddress” and you will be forwarded to your WAMP server whether you are inside or outside your local area network. Anything you put into your “c:wampwww” directory will be stored on your server. For example, if you copied all your pictures to “c:wampwwwpictures,” you will be able to navigate to “http://yourIPaddress/pictures” and all of your pictures will be available.

Viewing Log Files using Tail

Posted December 22nd, 2010 in Tips, Tutorials by admin

To watch active log files change on your screen and monitor them, it is sometimes useful to use the “tail” command. To view the log file’s recent activity. Type the following:

tail -f filename.log

That will open the file on the screen and refresh with any updates as they are made.

Check the Server CPU Temperature

Posted December 22nd, 2010 in Resources, Tips, Tutorials by admin

It may come in handy to know how to check the CPU temperature of a server over SSH from time to time. It is nice to know how to check the vitals of a system quickly and easily. Use the following command to check what the current temperature reading of the processor of your server is over a SSH session or via any other terminal window:

cat /proc/acpi/thermal_zone/THRM/temperature

*The command may vary slightly depending on your system configuration. If you need help, ask in the comments are and other visitors or Apache.com staff may help answer your question.*

Linux Server SSH Cheat Sheet

Posted December 22nd, 2010 in Resources, Tips, Tutorials by admin

SSH is a necessary tool in any server admin’s arsenal. It is the main way you will be interacting with your servers whenever you are performing system tasks such as install, updates, etc. SSH allows you to remotely connect to your server and command it via the shell. Below is a list of commands you will use commonly while working with your server.

I prefer the popular SSH client Putty, but any SSH client will do.

Common SSH Commands or Linux Shell Commands,
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 /home/username/” will navigate to /home/username/ 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

chmod: changes file access permissions
The set of 3 go in this order from left to right:
USER – GROUP – EVERONE

0 = —  No permission
1 = –X  Execute only
2 = -W-  Write only
3 = -WX  Write and execute
4 = R–  Read only
5 = R-X  Read and execute
6 = RW-  Read and write
7 = RWX  Read, write and execute

Usage:
chmod numberpermissions filename

chmod 000 : No one can access
chmod 644: Usually for HTML pages
chmod 755: Usually for CGI scripts

chown: changes file ownership permissions
The set of 2 go in this order from left to right:
USER – GROUP

chown root myfile.txt : Changes the owner of the file to root
chown root.root myfile.txt : Changes the owner and group of the file to root

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 Spaceto 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.

File Editing with VI ssh commands
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.
Whie in the vi program you can use the following useful commands, you will need to hit SHIFT + : to go into command mode

:q! : This force quits the file without saving and exits vi
:w : This writes the file to disk, saves it
:wq : This saves the file to disk and exists vi
:LINENUMBER : EG :25 : Takes you to line 25 within the file
:$ : Takes you to the last line of the file
:0 : Takes you to the first line of the file

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

ln : create’s “links” between files and directories
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf : Now you can edit /etc/httpd.conf rather than the original. changes will affect the orginal, however you can delete the link and it will not delete the original.

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.
who : This also shows who is on the server in an shell.

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!

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/

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.
cp -av * ../newdir : Copies all files and directories recurrsively in the current directory INTO newdir

mv : Move a file command
mv oldfilename newfilename : Move a file or directory from oldfilename to newfilename

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

TAR
: Creating and Extracting .tar.gz and .tar files
tar -zxvf file.tar.gz : Extracts the file
tar -xvf file.tar : Extracts the file
tar -cf archive.tar contents/ : Takes everything from contents/ and puts it into archive.tar
gzip -d filename.gz : Decompress the file, extract it

ZIP Files:  Extracting .zip files shell command
unzip file.zip

Firewall - iptables commands
iptables -I INPUT -s IPADDRESSHERE -j DROP : This command stops any connections from the IP address
iptables -L : List all rules in iptables
iptables -F : Flushes all iptables rules (clears the firewall)
iptables –save : Saves the currenty ruleset in memory to disk
service iptables restart : Restarts iptables

Apache Shell Commands
httpd -v : Outputs the build date and version of the Apache server.
httpd -l : Lists compiled in Apache modules
httpd status : Only works if mod_status is enabled and shows a page of active connections
service httpd restart : Restarted Apache web server

MySQL Shell Commands
mysqladmin processlist : Shows active mysql connections and queries
mysqladmin drop databasenamehere : Drops/deletes the selected database
mysqladmin create databasenamehere : Creates a mysql database

Restore MySQL Database Shell Command
mysql -u username -p password databasename < databasefile.sql : Restores a MySQL database from databasefile.sql

Backup MySQL Database Shell Command
mysqldump -u username -p password databasename > databasefile.sql : Backup MySQL database to databasefile.sql

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

Server Management | Web Hosting | Quality Web Hosting Services | Best Web Hosts | Web Hosting Services Reviews | Hosting Reviews
© Chase Ideas. All Rights Reserved.
Apache is a mark of the ASF (Apache Software Foundation) and the Apache Web Server, other related products, s/w and codebases mentioned are ASF licensed.
Apache.com and All Networked Sites are not affiliated with, or endorsed by, the ASF in any way.