Tag Archives: linux

Drupal 101

I’ve been doing a lot of work with the open source content management system Drupal lately, and thought I’d share some thoughts on how to get a new site up and running. Drupal, you might recall, got high ratings in Idealware’s March ’09 report comparing open source content management systems. Despite it’s popularity, there are some detractors who make good points, but I find Drupal to be flexible, powerful and customizable enough to meet a lot of my web development needs.

While you can put together a very sophisticated online community and/or website with it, you can also use it for pretty simple things. For example, the nptech aggregator at nptech,info uses Drupal’s excellent RSS aggregation functions extensively, and not much else. No blog, no forums. But, having installed and tried standalone RSS aggregators like Gregarius, it became clear that Drupal was just as good an aggregator and, if desired, much, much more. Similarly, when co-workers were looking for a site to share documents with optional commenting (to replace an FTP repository), Drupal was a good choice to support a simple task without locking out growth possibilities.

Installation

Installing Drupal can be a three click process or a unix command line nightmare, depending on your circumstances. These days, there are simple options. If you are using a web host, check to see if your site management console is the popular CPanel, and, if so, if it includes the Fantastico utility. Fantastico offers automated installs for many popular open source CMSes, blogs and utilities.

Absent Fantastico, your host might have something similar, or you can download the Drupal source and follow the instructions. Required skills include the ability to modify text files, change file and folder permissions, and create a MySQL database. At a minimum, FTP access to your server, or a good, web-based file manager, will be required.

If you’re installing on your own server, things to be aware of are that you’ll need to have PHP, MySQL and a decent web server, such as Apache installed (these are generally installed by default on Linux, but not on Windows). If you use Linux, consumer-focused Linux variants like Ubuntu and Fedora will have current versions of these applications, properly configured. More robust Linux distributions, like Redhat Enterprise, sometimes suffer from their cautious approach by including software versions that are obsolete. I’m a big fan of Centos, the free version of Red Hat Enterprise, but I’m frustrated that it comes with an older, insecure version of PHP and only very annoying ways to remedy that.

Up and Running

Once installed, Drupal advises you to configure and customize your web site. There are some key decisions to be made, and the success of the configuration process will be better assured if you have a solid idea as to what your web site is going to be used for. With that clearly defined, you can configure the functionality, metadata, site structure, and look and feel of your web site.

  1. Install and enable Modules. Which of the core modules (the ones included in the Drupal pacckage) need to be enabled, and what additional modules are required in order to build your site? This is the first place I go.
  2. Define the site Taxonomy. While you can build a site without a taxonomy, you should only do so for a simple site. A well structured taxonomy helps you make your site navigable; enhances searching; and provides a great tool for pyramid-style content management, with broad topics on one level and the ability to refine and dig deeper intuitively built into the site.
  3. Structure your site with Blocks. You can define blocks, assign them to regions on a page (such as the sidebars or header) and restrict them to certain pages. On the theory that a good web site navigates the user through the site intelligently, based on what they click, the ability to dynamically highlight different content on different pages is one of Drupal’s real strengths.
  4. Theme your web site. Don’t settle for the default themes — there are hundreds (or thousands) to choose from. Go to Drupal Theme Garden and find one that meets your needs, then tweak it. You can do a lot with a good theme and the built in thee design tools, or, if you’re a web developer, you can modify your themes PHP and CSS to create something completely unique. Just be sure that you followed the installation suggestions as to where to store themes and modules so that they won’t get overwritten by an upgrade.

This just brushes the surface, so I’ll do some deeper dives into Drupal configuration over the next few weeks.

The Lean, Green, Virtualized Machine

This post was originally published on the Idealware Blog in November of 2008.
I normally try to avoid being preachy, but this is too good a bandwagon to stay off of. If you make decisions about technology, at your organization, as a board member, or in your home, then you should decide to green your IT. This is socially beneficial action that you can take with all sorts of side benefits, such as cost savings and further efficiencies. And it’s not so much of a new project to take on as it is a set of guidelines and practices to apply to your current plan. Even if my day job wasn’t at an organization dedicated to defending our planet, I’d still be writing this post, I’m certain.I’ve heard a few reports that server rooms can output 50% or more of a company’s entire energy; PC Magazine puts them at 30-40% on average. If you work for an organization of 50 people or more, then you should look at this metric: how many servers did you have in 2000; how many do you have now? If the volume hasn’t doubled, at least, then you’re the exception to a very bloated rule. We used to pile multiple applications and services onto each server, but the model for the last decade or so has been one server per database, application, or function. This has resulted in a boom of power usage and inefficiency. Another metric that’s been quoted to me by IDC, the IT research group, is that, on average, we use 10% of any given server’s processing power. So the server sits there humming 24/7, outputting carbons and ticking up our power bills.

So what is Green IT? A bunch of things, some very geeky, some common sense. As you plan for your technology upgrades, here are some things that you can consider:

1. Energy-Saving Systems. Dell, HP and the major vendors all sell systems with energy-saving architecture. Sometimes they cost a little more, but that cost should be offset by savings on the power bills. Look for free software and other programs that will help users manage and automate the power output of their stations.

2. Hosted Applications. When it makes sense, let someone else host your software. The scale of their operation will insure that the resources supporting your application are far more refined than a dedicated server in your building.

3. Green Hosting. Don’t settle for any host – if you have a hosting service for your web site, ask them if they employ solar power or other alternative technologies to keep their servers powered. Check out some of the green hosting services referenced here at Idealware.

4. Server Virtualization. And if, like me, you have a room packed with servers, virtualize. Virtualization is a geeky concept, but it’s one that you should understand. Computer operating system software, such as Windows and Linux, is designed to speak to a computer’s hardware and translate the high-level activities we perform to machine code that the computer’s processor can understand. When you install Windows or Linux, the installation process identifies the particular hardware on your system–the type of processor, brand of graphics card, number of USB ports–and configures the operating system to work with your particular devices.

Virtualization is technology that sits in the middle, providing a generic hardware interface for the operating system to speak with. Why? Because, once the operating system is speaking to something generic, it no longer cares what hardware it’s actually installed on. So you can install your Windows 2003 server on one system. Then, if a component fails, you can copy that server to another system, even if it’s radically different – say, a Mac – and it will still boot up and run. More to the point, you can boot up multiple virtual servers on one actual computer (assuming it has sufficient RAM and processing power).

A virtual server is, basically, a file. Pure and simple: one large file that the computer opens up and runs. While running, you can install programs, create documents, change your wallpaper and tweak your settings. When you shut down the server, it will retain all of your changes in the file. You can back that file up. You can copy it to another server and run it while you upgrade components on it’s home server, so that your users don’t lose access during the upgrade. And you can perform the upgrade at 1:00 in the afternoon, instead of 1:00 in the morning.

So, this isn’t just cool. This is revolutionary. Need a new server to test an application? Well, don’t buy a new machine. Throw a virtualized server on an existing machine.

Don’t want to mess with installing Windows server again? Keep a virtualized, bare bones server file (VM) around and use it as a template.

Don’t want to install it in the first place? Google “Windows Server VM”. There are pre-configured virtual machines for every operating system made available for download.

Want to dramatically reduce the number of computers in your server room, thereby maximizing the power usage of the remaining systems? Develop a virtualization strategy as part of our technology plan.

This is just the surface of the benefits of virtualization. There are some concerns and gotchas, too, that need to be considered, and I’ll be blogging more about it.

But the short story is that we have great tools and opportunities to make our systems more supportive of our environment, curbing the global warming crisis one server room at a time. Unlike a lot of these propositions, this one comes with cost reductions and efficiencies built-in. It’s an opportunity to, once in place, lighten your workload, strengthen your backup strategy, reduce your expenses on hardware and energy, and, well — save the world.