Open source content management systems (CMS) come in various shapes and sizes and can manage everything from your blog to your enterprise. These systems aren't difficult to deploy, but if you don't know your Apache from your MySQL, you'll run into a steep learning curve. If you have a deadline staring at you, or just want to get a CMS up and running as fast as possible, hop over to BitNami, a site that packages ready-to-consume "stacks" of popular open source CMSes. Just grab your favorite one, double-click, and you're done!
BitNami stacks are available for popular CMSes such as WordPress, Drupal, Joomla!, and MediaWiki. In addition to the CMS itself, the stacks pack the other building blocks of a complete Web server. For example, a WordPress stack will not only have WordPress but also the MySQL database to manage data, Apache Web server to serve the pages, and phpMyAdmin to administer MySQL.
Since it has so much baggage, a BitNami stack is a lot bigger in size than a solo CMS. WordPress alone takes up less than 5MB uncompressed, while the WordPress stack is about 54MB. Stacks are available for Linux, Windows, and x86 and PPC Macs, though not all stacks are available for all platforms.
The BitNami stacks have a .bin extension, and once downloaded have a similar installation procedure. First, make the stacks executable with
chmod 755 foo-bar-stack.bin, then run it with
./foo-bar-stack.bin. By default the stacks launch a graphical installer. If you are installing the stack on a remote server, you can also run the installer in text mode with
./foo-bar-stack.bin --mode text.
The installer first prompts you to select the components you want to install in addition to the CMS itself. Next you need to select the folder the stack will install into. Then the installer will prompt you to create an admin username and password for the CMS. Next you get to tweak some CMS variables, such as the blog name if you're installing the WordPress stack. You'll also have to choose a hostname, which is then used to create internal URLs. By default it uses the localhost address, 127.0.0.1. Finally, choose a password for phpMyAdmin's administrator user, and you're good to go.
After installation you can manage stacks with the ctlscript file inside their respective installation directories.
./ctlscript start will start the various services and the CMS and
./ctlscript stop will stop them. If you've used 127.0.0.1 as the hostname, you can access the CMS at http://127.0.0.1:8080, where 8080 is the default Apache port.
What if you want to run multiple CMSes? If you have already installed a CMS and it's running, when you install another one, the stack installer will prompt you to choose a different Apache and MySQL port. So you can have WordPress running on http://127.0.0.1:8080 and Drupal on http://127.0.0.1:8081. The MySQL port (default is 3306) isn't part of the URL, but is used internally by the CMS to store and retrieve data from the database.
In addition to these stacks for the various CMS applications, BitNami also releases some infrastructure stacks that bundle the building blocks of a Web server without a CMS, and are useful for testing or deploying your own Web apps. There's a RubyStack (Ruby, Rails, MySQL, Subversion) for Linux and Windows, and the LAMP, WAMP, and MAMP stacks (Apache, MySQL, PHP, phpMyAdmin) for Linux, Windows, and Mac, respectively.
But there's a drawback to these stacks as well. Suppose you have to run multiple stacks on a single machine -- for example, WordPress and Drupal. In a traditional Web server setup, both WordPress and Drupal will share the common Web server resources -- Apache, MySQL, PHP. Currently, resource-sharing isn't possible with BitNami stacks. Each BitNami CMS will use its own separate resources. Furthermore, if you wish to run multiple CMS together, you must make sure the installed CMSes are all running before installing the new one. So if you've installed WordPress on 8080 and 3306, and you want to run Drupal on 8081 and 3307, make sure WordPress is running before installing Drupal, or else the Drupal stack will assume that the default Apache and MySQL ports are free and install Drupal at 8080 and 3306 without prompting. If that happens, you can only run either WordPress or Drupal but not both at the same time.
Overall, BitNami stacks are an easy means to getting a CMS up and running. The project currently has more than 15 stacks for apps that run blogs, forums, polls, and wikis, track bugs, and even manage content in an enterprise. If all you need is a ready-to-use Web development environment, BitNami also has stacks that bundle MySQL, Apache, PHP, Ruby, and Rails.
The BitNami stacks are time-saving aces up your sleeve that can come in handy in those moments when deadlines mean everything.