Here's what I use:
- ~/prj/myproject/trunk
- bin - cgi-bin stuff
- conf - config files
- devdocs - just like it sounds
- externals - catch-all for support programs
- logs
- modules - module hierarchy
- templates - mostly mimics modules hierarchy
- updates - sequentially numbered SQL files to update database structure to "current version"
- install.sh - single command to move everything necessary into "live" /opt/myproject, unlink/relink conf files, reload apache, etc
All under version control (svn), and Trac.
This layout (copped mainly from some CGI-App docs) works well enough for me, but then my current projects aren't particularly large; YMMV