Seriously, I think the best thing to do is create your own. Some people for example use Redmine instead of Trac. Finding a pre-configured VM with these specific installations is going to be difficult.
So, having the "create your own" as a precondition, I believe you have the following options:
Use a a "VM Aware" distro
Ubuntu Server comes to mind: it has an option to install a minimal installation specific to VMs.
Download the server ISO image, boot from it, press F4 on the first screen and select "Install a minimal virtual machine".
- Less than 380MB installed footprint
- Specialized server Kernel (-virtual)
- Optimised for VMWare ESX, VMWare Server and KVM Intel or AMD x86 architecture
- Minimum memory 128MB
- No graphical environment preloaded as it is aimed at server virtual appliance
IMHO, you're going to spend at most a day configuring your VM to your tastes, not weeks. Using apt-get is going to save you some time in almost all packages in your feature list.
...and if you want even more customization, you can even try to use vmbuilder.
vmbuilder is a script that automates
the process of creating a ready to use
VM based on Ubuntu. There is no need
for a JeOS CD image. The currently
supported hypervisors are KVM, Xen and
VMware.
Use a well known distro and "strip it down"
Install a minimal Debian system and strip down some features, or create a small live image and use it.
Use Linux From Scratch (LFS) and build a system only with essential software
This is the most difficult one and you're going to spend a lot of time.
But you'll be able to have a really small distribution and understand how a Linux system really works. Understanding how everything works you can install just what is needed in your setup, and use lighter binaries like Busybox.
There's an old project called Debian From Scratch (last update is from 2006, so I don't know if it's reliable) that aims to do the same LFS does but using Debian.
(...) is a unique distribution that
allows you to install a Debian system
with almost the same level of control
as what you would get with a Linux
From Scratch installation but with the
Debian advantages (easy to update and
maintain).
You just want a Damn Small Linux out-of-box solution
Well, you can try Damn Small Linux, it's only 50mb and Debian Based and I believe it's the most famous minimal distribution (you can check more distros in this list). I just don't know how it would perform in a Web Server Development scenario.
Final advice
To all situations above, after configuring, save your VM as a default one for future use. Or better, use snapshots, each one with minor differences you may have with your installation (beware though that controlling too many snapshots may be a little cumbersome).
"I don't want to configure my own"
If for some reason you didn't like my approaches or don't have too much time to follow my advice ("create your own VM") you can check this question on ServerFault. There's a list for a bunch of appliances from different distros.
...but if you're going to test a bunch of them, to see if they fit your needs, why not just use the time spent with them creating your own?
Icing on the cake: use Vagrant to manage your vms.
Vagrant is a tool for building and distributing virtualized
development environments.
By providing automated creation and provisioning of virtual machines
using Oracle’s VirtualBox, Vagrant provides the tools to create and
configure lightweight, reproducible, and portable virtual
environments.
This means Vagrant helps you automating a lot of things you usually do when creating a new VM (these features are from the official website):
- Automated virtual machine creation using Oracle’s VirtualBox
- Automated provisioning of virtual environments using Chef, Puppet, or just shell scripts!
- Full SSH access to created environments
- Assign a static IP to your VM, accessible from your machine
- Forward ports to the host machine
- Shared folders allows you to continue using your own editor
- Package environments into distributable boxes
- Completely tear down environment when you’re done
- Easily rebuild a complete environment with a single command
I would create a vm with the same configuration (well, almost the same) as my production server, so some platform problems would not appear just when deploying.