Changing Content Management Systems

Having long been an advocate of several open source content management systems, I’ve also done the difficult task several times of moving content from one system to another.   Given these systems rarely (if ever) have built in export and import abilities (WordPress being one of them however), you can expect to do much of such a conversion by hand, one article at a time.  If you have a large amount of content, obviously, this is a very time consuming and expensive endeavor.  Moving users and passwords would require several complex database queries and testing as one must also understand how the passwords are encrypted. It’s a painful process and often too expensive for many clients to consider doing.

CMS2CMS

Here’s a resource to make this no longer an issue. CMS2CMS.com can make the conversion from one CMS to another in a matter of minutes.  They’ve written the complex scripts needed to perform these tasks and appear to be adding to the list of what they can support all the time.   They even have a script that will spider a site and push the content into the CMS of your choosing — take a look at the HTML to CMS path.  Here is the full list of supported platforms.

I used their services to move a Joomla based website running on 1.x Joomla to the latest WordPress version and their tools captured all of the content and most importantly, moved all 138 members of the old site to the new.  This was done in about 10 minutes time, including the time for me to put their “bridge” script on the client’s server.  This allowed me to get the conversion done in an amazingly fast way — my client could not be happier.  Me, too.

Backup Scripts for 1and1 and Others

1and1.com is the hosting provider I’ve been using and recommending to others for many years.  They provide adequate service on a very complete product offering that is inexpensive.  So long as you can either resolve issues yourself as their technical support is not what I would call strong, they are a great option.  (Does that spell out an endorsement with caution well enough?)

One thing I’ve come up with is a modification to a backup script that if you are using a Linux system at 1and1 and have access to making crontabs, you can have daily, weekly and monthly database backups stored on the server, emailed to you, or both.  I got this script from a project on SourceForge and modified it to work with 1and1.

  1. 1and1-backup-script  Download this zip archive and unzip it.  You’ll find a shell script and an empty folder called “backups” within it.
  2. Open the backup.sh file in a simple text editor — I use my SFTP tool Transmit for this, too – and enter your database information and change the “changeme@email.com” address to yours or make it empty for no email.  (A dedicated Gmail account would be useful here, too.)
  3. Save the file and upload it and the empty backups directory to your root directory of your 1and1 account. Be sure to set the permissions of your shell script to something that is executable.  If you have configured your domain(s) on your account to point to a subdirectory, this will also keep the shell script and backups from being accessible by a web browser.  More on this simple security hack in the future.
  4. Using a command line tool such as Terminal on a Macintosh, login to your 1and1 account using your SSH credentials.  1and1 has good online help here.
  5. Once you’ve logged in, it’s time to setup the crontab that will run the backup.  Enter “crontab -e” to enter the crontab editor.
  6. You’ll be in the program vi after entering this prompt.  To enter a new line, you’ll need to type “i” to INSERT a line.
  7. I have my backup run at 3:30AM on the server every day of the year.  Here’s the line to type to do the same:
    30 03 * * * sh ./backup.sh >> /dev/null 2>&1
  8. Press the escape key to exit Insert mode and then type press the shift key and type “zz” to exit vi.  You’ll get a prompt about your crontab being written (or modified) at this point.
  9. To view the crontab without editing it, you can type “crontab -l”

If you have multiple databases to backup, you can modify the name of the shell script and backup directory easily enough.  I’ve been using this backup script with my website and with client websites for years.  It has never failed me and has saved my clients several times.  Many thanks to the original authors of this useful open source script.

 

1and1.com – php.ini and htaccess customization

I host my website with 1and1.com, and can honestly say I recommend them to others, too. They provide a great deal of resources at a very reasonable price and have reasonably good service on the occasions I’ve needed it.   Perhaps because I don’t expect much from a low cost hosting entity is also why I think their service is fine, too.  It may also be said that I wouldn’t recommend them because of their service – that’s certainly true, too.

They provide a great Linux/Apache/mySQL/PHP setup and allow you to have private domains through their registrar for no additional costs.  Private domains save you against an onslaught of a ton of spam and unwanted phone calls as your registration remains one hidden behind this 1and1 proxy account.

There are a couple of oddities with any hosting provider to overcome and here’s what I have learned about 1and1 and the tools I use to make development easier.  First off, php 5 is not enabled automatically.  In order to have php 5 be the default for the website, you’ll need to add the following line to an htaccess file —

AddType x-mapp-php5 .php

If you are running Joomla!, and wish to use the built in SEO mod_rewrite features, be sure to also set the RewriteBase flag to the root directory —

RewriteBase /

The controls over php values, like with many shared hosts, are controlled via a php.ini file that you may upload to your root directory.  However, with 1and1, there are some less than   traditional settings and you must also place a php.ini file in each directory on the website that php files are used.  If you’ve just started using 1and1 for the first time, figuring all of this out can be challenging.

Download the ini_help.zip files here To easily install a php.ini file everywhere in the website’s code, I use the script phpcopy.php that you’ll find in the archive.  If you need to delete files, you can use the phpdelete.php script.  You will need to insert the full path of where this script lives on the server within the file before you upload it.  I’ve also included a copy of the php.ini file I use.  It will also need the full server path added to it for the tmp directory line.

If you need to determine the full server path, you can do so with a php info script and look under the environment section. Alternatively, you could login via SSH and navigate to the web directory you wish to use and enter “pwd” to see the full path.