Setting up Your Developer Environment

In my new position at Drupalize.Me I have the luxury of helping a lot of projects in little ways. Being able to context switch quickly helps a lot. This means I've put a lot of time into how my workstation is setup so that I can easily move from one project to another. With the new job I also decided to add OSX to the mix of computers that I use on a daily basis. (Putting me at three platforms: Ubuntu Linux, Windows, and OSX.) There are certain tasks which I prefer doing on each of the three different systems, but I don't believe any one system is required to be an excellent Web developer. On the Lullabot side, most of our developers work either in OSX, or in Linux (usually Ubuntu). If you're "stuck" on a Windows machine, that doesn't mean you can't be great at your job, it just means there are fewer options available to you (and sometimes that's a good thing).

For each of my three different machines, I've got three slightly different developer environments.

Windows

My Windows machine has the easiest setup for Drupal development. I use the Acquia Dev Desktop. It's a one-ish-click install to get a web server stack working on your computer. There is a package for both Windows and OSX. Drupalize.Me has a free video on how to install the Dev Desktop on your computer. You'll want to watch Part 1 and Part 3 of the video to learn how to setup Drupal locally. Part 2 walks you through the specifics of how to install a different version of Drupal core. Obviously you only need the version of Drupal that you actually want to play with—this is probably Drupal 7. But maybe you're interested in trying out Drupal 8, or maybe you're working with a really old site and you need to have a local copy of Drupal 6 to mess around with?

Mac OS X

Next up is my OS X laptop. Most of the Drupalize.Me team uses a MAMP installation for local development. We have a free video that covers the installation of MAMP and a second video that covers the configuration of MAMP. For some reason I haven't entirely fallen in love with the idea of MAMP yet, so I actually have Vagrant installed on my OS X laptop with a "baby Ubuntu" server. If you, like me, have limited hard drive space, you're probably smart to go the MAMP route instead of the Vagrant route. I'm constantly running out of hard drive space when I go to conferences and want to spin up a different environment for all the little projects I want to kick around. To save on hard drive space I'm leaning towards having only one (or maybe two) instances of Vagrant that I treat like my Linux laptop machine. Which leads nicely into my third and final machine.

Linux

Finally, my Linux laptop is a true LAMP stack with Apache, MySQL, and PHP installed directly onto the machine without any one-click-install wrappers. For over a decade Linux was my primary development environment (yup, even for front end work). My Linux laptop is pretty bare-bones. The most exciting developer tools that I've added to my dev stack are Drupal and Drush. (Not including browser plugins, like Firebug, of course.) Most of the work I do on this machine is light site building and theming. For as long as I can remember I've taken advantage of Drupal's built-in multisite capabilities, so I only have one installation of Drupal core, a bunch of common contributed modules in the "sites/all" folder, and per-site themes and custom modules in the appropriate directories for each different project. If you're lucky enough to be using Linux as your primary workstation, we've got a couple of videos to help get you started: installing a Web server on Ubuntu and configuring an Ubuntu Web server.

And that's my setup in a nutshell. Most of these videos are also linked from our quick start page for recreating demo sites. Unless you're using the Dev Desktop, you'll definitely want to peruse the remainder of the instructions on this page to go from having a developer environment to having Drupal installed locally.

Add new comment

Filtered HTML

  • Web page addresses and email addresses turn into links automatically.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code class> <ul type> <ol start type> <li> <dl> <dt> <dd><h3 id> <p>
  • Lines and paragraphs break automatically.

About us

Drupalize.Me is the best resource for learning Drupal online. We have an extensive library covering multiple versions of Drupal and we are the most accurate and up-to-date Drupal resource. Learn more