1. www.findaphd.com is the best place I have found. You could also learn about research opportunities by visiting the website of each individual university you're interested in.
2. This has come up before. Look through the previous threads for some good answers.