your options.
1. build from scratch PHP/mySQL/JavaScript - long and painful road.
2. use existing CMSs - Joomla,Drupal,WordPress etc... a learning curve for each CMS, but ater that you are able to code comfortably within the framework.
3. Use a small CMS, with small framework but enough. build upon it. e.g. SNEWS
4. A combo of mixed establshed CMS and home made solutions.
use the CMS as your main engine, but stay slightly out of its framework and make your own codes for your own special functions, while using the CMS for large functions (like blogging ). You get best of both worlds, but staying out of the CMS means also you deprive yourself from intergration into its functiionalities. Still, it is not a bad idea if you consider that it would take lots of coding and testing tomake your own blog, photo gallery and all that sort of functionalities.
5. Use several CMS, stay well out of each system and write a separate controller program that intergrates them all. This may requires specific knowledge into each CMS, but you would really get best of all worlds. Imagine being able to use Joomla,Drupal, WordPress,Gallery2 all from your own control center. But itergration of all this is perhaps worth a PhD on its own.
i would recomend you use method (3)