Drubuntu is a Drush script that sets up a highly functional pre-configured Drupal development environment on Ubuntu, and allows you to rapidly add, install and remove platforms and sites.

Drubuntu is flexible and allows you to fine tune it's behaviour with a wide range of options. You can also choose to install and configure only specific things. The configuration is similar to that of the Drubuntu HOWTO, but contains a number of improvements to streamline the end-user experience. Drubuntu is designed for single-user developer use only - if you are looking for tools to manage multiple production sites you may want to look at Aegir, and if you want a production server build for Ubuntu, you may want to check out Pantheon.


  • Ubuntu 10.10
  • Disk Space: 1.3 GB+

Here is a summary of what drubuntu-install installs and configures (by default):

  • The LAMP stack
    • Installs basic software, such as Apache, MySQL, PHP (including libraries - CURL, GD, Xdebug, APC, Uploadprogress and Fileinfo).
    • Configures Apache modules and sets up a vhost to listen for requests on *.localhost and map them to the appropriate platform and site.
    • Configures PHP for Drupal, as well as adding configuration for Xdebug debugging and profiling and APC.
    • Installs Postfix and configures for local-only delivery (for debugging mail issue, but preventing accidental mail outs).
    • Adds user to www-data group, so that they can access files created by PHP, and symlinks log directory to workspace for easy reference.
    • Sets up Dnsmasq, a lightweight DNS proxy/server, to resolve the wildcard *.localhost to
    • Adds a central "drubuntu.settings.inc" file where you can add any $conf or other development settings you want applied to all sites.
    • Creates a .my.cnf file in your home directory so you can use mysql/mysqldump on the command line with fewer parameters.
  • Eclipse
    • Installs the JRE with Eclipse, PDT, CVS and Subclipse plugins.
    • Sets up the standard Eclipse configuration for Drupal in your workspace (merging with existing configuration if it exists).
    • Installs the "HeadlessEclipse" plugin, so we can automatically import new platforms and sites as new workspace projects.
    • Adds a Desktop icon for Eclipse.
  • Web development tools
    • Installs version control tools: svn (and svn-load), cvs, git, bzr
    • Installs MySQL tools: MySQL query browser, MySQL administrator and phpMyAdmin.
    • Installs additional browsers for cross-browser testing: Chrome, Opera, Konqueror, IE6 and IE7
    • Installs the Firefox web developer toolbar and Firebug extensions
    • Installs development tools: Meld (visual 3 way merge), Hex editor, Siege, GWorldClock
  • Sandbox
    • Adds and installs an initial sandbox site

Here is what we do when adding a site with drubuntu-site-add platformname.sitename (or just platformname or just sitename):

  • Determine if we need to install a platform, site, or both
  • Download an place the appropriate platform (default Drupal 6 stable), and add a platform-wide "drubuntu.settings.inc" file.
  • Adds at site directory to the workspace, symlinks it to the appropriate platform sites directory.
  • Creates a settings.php ($db_url and file_directory_path is dynamically determined) and create and chmod the files directory.
  • Adds the platform and/or site as a new project in Eclipse.
  • Installs the site using Provision and opens a browser in the background with the admin user ready to go.
  • We also hook in some additional logic to the Drush bootstrap process, so we can automatically determine the site root and URI, even when outside of the site root.
  • Note that this is a very rapid process, and because of the vhost and DNS setup can complete without requiring any sudo password.

Drubuntu also has uninstall (and uninstall --purge, which is more destructive) and site-remove commands, that undo all of the above. The install command is designed so that you should be able to run it multiple times without causing any issues, so you should be able to run it on an existing Ubuntu install. We try and make exhaustive backups of anything we change. That said, it has primarily been tested on clean Ubuntu installs, so if you have a lot of existing configuration it would be good to run a system backup before you start, and expect that you may need to manually resolve any conflicting configurations. If you seriously don't care about preserving any existing configuration/data an uninstall or even uninstall --purge, followed by an install should get things going.

Note that this version is developed and tested only on Ubuntu 10.10 (Maverick Meerkat). It will generally not work on any other version without significant changes.

Getting started is as simple as opening a terminal and running:

wget 'http://drupalcode.org/viewvc/drupal/contributions/modules/drubuntu/drubuntu-bootstrap.sh?view=co' -Odrubuntu-bootstrap.sh ; cat drubuntu-bootstrap.sh ; read -n1 -p "Run above script? (y/n)" ; if [ "$REPLY" = "y" ]; then bash drubuntu-bootstrap.sh; fi

This will install the basic dependencies. If you have drush or provision already installed you may want to remove them before continuing, or perform this step manually (ensure drubuntu and provision are symlinked into ~/.drush).

Patches are very welcome - examples could include: documentation or screencasts, listing available option parameters, better error checking/handling, system verification/testing command, install needs work for Drupal 5 and 7, adding additional IDE and version control options.

Drubuntu can be installed in a virtual machine, but if you prefer a pre-installed virtual machine you could look a the Quickstart project (note that this is not based on Drubuntu).

Project Information