"I would like to learn a language that will teach good programming fundamentals" - that doesn't sound like PHP. You may learn the fundemantals of using a forloop but it's not the best choice if you want to learn good programming practices.
If you can't develop outside a fat ten-ton IDE python is not really a language for you. I'm not sure about ruby but I think it's pretty similar in that respect (it's hard to analyze the code staticaly so there's not much use of IDEs that try to guess what you are thinking when you push a dot). Both ruby and python are great languages if you can make a small shift in your thought process to grasp the basics.
So that leaves you whith C# which is a great language and .net with which you are pretty much stuck on windows (yes, I know of mono, it's a far cry from ms .net). In my opinion .net is not very well suited for learning the basics of programming (especially not web development).
My recommendation is to try and develop something small with any of these and see what you like most. Set yourself a goal, a blogging engine is a bit too much and stereotypic, maybe a service like tinyurl.