Developers are motivated by interesting work, and like to have chances to grow their skill set. Also, most developers I know hate rules: give them credit for knowing how to code, don't bog them down with arbitrary things like a 500 page policy manual. Finally, you hired your developers to write code, so make sure you aren't wasting their time on non-development tasks.
One way to keep work interesting is to give every developer at least two projects. This allows a person to switch between them if one becomes boring or frustrating for a few hours. You could even encourage small pet projects that developers are very enthusiastic about, even if the projects are not completely work-related.
You should invest in a bookshelf of manuals, and make a "cheat sheet" of places to look online for help in your technologies (PHP and .NET). Make sure everyone knows a few of your in-house experts. Developers should not have to look far to improve.
Give developers a lot of leeway. Avoid large policy manuals and rulebooks, instead occasionally remind them of simple guidelines like "follow the style of the rest of the code in the file", and "create libraries to handle the really mundane stuff". Be very open to new ideas, even if this means a new language (I have seen projects spiral to their doom because the actual goal was incredibly awkward to implement in the "preferred" languages of the developers).
And finally, as I said, keep developers developing. Don't waste their time forcing them to (for instance) manually enter information into some form, such as a spreadsheet, or manually produce something like a set of progress slides for management. Focus on the information you want from them, and have your managers simply ask for that information in voice or plain text. Your managers should be producing the pretty forms.