Picking up smaller projects or projects that are on the simpler end of the spectrum are increasing hard to come by nowadays. For me, I did learn much while doing my own projects and while doing projects for others. Doing projects for others can backfire on you, especially if you take on more than you are capable (or capable of learning quickly). If you still want to take that approach, I highly recommend thoroughly going the requirements for the project before hand.
A few great ways to learn and develop you experience is to port scripts (i.e. python to PHP, ASP to PHP, etc.), rewrite scripts and experiment. Porting allows you to learn the basics of other languages. Both offer you a means to hone your skills without the need to take on projects. I still do a lot or rewriting from time to time, I'll come across a script and I'm like "wtf is this #$%@?! I could code that better." Most of my rewritten code sits idle on my testing server, I look to them from time to time for different ideas. There is still a lot of room in web development and in web sites, to develop new ideas. As well as develop better or different concepts already in practice (i.e. google, facebook, etc.).
I've learned a lot in web development over the years. I am now rounding out some of the areas that I don't have much experience in or some key, core concepts that I skimmed through or completely skipped (API development, object patterns, design patterns, more thorough exploration of application design). Also, there is a lot of interchangeable or universal concepts that are worth learning, like API design, UI design, application development, OOP, etc. Even some concepts that apply or are explained in different languages can apply to the languages that you learn/use.
Problem solving and patience is by far the most important tools in web development. You will run into errors and failure before you have a working and functional project. All in all, don't give up, the more problems you encounter the sweeter the success will be.