I agree with previous suggestions such as w3schools.com and especially making use of their Try It Yourself feature. You can mod the code and styles a bit and see what the result looks like immediately. A good, fast way to learn the basics.
When starting out, you might like to try getting really good at setting up WordPress sites and others. Then you have something to tinker with, modify and work with. A text editor, some HTML and CSS is not enough any more for a professional Web developer. It might be a good idea to get really "armed and dangerous" with CMS systems, and consult for clients that way, and practise your Photoshop-fu.
In the mean time, you can set up a safe dev environment to learn PHP, database design and applications that use databases. Downloading packages like WAMP/MAMP/XAMMP are a nice option to start with. You can put your code and designs in there, start with database basics, snippets of example code, and test by browsing to http://localhost/.
There's no really easy answer to the question. You might like to drop PHP and use Python or Ruby instead, or develop Web apps with .NET. If you're going to be a Web designer, focus there and team up with others who configure servers, write the code and work on the databases, if you aim to provide a more complete Web Development service.
Since at least some of the time customers may be involved in commerce, you should have a knowledge of basic information security. The OWASP top ten list is a good place to start. You don't by any means need to develop a speciality here, but be aware of the issues. Businesses that raise revenue almost entirely or exclusively on the Web are likely to be vulnerable. So even though you might specialize in Web design, having a good knowledge of the whole picture is useful. A lot of successful Web designers and developers work in teams that way.
Edited by sethandrews, 03 December 2015 - 07:02 PM.