Setting up MacOS for Web Development

(I will be maintaining this Post with my current setup steps as time moves on)

I’ve been using MacOS for Web Development for a while now, initially on a Mac Mini, then migrating to a MacBook Pro and on to a MacBook Air. I thought it was a good idea to get my web development software setup down so I can recall it more easily and get things moving a lot more quickly when I need to re-set everything back up again.

Read on to find out how.

Main apps

After starting from a fresh MacOS Install I usually follow up with a few default web development applications that I have stored on my local server under ‘app_0’ to indicate that they’re the critical.

  • XCode - install via the App Store. While it’s not used for web development it is required as it includes vital system tools that others depend on, such as PEAR, Brew/MacPorts. It’s a big old download so it’s worth starting early and make sure you’ve got some elbow room on your locale HD.
  • Google Chrome - my browser of choice, I use the regular suite of Firefox, Safari and some VMWare Fusion Virtual Machines for testing
  • MAMP Pro - the nuts and bolts Mac Apache, MySQL and PHP setup
  • Sublime Text 2 - an awesome text editor. I was using the ubiquitous TextMate for a long time but I shifted over to ST2 and I can honestly say it’s awesome. More on my configuration later.
  • Sequel Pro - a useful interface into MySQL when the default phpMyAdmin isn’t enough. It has a very handy ‘Optimise Type’ that I’ll cover.
  • Tower - an GIT visual client that’s got some amazing features when you fancy moving away from the Terminal
  • CodeKit - I use this as a continuous integration SASS (scss) & Compass compiler for my web projects.

Install XCode

then install the command line tools by running XCode then via

Preferences->Downloads->Command Line Tools->(Install)

Stop losing disk space

Prevent disk space erosion and incorrectly reported free space by disabling Time Machine local snapshots with the following command:

sudo tmutil disablelocal f

Fix Terminal

MacOS Terminal has a nasty habit of dropping characters over SSH and I’ve hunted down a Preferences change that I’ve found to really help fix missing characters over SSH.

Inside Terminal Preferences:

-> Advanced -> Declare Terminal

As: (xterm-color)

Setup PEAR

PEAR is used as to install and manage some PHP tools so it’s worth setting up early. Reference: http://blog.borntocode.com/2011/03/complete-php-dev-environment/

ln -s /Applications/MAMP/bin/php/php5.2.17 /Applications/MAMP/bin/php5

This final ‘mv’ operation fixes a broken default PEAR installation within MAMP

mv /Applications/MAMP/bin/php5/conf/pear.conf /Applications/MAMP/bin/php5/conf/pear.confg.backup

nano ~/.profile

add export PATH=/Applications/MAMP/bin/php5/bin:$PATH to ~/.profile

sudo /Applications/MAMP/bin/php5/bin/pear channel-update pear.php.net sudo /Applications/MAMP/bin/php5/bin/pear upgrade pear /Applications/MAMP/bin/php5/bin/pear -V

check versions are running

sudo /Applications/MAMP/bin/php5/bin/pear channel-discover pear.phpunit.de sudo /Applications/MAMP/bin/php5/bin/pear channel-discover components.ez.no sudo /Applications/MAMP/bin/php5/bin/pear channel-discover pear.symfony-project.com

PHPUnit - testing framework

PHPUnit is a unit test framework that allows you to run automated tests on your code to ensure it’s consistently robust and error free. Unit Testing is a fundamental part of Test Driven Development

sudo /Applications/MAMP/bin/php5/bin/pear install phpunit/PHPUnit

Phing - build tool

Phing is a build tool that can save you a whole load of grief by running unit tests (PHPUnit), syntax checks (lint), deployment scripts and much more. All of this automatically checks your development is pretty solid before it gets published.

sudo /Applications/MAMP/bin/php5/bin/pear channel-discover pear.phing.info sudo /Applications/MAMP/bin/php5/bin/pear install phing/phing

I'll post more on the specific configuration later

Install DiffMerge

via http://sourcegear.com/diffmerge/downloads.php

Install GIT

GitHub maintains a great page on Set Up Git for Mac, which you should follow before returning here. We’ll be using GIT for semi-automated deployment to your production servers later.

Local Terminal Configuration

Now you have all of the necessary files installed you can go ahead and start configuring your local system.

I keep a GIT repository of all of my hidden ‘dotfiles’ at the link below that you can use as a great starting point for your own config

cd ~/Projects git clone git@github.com:simeonpashley/dotfiles.git cd dotfiles ./bootstrap.sh

Restart Terminal and all the relevant config files should be in the right places.

Summary

Hopefully you’ll be starting to get a decent setup and the following posts should help solidify a nice web development environment.

logo

I Create Reach.
I Generate Impact.
I Amplify.