Installing WordPress on localhost

WordPress is a fantastic Content Management System, it can be a very simple application to learn for newbies, and it can still deliver the high level of customization that pros typically require. The level of help available across the interwebs for this is also high and it has a thriving developer community. I thought that I would add to the helpful howto’s on WordPress so that a complete newbie can install WordPress on his own machine to give it a whirl.

Here’s a step by step guide on how to install WordPress on your machine –

  1. First ensure you have all the right resources (XAMPP) – This is to ensure that you have a webserver with a MySQL server setup on your machine. Download the setup and install it. It will typically create a folder C:\xampp. Within this folder, make a note of the htdocs folder (this becomes your document root for your local web server). To check whether this has been properly done or not, simply open a browser and type in localhost and see whether you get a welcome page or not!
  2. After setting up your own webserver, you need the WordPress scripts. Download and extract this in your htdocs folder (it should default to a wordpress folder)
  3. Now simply type in this URL in your browser (http://localhost/wordpress). If you are setting it up for the first time, then you will be prompted to create a configuration file. Wordpress Configuration
  4. Now remember, for the next step you need to have created the database for WordPress. This is pretty straightforward. Open another link in your browser (http://localhost/phpmyadmin). This will be installed by default if you are using XAMPP. I am creating a database by the name of wp2, here’s how it looks
  5. Creating Database
  6. Now go to the previous browser window and click on the “Create a Configuration File” and proceed to the next step. Enter the following details, (Database – wp2, Username – root, leave the password blank since the default MySQL password for XAMPP is empty! Click on Submit.
  7. All right! You are all set to run the install (a confirmation for this is the Run the Install button!).
  8. The next screen is simple, what do you want to call your site (Site Title – I would always name it test since its on my local machine), username is admin and password also admin. NOTE – On a live webserver, the usernames and passwords will HAVE to be different.
  9. In the end, I always check off the Allow Search Engines to index this site. Its on my local host and I do not want to do unnecessary indexing and pinging to the search engines.
  10. That’s it, now you login with your username and password (in this case it was admin, admin). You should see the Dashboard of WordPress. Congratulations! You have setup WordPress on your localhost successfully!

I hope you found this helpful! In case if you got stuck anywhere in the steps outlined, do let me know, I shall be more than happy to help you out!

The Office-less Organization

As someone who has been working on the web for the past decade or so, I have always dreamt of my ideal organization as the one which does not have any offices (read that as a work from home). Obviously, I have heard of many IT organizations working on this model viz., Accenture, IBM to name a few.

However, my idea was not just that. I thought it could be possible to have an organization which does not have any offices! All the employees will be operating independently on their own. This utopian organization seemed a dream and I had more or less dismissed the thought … until today!

An excerpt from Wall Street Journal

The Web-services company Automattic Inc. has 123 employees working in 26 countries, 94 cities and 28 U.S. states. Its offices? Workers’ homes.

At Automattic, which hosts the servers for the blogging platform WordPress.com, work gets done wherever employees choose, and virtual meetings are conducted on Skype or over Internet chat.

The company has a San Francisco office for occasional use, but project management, brainstorming and water-cooler chatter take place on internal blogs. If necessary, team members fly around the world to meet each other face to face. And if people have sensitive questions, they pick up the phone.

How freakin’ awesome is that!

I decided to dive further, and learn more about this organization.

Guess what, they are awesome –

Being the makers of some of the web products that I have come to love and cherish – WordPress, Vaultpress, Akismet, Jetpack, CodePoet … damn, their lis goes on. Google cannot be a dream company, this should be the dream company for all of us WordPress tinkerers!

Shortcodes in WordPress

I love WordPress.

The blogging platform is a great content management system (CMS) to run on your website. Not only as a blog, but it can host your entire site. For example, most of the info pages on Pristine are on WP. In fact over the past year or so, my team has been learning how to create themes for WordPress.

At Pristine, we are providing the training schedules course-wise and city-wise on our different pages viz., for CFA Level I page, we are giving the schedule for all cities where CFA Level I is being conducted, for the Mumbai page, we are giving the schedule for all courses which are being conducted.

It does not take a rocket scientist to figure that there is a lot of duplicate information (which needs to be constantly updated) on different pages. With 8-10 centers and 6-7 courses that means anywhere between 50 to 70 pages which need to be updated whenever the training schedule changes. What a nightmare!

That’s where Shortcodes come in. Shortcodes are essentially functions that you can call from the WordPress CMS. Those of you who have used WP in the past would know that the WP platform is very easy to publish content ensures that you can only enter HTML in the publishing mode. We cannot write PHP scripts within the WP pages.

One way is to customize your templates, but if you want to run the script within your WordPress Publishable Content, then Shortcodes is the elegant solution. All you have to do is declare a function in the theme’s corresponding functions.php file, declare your short code and bind that to your new function. Voila! Now you have your own short code!

So, in this example, all I have to do is create a filterable query for the training schedule and pass either the city or the course as an argument in all my pages. Every time the schedule changes, all I have to do is update it once in the database, and the content will get auto-updated in all my 50-70 pages.

Upgrading WordPress

With the WordPress 3.3 update coming out, I decided that it was about time that I upgrade the wordpress running on our company’s website from the lowly 2.7.1 to the current version. This has been a thorn in my side from quite some time (about a year now). I had earlier attempted to correct this, however direct update options available in WP always resulted in broken themes or worse, broken functionality. It’s a nightmare when you have to consider the SEO juice you would be loosing because of the change in URLs. Even if I put in 301 redirects, it was too much of an effort to consider the update.

Installation

  • Christmas and New Year is always a slow time for any business, the perfect time to update WordPress. Also, using Google Analytics, I noted the time of the day when we receive the least no. of visitors (2am to 7am IST, when the no. is around 300-400 visitors per hour, else it goes as high as 1700-2000 visitors per hour)
  • The first thing I did was ensure that my hosting environment was compatible with WP 3.3. Turns out that my PHP version was not updated. I found this excellent guide to upgrade PHP from 5.1 to 5.3.
  • Once that was done, I double checked to see if my existing packages were compatible with the updated PHP. Turns out, that a lot of the functions in the previous version were deprecated. My error_log was looking like a battlefield scarred with PHP Fatal Errors, and PHP Warnings. Some quick fixes, I was ready for the WP update.
  • Using the awesome 5-minute WP install, I installed a dummy version on a hidden subdomain. I was sure to disable search engines on this deployment.
  • I then exported all the data from our current system and imported it into this deployment. This was the easiest part!
  • I then copied our theme files, and installed it into this new WP package (you have to check the theme files for deprecated methods)
  • I then copied all the plug-ins from the old to the new WP. These were then updated. The good thing about updated plug-ins is that you get awesome set of functionalities and security updates that you so wanted. Note to New Webmasters: There are a lot of plug-ins out there whose older versions contain backdoors (more on this later), trigger false alarms on search engines, etc which need to be taken care of. Earlier I used to this clean-up using shell scripts, but not anymore :)
  • Now with a bit of tweaking here and there, the site had URLs which were function properly (no more worrying about loosing on our SEO efforts).
  • With adding a fair bit of plug-ins into the system, came a new problem – conflicting jQuery!! Earlier this month, I had asked our intern to hand script a jQuery menu, and that was conflicting with the other jQuery scripts. Fortunately, we have jQuery.noConflict().

A whole new World!

  • WordPress 3.3 is breathtakingly awesome!
  • The custom fields have been nerfed, now you have to do a fair bit of tweaking around to introduce custom fields in pages. But that allows me to have a higher controls on them. Earlier custom fields had this nagging way of getting out of control in a wordpress installation. Not any more!
  • Plug-ins like All-in-one-SEO make for better and simpler SEO efforts. All my worries of duplicate title tags are slowly vanishing away!
  • Better plug-in support! Earlier where I would myself script a small workflow on the WP installation, now I can again rely on the huge set of awesome wordpress plug-ins

The good part of this transition was that it took me a little of 3 hours to completely migrate. Of course for some other media (such as videos, pdfs, etc.) which I did not want to migrate to a new folder, I created softlinks and the task was done. All in all, if you are facing legacy wordpress systems, and are worried about upgrading them to the latest version … dont. The best method is to deploy a new version and migrate all the content (however ginormous the task sounds, its a better approach).

Mastering a Mammoth

As part of my work, I am also maintaining the corporate blog these days. Sadly, the content management system (CMS) on which the blog is based on is kinda out of date. So much so that it has become virtually impossible to recreate the same environment on my own desktop.

What this means as a software person, I have to make changes and edits on a production platform. Not only does this give me the heeby jeebies, but also it makes the task a bit too tedious. Any one who has worked on an online server knows the PITA (pain-in-the-ass) it is to edit code files online.

Over the past week, I have been trying to handle this mammoth. I so miss my own agile and flexible WP 3.04 platform!!

In fact typing this blog has made me de-stress :-)

One of the great things about working with legacy CMS is that you get to (or rather have to) understand the exact workings of the CMS, you suddenly start seeing a plethora of possibilities and that gives you a sense of fulfillment.

WordPress Theme!

wordpress-spanner Created or rather tweaked my first WordPress theme ever. Have taken the Magazine theme and with the help of Angad worked out a flashy new theme for our latest blog at work.

Interesting to note that many people do only this for a living and some of the themes fetching a whopping $200 per piece. Makes me want to learn WordPress as an engine and contribute (eh … loosely using the term here!) to the WP community.

WordPress and Blogging

image Last year, I was vacillating between WP and Blogger as my blogging platform. You can see some of that here. With WP 2.7 coming out, I was tempted to try WordPress, finally this year I made the shift completely. As promised, here are my experiences with WP on my own hosting solution + domain.

You can also try this out on your <name>.wordpress.com blogs as well, but the real awesomeness comes out only with your own domain and hosting combination. Try it … it costs around Rs. 3000 odd, but definitely worth it!!

How to do it

Transferring from one platform to another was pretty simply. WP comes in with a very nifty import facility, wherein I could import all my Blogger posts with their comments (whew!). Then it was just a matter of changing the domain settings (this took more than a day to figure out!!).

Pros

The pros are the obvious ones –

  1. Completely customizable look and feel of the blog
  2. Readymade and re-usable themes and cool widgets that simply fit into your blog
  3. Hassle-free
  4. All plug-ins, widgets, themes and the platform itself auto-updates!! I don’t have to do any tinkering around :-)
  5. Huge, and I mean one mother of a huge community to contribute to this WP ecosystem

I could go on, but lets leave these for now. I like the platform but it does have its peeves.

Cons

  1. Categories and Tags … Tags and Categories … yeah, now I have to decide on one and do both … even if just one morphology works for me :-( … anyone have a hack for this?
  2. Now I have noticed that I keep on playing around with the platform more instead of writing more!!

Any help from you guys would be appreciated :)