If you want to do it yourself, this would be my recommended learning path: Learn PHP first, to a reasonable standard. Then read about MVC. Then learn to program in PHP using the development framework CodeIgniter. Having done that, you can use something like
FuelCMS to do anything you can imagine.
I would differ from kpac: if I were learning PHP, I would find SMF or phpBB a very intimidating place to start. I would recommend building up the complexity gradually and learning some good programming techniques. If you try to build it from scratch without these disciplines, you will more likely than not end up with a system that is extremely difficult to maintain in the future. That's just the voice of painful experience speaking... :-/