From the category archives:

Hosting & Servers

After talking about tools like content management systems (CMS), customer relations management (CRM) software, bulk emailers, social networks, web forms, and a bunch of other tools here on ReadyMadeWeb, it seemed like it was time to do an overview of these tools and outline how to run an entire organization using only ReadyMade tools.

SalesForce.com Foundation

For a small non-profit, it’s impossible to beat SalesForce.com at a customer relations management (CRM) solution.  Through SalesForce.com Foundation, this revolutionary web-based database is available for up to 10 users at absolutely no cost and additional users can be added at incredibly discounted rates.  SalesForce.com comes with all the advantages web-based software like enhanced security, managed backup, accessibility from any web browser, and SalesForce.com is regularly updated three times per year—updates which require no involvement from customers and are guaranteed never to break customizations.

SalesForce.com serves as the central database for non-profits in the public policy world like the Charles G. Koch Foundation, the Atlas Foundation, and International Policy Network.  The Center for American Progress has described its deployment of SalesForce.com as “outrageously successful.”

Price: $0 for up to 10 users.

Google Apps Standard Edition

Many non-profits may resist the notion of switching to Google Apps because its productivity software—Docs & Spreadsheets—lacks many of the features that Microsoft’s Office suite contains.  However, a transition to Google Apps doesn’t have to be an all-or-nothing proposal.  Adopting Google Apps to replace your Microsoft Exchange email server can save your organization a heap of cash without having to abandon your Microsoft Office desktop-based applications.

The primary reason to switch from Exchange to Google Apps is price.  In January, I wrote a head-to-head comparison of Exchange & Google Apps which noted a study showing that adopting Google Apps Premium could cut the average company’s email hosting costs by about 65% when compared to Microsoft Exchange and by about 55% when compared with Microsoft’s own cloud-based email service.

But the premium addition of Google’s email offering is likely overkill more most non-profits.  Google Apps Standard Edition offers a whopping 7.4GB per inbox, offers full POP3 and IMAP email compatibility, and boasts bevy of free applications for the Blackberry, iPhone, and Android.

Finally, Google Apps integrates seamlessly with SalesForce, allowing you to instantly add notes to customer contact records whenever you send an email.  No more clunky copy/paste needed!

Price: $0 for unlimited users.

WordPress & Drupal

Your website needs to be flexible keep up with the pace of technology.  That’s the primary reason why ReadyMadeWeb recommend WordPress and Drupal, the only self-hosted CMS solutions used in our portfolio.

According to Water & Stone’s 2009 Open-Source CMS Report, Drupal and WordPress weekly downloads clock in at 62,500 and 433,767 respectively, making them gargantuan in comparison to their competitors. These thriving communities of users and developers are the driving forces behind the flexibility of these platforms.

As both WordPress and Drupal are open-source, additions to the projects are also shared amongst the community of users.  This means that rather than paying a developer to add social networking features to your website—a job that could cost tens of thousands of dollars on a proprietary platform—you can pay a developer to simply implement one of the many freely available add-ons that’s just sitting on the (virtual) shelf.

Too many non-profits are spending their donors hard-earned money making web design companies rich when they could be embracing open-source solutions.

Price: $0 for either software package.

Google Analytics

Google Analytics integrates with Drupal and WordPress to measure your website’s performance and also integrates with SalesForce and MailChimp to track customer conversion rates and traffic from email campaigns.

Price: $0

MailChimp

Once you have people interested in your cause, you need to stay on their radar.  You can keep that presence of mind by sending regular emails updating your supporters, contacts in the media, and colleagues at other organizations.  Using a bulk email solutions like MailChimp will ensure that your emails aren’t blocked by spam filters and will also allow you to measure how frequently your emails are opened and what links your recipients are clicking on.

MailChimp also features out-of-the-box integration with Google Apps and SalesFoce, allowing you populate lists with the contacts you’ve gathered using either platform.

Price: $0 per month for up to 500 subscribers.  Pay plans vary from $10 for to $240 per month based on your number of subscribers.

FormSpring

To easily gather information about donors, process donations, and automatically populate your database and email lists, check out FormSpring.  SalesForce, MailChimp, and Google Apps integrations make this web form creation service a no-brainer for non-profits following the ReadyMadeWeb approach to web software.

Price: $0 for up to 10 forms and 50 sign-ups a month.  Pay plans vary from $14 to $159 per month based on number of forms and entries.

There are all sorts of other great ReadyMade services and open-source software platforms out there that also integrate with many of the platforms we’ve talked about here. Keep reading ReadyMadeWeb to learn about more and feel free to email us at info@readymadeweb.com if you ever want advice choosing the right solutions form your non-profit. We’re glad to help.

Give Your PHP Code Even More Speed with eAccelerator

by Cord Blomquist on February 17, 2010 · View Comments

Many of today’s best open-source CMS systems are written with PHP, an incredibly popular and powerful scripting language. PHP’s power lies in its ability to dynamically generate pages, eliminating the need to code pages by hand in HTML. However, that same dynamism is one of the chief disadvantages of PHP because of the processor power needed to generate pages on the fly. Thankfully, that disadvantage can be easily mitigated by using caching programs like eAccelerator.

So what’s eAccelerator? Here’s the official description from eAccelerator.net:

eAccelerator is a free open-source PHP accelerator & optimizer. It increases the performance of PHP scripts by caching them in their compiled state, so that the overhead of compiling is almost completely eliminated. It also optimizes scripts to speed up their execution. eAccelerator typically reduces server load and increases the speed of your PHP code by 1-10 times.

I’ve found the 1-10 times speed increase to be a conservative estimate as many PHP sites will gain even more speed—even more reason to install this awesome software package.

Below I’ve outlined the process which I followed to install eAccelerator on a Media Temple dedicated virtual (dv) server version 3.5 running CentOS 5 and Plesk Control Panel version 8.6.  Your setup my differ substantially, so please read through the documentation on the eAccelerator website and consult your hosting provider before proceeding.

Media Temple customers should visit their servers admin menu within the Media Temple Account Center in order to install the developer tools on your server as several of the software packages included in the developer tools will be needed for this installation, including “make” and “gcc.” This process will take a few minutes, so go grab a cup of coffee.

To begin the actual install process, login to your server via SSH using Terminal if you’re using a Mac or an SSH client like Putty if you’re using a PC.  Here’s a quick guide to linux command-line commands if you need a reference.

Once you’re logged, drop back to the root directory:

cd /

Next, you’ll need to create a directory for eAccelerator, and then navigate into that directory:

mkdir /ea/

cd /ea/

Download and unzip the installer:

wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2

bzip2 -d eaccelerator-0.9.5.3.tar.bz2

tar xvf eaccelerator-0.9.5.3.tar

Set your current directory to the unzipped file:

cd eaccelerator-0.9.5.3

When you have only one php install (check your server settings), it’s safe to run these commands in the source directory.  This next series of commands will configure and install eAccelerator:

phpize

./configure

make

make test

make install

After compilation, there should be a “eaccelerator.so” file in the modules subdirectory of the eAccelerator source directory.  Check to make sure this is present.

Next, copy the eaccelerator.ini file into the /etc/php.d/ directory:

cd /

cp /ea/eaccelerator-0.9.5.3/eaccelerator.ini /etc/php.d/eaccelerator.ini

Edit eaccelerator.ini using the text editor:

vi /etc/php.d/eaccelerator.ini

Now change this uncommented line:

zend_extension=”/usr/lib/php4/eaccelerator.so”

To this :

zend_extension=”/usr/lib/php/modules/eaccelerator.so”

Now, restart Apache:

service httpd restart

To Verify that this installation worked, first check out PHP:

php -v

You should see these lines somewhere in the mix:

Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

Finally, you can create a php file, and drop this line into it:

<?php phpinfo(); ?>

When you load this php file in your browser you should see the configuration information from your installing of PHP and eAccelerator will have added its own block of information. It will show the configuration, but also the amount of allocated memory, cached scripts and so on. When this says that eaccelerator is enabled and any number of scripts are cached, eAccelerator is working.

If you have any questions about eAccelerator or anything else we’ve covered on ReadyMadeWeb, please leave a comment or email us at info@readymadeweb.com.

Note: Presidents’ Day festivities delayed Plugin Monday. We hope you can make-do with this rare Tuesday edition of our weekly WordPress plugin feature.

In the spirit of the recent Daytona 500, this week we’ll be covering a plugin that will make your site speedier, WP Super Cache.

Unlike other plugins that put more load on your server’s process and slow down your site’s load time, WP Super Cache make your site faster by creating static HTML files from the PHP scripts that run WordPress.  Those HTML files will be served in place of your dynamic WordPress pages, saving your server an incredible amount of strain.

This plugin is especially useful for WordPress users running WP on underpowered servers or users experiencing heavy traffic flow. This means that running WP Super Cache can save you cash by allowing you run WordPress on an inexpensive server without feeling all the lag that can often come with cheaper hosting services.

WP Super Cache is cleverly designed so as not to interfere with the functionality of your site in any way.  Dynamic pages will still be served to users who are logged into your site, users who have left a comment (so they can see them), and users who are viewing a password-protected post or page, so there’s no need to worry about WP Super Cache affecting the experience of your users. If anything, user experience will be improved dramatically as your site will be faster and more responsive.

If you decide to move forward with installing WP Super Cache, it is important to note that installation involves some small edits to your site’s wp-config.php file as well as the .htaccess file. These edits aren’t very extensive, but errors in the code of these files can cause your site to have serious errors or be disabled entirely, so be sure to make backups of these files before you begin the installation process.

To Install the plugin, follow the detailed instructions on the plugin’s page at wordpress.org.  Once you have the basics of the plugin up and running, I’d recommend leaving all the defaults in place with the exception of enabling Super Cache Compression.  Though this compression feature can cause problems with some server setups, chances are that your server will deal with this option just fine and compression will make your site just that much faster.

No matter how you configure WP Super Cache, it’s a good idea to browse through several pages on your site, make a few test comments, and visit any password protected pages in order to test the caching functionality.  Be sure to do this both while logged into your site and while logged out.

After your installation is complete, get to work promoting your site on Digg, as you’ll be able to absorb the traffic of a Digg front page link without a problem.

If you have any questions about installing WP Super Cache, please leave a comment or send an email to info@readymadeweb.com and we’ll get back to you and the rest of our readers with an answer.

Tom & Molly...
Creative Commons License photo credit: benstein

Tom Merritt shows you how to migrate your website to a new host in this video from CNET.  Tom uses a WordPress blog as his example and show you all the steps in the process from FTP and database backup to hosting configuration and DNS changes.

Incidentally, I was glad to see that Tom used FileZilla, my FTP client of choice as well.

Check out more cool how-to guides from Tom and others on CNET and follow Tom on Twitter @acedtect.

How to create static pages in Tumblr

by Jerry Brito on January 26, 2010 · View Comments

Part 4 of 2 in the series Easy Blogging with Tumblr

As I explained in my last post, Tumblr is a light-weight hosted blogging platform that can be more than enough for many web projects. One thing that users accustomed to more full-featured content management systems miss when they use Tumblr is the ability to create static pages–for example, for an About page or a FAQs page. Luckily, there’s an easy way around that.

The trick I’ve used is to create subdomains for each static page. My personal blog is at jerrybrito.org, but my about page is at about.jerrybrito.org. That “about” subdomain is not hosted by Tumblr; it’s hosted on my own server. I simply took the HTML for my Tumblr template and replaced the dynamic content (the code that calls for the blog posts) with the static text of my about page. Voila, a static page for Tumblr.

Admittedly, this is a bit of a hack. If you need more than one or two static pages for your project, you’re probably better off choosing another CMS. A more likely scenario that would call for Tumblr, though, is if you have a website composed mostly of static pages or pages generated by some application that does not include blogging capability and you want to add a simple blog for your site. In that case, you can do the reverse of what I just described an put your Tumblr blog on a subdomain.

For example, I run a site called OpenRegs.com, which is an easier-to-use alternative to the federal government’s official regulatory portal, Regulations.gov. All of the pages on the openregs.com domain are generated by a custom-built application hosted on my own server. When I needed a blog to add the latest news and announcements about the site, I created a new subdomain at blog.openregs.com. That’s where the Tumblr blog resides and all the pages of that subdomain are hosted by Tumblr. The subdomain’s look is the same as the main site because I took the main template and simply added Tumblr code to pull in the dynamic blog content.

Tumblr: A great option for simple blogs

by Jerry Brito on January 18, 2010 · View Comments

Part 3 of 2 in the series Easy Blogging with Tumblr

When choosing a blogging platform, don’t overlook Tumblr, the barebones hosted service cum social network. The key feature of Tumblr is how easy it is to post a nugget of information you found on the web. Whether it’s a picture, a video, a link, or a quote, all you have to do is click on a bookmarklet on your browser bar, add some optional comments, and it’s published to your site. Reblogging posts by others using Tumblr is encouraged and easy to do with one click.

This simplicity is why I use it for my personal site. You might not have time to compose long blog posts, but you can certainly click a button to share the cool things you find online. You can also post by emailing pictures, video, and text to a secret email assigned to you. This means mobile posting from your phone. If you like, Tumblr will also tweet out for you each time you post.

When I developed a new version of Paperclippy, a shopping blog for professional women, I chose Tumblr because it would make it so easy to maintain. Kathleen, who edits the site, surfs for cool stuff to post. When she finds something, she hits the bookmarklet and it brings up an editing panel where she can write her post. These then go into a queue so that she can amass dozens of posts if she wanted to, and then Tumblr will post them however you specify (we have it set to publisher three posts a day between 8 and 11 a.m.). At the same time it publishes, Tumblr tweets the posts and adds it to the Paperclippy page on Facebook. Finally, other Tumblr users who follow the site see it in their “dashboard” and can reblog the content.

Tumblr is easy to set up, offers a good deal of customization, and is incredibly easy to use, especially for web novices. Check it out if you don’t need all the overhead of a self-hosted CMS like Wordpress or Drupal.

Backups: Another Reason to Use Media Temple

by Cord Blomquist on January 15, 2010 · View Comments

Trashing old software
Creative Commons License photo credit: jm3

I like Media Temple because they give their users a great balance between control and ease of use.  Their line of dedicated virtual servers are not only priced right—from $50 to $150 per month—they also offer you everything from complete command-line control to a great control panel in the from of the Plesk 8.6 interface.  Today I wanted to highlight how much I love their backup utilities.

Along with their “Snapshot” offerings that allow you to backup images of your entire server configuration—similar to Time Machine in OS X—the Plesk control panel offers a simple way to backup individual domains and even ship those backups off to an FTP location of your choice.

The aptly named “Backup” utility is simple to configure and can even be automated to ship off your backup files once a day, week, or month at a specified time.  You can also set the number of backups you’d like to keep.  So, for example, if you were to set the utility to keep 10 backups of a domain, it would delete the oldest backup upon completing an 11th backup.

Media Temple’s clever backup files contain not only website files, but also your MySQL database(s) and all of your email data, so they’re comprehensive, but also bulky.  That means that finding a place to store these backups can be a bit tricky.  Scheduling a nightly backup to a file server in your business’s server closet might be viable, but only if your connection can handle downloading the content of your site(s) every night.  If you’ve got over 10GB of data on the web and an average business connection, you’d probably be cutting it close.

Thankfully, RackSpace offers a great service that will allow you to backup your files to another location without bogging down your office’s connection.  CloudFiles, RackSpace’s cheaper answer to Amazon’s S3 file storage solution, can serve as a second location for your precious web files without costing you an arm and a leg.  Their easy-to-use pricing calculator will show you quite clearly just how reasonable their prices are.

So, by combining Media Temple’s built-in backup utility with a bit of cloudy goodness from RackSpace, you’ve got yourself a pretty affordable backup solution in case your Media Temple server falls prey to server bunker gremlins.

But just like counting chickens before they’ve hatched, never count your backups before you’ve used them to actually restore a site.  I’d recommend setting up some dummy domains to test your system from backup to transfer to restore before allowing yourself to feel secure about this automated path to peace of mind.

Monitor Your Web Server Using Your iPhone

by Cord Blomquist on January 15, 2010 · View Comments

Warning: this post is for uber geeks who are comfortable with SSH, Linux command line operations, and showing off their server uptime stats to strangers.

Default monitoring tools from many hosting services leave a lot to be desired.  You have to log in to the server to use them, they’re often several clicks deep into your control panel, they rarely display everything you want to see, and most importantly, they’re not on your iPhone.

Thankfully, iStat, an iPhone app by Bjango, solves this problem.  Installing the iPhone App is easy, but it will set you back a whopping $0.99.  Getting your server to talk to the App is just a bit trickier.  It took me an hour or so to do it the first time, but using these instructions, it should only take you 10 minutes.

To get started, log in to your server using an SSH client like Putty if you’re using a PC, or terminal on a Mac.  Once you’ve logged in, use “cd/” to drop down the root directory, and then using the following commands to create a directory for iState and then download, configure, and install the program:

mkdir istat
cd istat
wget http://istatd.googlecode.com/files/istatd-0.5.4.tar.gz
tar -zxvf istatd-0.5.4.tar.gz
cd istatd-0.5.4
./configure –prefix=/usr –sysconfdir=/etc
make
make install

Create a new user account for the program so it can run in a shielded environment:

useradd istat -s /sbin/nologin
mkdir -p /var/{cache,run}/istat
chown istat /var/{cache,run}/istat

Start the service:

/usr/bin/istatd -d

Create a script to restart service upon reboot using vi:

vi /etc/init.d/istatreboot.sh

Then, and add the following lines:

# Start istatd upon reboot/startup
/usr/bin/istatd -d

Make sure to set this file to the right permissions to allow it to run:

chmod 0755 /etc/init.d/istatreboot.sh

Edit the /etc/rc.local file:

vi /etc/rc.local

Now add “/etc/init.d/istatreboot.sh” to the bottom of the script

Next, you’ll want to edit /etc/istat.conf

vi /etc/istat.conf

In this file you’ll want to edit the server_code value to a five digit code you will later enter on your iPhone.  This serves as a password for access to iStat.

Next, you’ll want to change the values of monitor_net and monitor_disk to this:

monitor_net              ( venet0 )
monitor_disk             ( /dev/vzfs )

You’re done!  Reboot the server to make sure your service will startup upon restart and configure the app on your phone.

Note: These instructions are based on a Media Temple dedicated virtual server running CentOS. Your server’s configuration may vary, so you may need to adapt these instruction to your specific configuration.  Check out the iStat user Google group.