Homebrew changed how it handles PHP. A brew update completely broke my dev setup. This is how I fixed it. My homebrew setup was too fucked to save. I started by backing up mysql (hello mysqldump --all-databases) and a few other important files in /usr/local that seemed important.
Update: None of this will work now. Homebrew has changed all of the PHP formulas and removed a bunch of stuff. Assuming you have xcode and homebrew installed and running, follow these steps.

Blogging this because it took far too long to figure out and because the documentation is spread across too many pages and isn't at all clear.

Generate some signing keys.

keytool -genkeypair -alias USERNAME -validity 1000 -keystore FILENAME.keystore

Answer some questions. The resulting FILENAME.keystore file must be kept private. This generates a key that's valid for at least 1000 days. The java docs have more information.

Pecl will only try to install PHP extensions in /usr. But OS X's security model prevents that. This work-around works around the problem and installs extensions in different spot.
Apache, PHP, and web browsers default to ISO-Latin-1 (aka latin1). MySQL defaults to latin1, with the latin1_swedish_ci collation.