WordPress For The Enterprise – Article 3

Dealing With Potential Problems During Implementation

After the first two articles about WordPress for the enterprise, Article 1 and Article 2, I am writing this third articles about some of the nuances of the process of converting an old home grown CMS based site to WordPress for the Enterprise. There are and always will be some hiccups along the way. So let’s get into what happened.

WordPress on Load Balanced Servers

Our company deployed WordPress on load balanced servers, so how did we do it. It was supposed to be pretty easy to do, and if your site is configured properly, basically all you do is:

1. MySQL On A Separate Server
Make sure the WordPress MySQL database is located preferably on a separate server, not localhost, or if you are not that sophisticated on one of the two boxes.

2. Firewall Rules
Make sure that there are no firewall rules in place that would hinder the servers accessing MySQL remotely. We had to have firewall rules allowing communications placed between the production servers and the database server.

3. Location of MySQL Server
Also, we made sure the MySQL server is located within the same data center. If your database server is in Houston and your application (WordPress) servers are in Boston, it will be as slow as molasses…

4. Pre-Loading MySQL
Instead of loading MySQL from the initialization process that WordPress automatically uses, we sync’d the QA MySQL with the production DB. This allows us to have an instant production server, and just be able to make an adjustment to the WordPress config files.

5. Third Level Domain Names
Hopefully you will have an SA to help you if you are using load balancing. Very specifically we set up a unique domain (third level TLD) for each production server. For instance if you are Danspetloversparadise.com, you would set up server1.danspetloversparadise.com and server2.danspetloversparadise.com, and test both servers individually. I will get to that in a moment. In addition, in our case, we had an existing production server, with the name of the final site on the production server. Sounds confusing, and if you have questions, just login to this site and ask them. So in this case, you would want to create a new.danspetloverspardise.com, in order to test out the site before going into production. Sounds like a lot of extra third level domain names and work, but that is what it takes to do it right in the enterprise environment.

6. Webserver (Apache) Configuration
So on both servers, you would need to configure one of the third level domains and new.danspetloversparadise.com. Turns out we had some major issues with our apache configuration, and we had to use the SAs to take a look at the Linux based apache config, httpd.conf. Now, I am assuming you are Unix based or Linux based, but this could be an issue for Windows users as well.

7. Server Testing and wp-config.php
Once the sites all showed up, we are ready to go through a series of tests using wp-config.php. Set both wp-config.php files on both server1 and server2 to point to the proper DB, Host, user and password. The conundrum of WordPress in the Load Balancer, is you have to set the database to one site name at a time to do the testing. So here is the sequence:

8. First Test server 1
This would be server1.danspetloversparadise.com as an example. This requires adjusting 2 options in the Database manually under wp_options, site_url and home options. I use phpmyadmin for this. If you have it and know it, use it. The reason I recommend switching this directly in MySQL is it is possible when you go to save the WordPress options in the WordPress settings area, it will reset and push you to the wrong site… So change the site_url and home options to server1.danspetloversparadise.com and then go to server1.danspetloversparadise.com and see if the site shows up. To finish off this test, login to wordpress, and using the Velvet Blues URL manager I recommend in Article 2, swap the QA url for server1.danspetloversparadise.com… And see if it works and you can get around the server1 site without a problem. If it works, time to test server 2.

9. Second Test server 2
Swap the site_url and home options in MySQL wp_options to server2.danspetloversparadise.com, then go and and using Velvet Blues URL manager swap server2.danspetloversparadise.com with server1.danspetloversparadise.com. Then test the site as server2.danspetloversparadise.com. If it works good, it is time to test the new.danspetloversparadise.com.

10. Load Balancer Test
Swap the site_url and home options in MySQL wp_options to new.danspetloversparadise.com, and then go and using Velvet Blues URL manager swap server2.danspetloversparadise.com with new.danspetloversparadise.com. Test the site as new.danspetloversparadise.com. You should now be ready to swap the site over.

11. Using Redirection, the program I mention in Article 2, to test out all the old links on Google, Bing and Yahoo before doing the swap. This will take a while and it is critical in not losing old urls that will get zapped in a site migration, if you have a previous none WordPress site.

Next article will cover post migration for WordPress Enterprise users.

WordPress For The Enterprise – Article 2

WordPress Enterprise Issue And Plugins

Now that you have read my first article,WordPress For The Enterprise – Article 1, which is really more about reasons why to do a WordPress enterprise implementation, let’s get into what is missing; how we are dealing with it; the absolutely necessary plugins that are out there and the big issues. Here is the big issue and the Plugins I recommend (I am sure there are more out there, and I promise to update this blog with them):

DEV vs. QA vs. PROD
The first and foremost problem with not having an enterprise based solution in WordPress is resolving the enterprise issue of building in a dev environment, testing and QA’ing content in a QA environment, and finally publishing into a secure environment. A lot of gaps here and probably good enough reasons for many IT execs to back off and go for Interwoven, a customized CMS or some other relic of the past. But like I have been saying in Article 1, you have to take the good with the bad, and go with this train, because it is moving so fast, solving so many SEO and other issues along the way, that what the heck, let’s go for it. For now, the answer is still not simple. Across a dozen WordPress implementations, we are currently syncing the Databases. Now that may be a silly answer… albeit let’s get to the real answer. And like all web developers, if there is a problem, there is a solution. That is why have been developing an in-house Enterprise Publishing solution. It is still under development, and it will fit right into the WordPress admin system. When a writer is ready to sync a page from QA to Prod, and it has been approved, there will be a checkbox next to each page, and when they are ready to go, walla, the system will push the content from mysql DB QA to mysql DB PROD… Once we are done with this solution, there probably will be 10 or so plugins just like it on the market. This is coming. Maybe you will be using ours one day.

Anyway, that was the tough news to hear… Now here are the plugins that we can not live without:

This plugin is like the old .htaccess in the linux environment that sets the redirects of incoming links, without having to create directories or redirection files. Found this one a while back and it has really improved our migration from non-WordPress sites to WordPress. If you are not familiar with this one. I would take a look. You may not be ssh’ing to the box after you find this to fix your URLs.

Velvet Blues Update URLS
Sounds kind of funky and kind of important. This small utility plugin simply allows you to flip all URLs in the site, including all content pages, from one URL to another. Now, why would you need this. It’s simple. You want to create a temporary site on the production box before you go live. Let’s say your site is called StrategicPoints.com. So before I go live I want to see it as as WordPress site and not mess up the current site. So I create a new.StrategicPoints.com. Let’s say the Mysql DB is coming from the QA site, qa.strategicpoints.com. So you go into Velvet Blues and flip qa.strategicpoints.com to new.strategicpoints.com. (Just a comment that if you do this, you still need to get into the MYSQL db to swap the DB options first before you run this. I recommend PHPMYADMIN for the faint of heart out there, who were not an SA like me in the old Bell days). I will get more into the production migration process in my next article, so we will get back to this process later on.

This is a very simple plugin which allows you to drop PHP code into the content area on any page. Sounds like a silly thing, but this could be important in making your widgets and making dynamic things happen in your code.

A plugin that allows you to show your bread crumbs as you surf around a WordPress website.

PagesPlus and My Page Order
Plugins that allows you to manage a large amount of pages better. I have not yet used these yet, so I won’t comment, but if you are dealing with over 100 pages of content, this could be important.

This allows you to better manage the side bar content

A variety of SEO related tools, and seems to be the best one for the enterprise. There are many of these WordPress SEO tools out there, but this one appears to cover most of the needs of SEO.

This is one of several Google Analytics installer plugins. This one seems to work. I have tried a few, and this one is ready to go. If you are new to Google Analytics, well you should know the drill by now. Put Google Analytics on the site and you will know the anlaytics

Great tool for generating a sitemap.xml file for Google Webmaster Tools. If you have not logged into this part of Google yet, you really need to, because it is the best way of letting Google know what pages you offer. Great for SEO.

Sitemap Generator
Not to be confused with the sitemap.xml file, the Site Map generator creates a real site map that real users can use. Sounds Great!

WP Security Scan
This is a great security, WordPress, hardening tool. Use it to run a site audit and see what needs to be improved. Keep up with new versions, through the new downloader, and you will keep from getting hacked, always an issue using this open source stuff, and an enterprise concern

Just getting into the localization, then try the best of WordPress breed out there. This is qTranslate. I have used it once so far and it did the job. I will mention however, that it is powerful and does require set up. There are these .mo files that need to go on your site in order to assist with the translation character set. So this one may require talking to a tech guy. For latin languages, it goes right to work. Anyway, we are about to try it out again for a new site and we will see if it is up to the Enterprise task.

That’s about it for now. Hopefully we can come to some conclusion on a set of enterprise plugins. The big one, the “Publishing Plugin” is getting close at our company. Somebody will create a real nice one out there and hopefully solve this issue. There are a variety of problems and issues associated with this production plugin, but I think they will be worked out, to the point that we just point and click and it does the job.

Next, Article 3, the WordPress enterprise migration process.

Previous Article 1, WordPress For The Enterprise – Article 1
Next Article 3, Click Here to go to Article 3, Problems During Implementation


WordPress For The Enterprise – Article 1

As many WordPress users know, WordPress has become an application with critical mass. That’s not to say it is perfect or has all the application features you may need. That’s where plugins come in.

So let’s say you use WordPress for your personal blog. Fine. You know how to set it up; you know how to find a free template; you know how to load a plugin and configure a plugin. As you know there are over 4,000 plugins to choose from. Let’s say you are even at a higher level, with years of programming experience, or system experience and have an IT job…

So, you recommend to your employer, hey let’s switch over our sites to WordPress! Sounds good, right? Well, first off, yes, it is a good decision. There are a dozen other rational decisions out there, some of which are better for enterprise-level solutions. However, the reasons why companies implement enterprise solutions are different from a single site you run with some limited pages and posting needs. There is scalability, security, user approvals, multi-lingual (localization), an ability to manage upgrades, an ability to implement features. The list goes on and on.

So why did I recommend to my employer that we implement WordPress across our diversified 5-8 corporate sites and essentially go against all the negatives. Most people when they hear WordPress, only think blog. There is one big reason. Not exactly what WordPress is today, but what is it going to be tomorrow, and how much support and critical mass it appears to be getting. More specifically, to new users or WordPress, it can do a lot more than Post Blog Articles. It can do everything from hosting pages, categorize those pages, to rapidly implement designs, and this is not covering the 4,000+ plugins out there.

Last time I checked, but over 2.8 million people were downloading every new stable version of WordPress. The number and type of plugins, as I will prove, in this series of articles, saved my butt many times over the past few months. And as each version of WordPress comes out, it gets closer and closer to ultimately what I exactly need.

What is interesting is we were able to either write or fill in the gaps where WordPress did not. We created our internal plugins on the open source base product by Automattic, and found the pieces that ultimately filled in the puzzle.

Let’s get to the nitty gritty of the positives. Along with this WordPress conversion all our home grown and purchased CMS’s were slowly removed. That means less code management, and less developer time and energy focused on fixing our code. That is the beauty of open source. Instead of fixing basic problems with an old Cold Fusion CMS we had, we now have the developer working on plugins that add new functionality we need to be fully enterprise.

The standardization of the backend UI. Now all our sites have the same backend and everybody knows what to expect. I have not had to give a WordPress UI class yet. This standardization of how the plugins fit and how the themes just pop in, has made it universal for the standards of the design work to be completed, and has set expectations for outside designers of what we require to implement their design. In many cases the designer has been separated from the coding effort and can work independently on their own wordpress version and when they are ready to implement, the design pops right in.

Then there is the manpower issue. Other than design work, there really has not been a need to hire an additional developer we were looking to hire back when we were supporting multiple CMS’s. We are running a lot of these sites with a part-time plugin developer, a content manager and SAs moving around the code.

There fundamentals of WordPress Enterprise are in place. It will cut your dev costs. It will standardize parts of your applications that make it actually possible to get an upgrade. It will make your world more predictable managing websites. It allows you to access thousands of free open source code to solve programming issues that developers would have to hired for.

If anything, you would think this will reduce programming. In fact we still need lots of programming, but for specialized, strategic dev purposes. What I mean is we used to spend a lot of time on the login, the membership system and other basic functions that WordPress manages for us. Now these are less of a concern and integration and plugins are really where it is at.

In my next article, I will discuss the specific system issues, the plugins we use, the plugins we are developing or have developed, theme management, code management and how we got through the more mundane implementaton issues.

Click Here to go to Article 2, Issues and Plugins
Click Here to go to Article 3, Problems During Implementation

WordPress For The Enterprise

This blog entry is the first in a series of articles about taking WordPress and making it work for the enterprise. I figure, because I am in the middle of it, I might as well share some of the advantages and pitfalls of using wordpress for your enterprise solution, or as many will call it, getting the WordPress to act as a CMS (Content Management System) for the enterprise. This series of blog articles will get into the ins and outs of implementing wordpress for a corporation, and what plugins to use, and what issues you will have to overcome. So, sign up for this blog, come back for a visit, or go to my twitter account at http://www.twitter.com/dgudema to read what I am going through…

Landing Page Optimization & MarketingExperiments

Last spring I attended the 2009 Omniture Marketing Summit. By chance, right before I left, I noticed there was a landing page certification program being run by MarketingExperiments (associated with Marketing Sherpa). Those of you familiar with the MarketingExperiments formula and principals know how this program works. And when I attended the conference and spent the 8 or so hours getting this certification, I ended up finding out how little I actually did know about landing page optimization and site optimization in general.

I have been a hard core web developer, a Unix SA, a web content management analyst, a web analytics analyst, a web manager, and most recently a web marketer, but all those experiences over 10 years were somewhat dwarfed by the simplicity of the MarketingExperiments experience. Since then I have graciously put the experience to work on several websites, some for fun, some for consulting work, and some general comments at my day job. The formula is still the same, C=4M+3V+2(I-F)-2A… And I am not going to get into it exactly, but the formula helps figure out what is wrong with conversion process on a web page.

Case in point, most recently I was asked to do this type of analysis of a website I did all the programming for called LockAndKeyEvents.com. This site is a popular singles events site, that has not changed design much since it was created in 2002. Since then the site has had 3 owners and has grown to over 20 cities in the US. The current owner is doing a great job, but the site need work from a design perspective and needs a lot of small programming improvements which hopefully will be fixed over the next few months.

On an unrelated note, well maybe not unrelated, I was asked by a colleague for a specific guide to improving an internal UI. I told him about MarketingExperiments, but more importantly, it suddenly occurred to me that there was a little book sitting on my bookshelf called “Don’t Make Me Think”, which I have carried with me for the last couple of years. The book is all about meeting customer expectation and meeting standards that people use on web pages. Both the book and MarketingExperiments make the point that you don’t need a PHD or oversimplification of UI design. You actually need to be both in the head of the customer, not make them think to hard and finally guide them properly, with little if any friction through the end-goal of conversion. Sounds easy.

Iphone You Say

I had heard whispers in technology circles (this means my friend’s Dave & Dave) about the Iphone and it’s virtues. And now that I am an older I guess, I at first, could not give a flying …. So I ignored them.

Let’s back up a bit… Around the time Dave & Dave were telling me about the great iPhone, my wife was chiming in to me how they are fantastic, etc. etc. Still I did not listen, nor did I have anytime to think about it. I just figured it was something similar to an Ipod, which I had used and basically it was not for me. There was a bit of argument over the Iphone with my wife, because I did not listen. Well I probably should have. A year later, Dave & Dave were extolling the virtues again, when I began to listen.

Finally my orange Palm Treo began to fizzle out. It was dropped, beat to a pulp, and none of that mattered to me. It did the job of calling and emailing (very badly), and it somewhat worked. So why was I carrying around 2 cell phones? It was simple. I got one for my day job and I figured I would use it for work email. So for 6 months I kept two cell phones in my pockets. This was pretty much an exercise in radiation therapy for my hips. I knew something was wrong with this. Forget about putting my work, exchange/microsoft onto my personal phone. Isn’t that what a blackberry is for? Well did not have a blackberry. I had a microsoft based HTX phone. And seemed good.

Anyway, one day my palm phone stopped working. I mean I could not stop phone calls. The keypad just went dead! I was kind of screwed. When I called people, I had to ask them to hang up for me. I could use the touch screen, but that was it. So I was determined to get a new phone.

That’s when I remembered there was this guy in mid-Boca who ran an independent cell phone store which had a pile of old phones on a shelf behind him. I figured go over there and grab one, pop in my tmobile sim chip, which was 10 years old and get right back to work. So I stopped by Smart Communications. This began a whole saga of getting a new phone through the backdoor, I guess. I had purchased an orange unlocked Palm Treo on eBay, so what the hey. I might as well do it again.

Mark showed me all the newest stuff. An Android phone, new Google offering, which I considered. Then there were palms and blackberries and other HTX’s. I had already an HTX flip in side pocket, so that was out of the question. I looked them over and then I looked at the iPhone. He determined right away it was not for me, from an expense standpoint and he declared “its a toy!” Anyway, I called my wife, and she said why don’t you get it! Hmm. That was the key words for she wanted it for herself… So I decided to go for it. Now mind you this is putting an iPhone on Tmobile, a bit of a tricky deal. It was a bit clandestine, because apparently this is an anomaly, since at&t has some exclusive contract with apple. Anyway, I purchased it.

This started the second part of the saga, the painful part. The actual iPhone was something like version 2.6 and that meant that you needed to unlock the thing with a turbo thingy. Looked like a piece of foil that goes behind the chip. He said it came from a guy in Hong Kong. And guess what as soon as I walked out of the store, it immediately stopped working… So I went back. Here is where I made up my mind to get the darn thing to work. My 10 minutes with the iPhone had converted me, and I was now determined. So I went back to the guy and we tried this and that, and upgraded. I even went into a Tmobile store and got a new SIM chip. Just told them it was no longer working… Now I am carrying around 3 phones. My work, HTX, the iphone and my treo, just in case to pop the sim back. My pockets were hanging low and I expected a banana joke at anytime.

Finally, Mark told me to give him the phone back and wait a week. A guy in HongKong was going to break/unlock the newest 3.0 iphone load. I was suddenly feeling like a junky waiting for the new shipment. And I put up with wait, another week. In the meantime my wife told me I was fooling myself and to give up. Finally I went back and he said not ready. I was thinking Android on that day, trust me… But I had patience and the guy from hongkong did the job and the old phone, non 3g got updated. I was able to get the iphone working… In the end I was able to get rid of all my phones and move to a single phone. This was a long time coming. and now I guess I am an iPhone advocate. Even thinking about being an Apple shareholder.

social media & the death of the custom cms

Whether it is twitter, linkedin, facebook or myspace, there is no doubt that social media is here to stay as part of the framework of the web. So that is why most cms and blog software are building into them automatically, everything from rss to seo permalinks, to sitemaps, to ping outs. This means that the days of writing your own cms are coming to a close. Whether you prefer Drupal, WordPress or other open source, the days of rolling your own CMS are finished. These may be fighting words for most developers, but the business world sees it differently. This is not even an open source vs. commercial software issue. It is a fact of life. When I look over a company’s portfolio and see links ending in .cfm, .asp or .php, I see the old way, compared with the new way. That is why sometimes you have to stop what you are doing and follow a new way.

StrategicPoints Blog Starts

This blog is a continuation of InternetAnalysisTools.com, a blog I had shut down, not by my actions, about a year and a half ago. That blog was about Internet Analysis Tools. This blog, however, will be about anything Internet relevant, including web development, web marketing, seo, my thoughts in general about the growth of the web, internet security, writing internet business plans, and general information that may be of interest to clients of StrategicPoints, LLC. Please signon and if you really want to follow me, then @dgudema on twitter.

Dan Gudema