For HTML, you don’t require any additional software. You can save it on your local computer just like any other file, and the website will be visible to you only. You don’t need any special software to do the HTML coding, but I would recommend the free Notepad++ because it structures the file and adds in color to the tags. You would open the website through your browser, by going to File, then Open File, then browsing to the website location on your hard drive. This is the easiest way to get back into learning HTML since it requires no money.
For learning the HTML itself, I recommend the W3 Schools website. It looks a bit old, but their knowledge is rock solid: W3 HTML Tutorials
The one downside to having your website on your hard drive is no one on the Internet can see it*. This may be a good thing or a bad thing, depending on what your goals are. While you are learning, there is no real point to paying for a web server, because in all honesty no one will find your website unless you give out the address. If you do want it on the Internet, you need to get some web hosting, and a domain name. The easiest way is to purchase from a web hosting company of which there are many. I personally use A2 Hosting, they offer a $5 a month 10GB plan (which is WAY more than you would need for learning, in fact it’s way more than a reasonable website cound use!) and they sell domain names for $13/year. Note, please be careful when purchasing your hosting, some places sell domain names and web hosting for a higher price to rip people off. A dot com domain name is no more than $15, and you can easily find web hosting for under $10 a month or lower.
Another thing to note about web hosting is your requirements. You want to learn and use PHP, so your hosting company will need to provide PHP and a database (most likely MySQL) support. The hosting company I linked to above provides this environment. Many other hosts do as well. Shop around to find a company that suits your needs.
PHP is a bit of a different beast. It’s a server-side language, which means you can’t run PHP code on your computer without installing some software. Luckily if you’re running Windows or Linux (probably Mac too, but I have no experience with that), it’s very easy to set up what’s called a WAMP setup: Windows, Apache, MySQL and PHP. Apache is the server, MySQL for databases, PHP for well PHP. Again, W3 has more information and links about how to set this up: W3 PHP Info Now this does require some tech knowledge to set up, but the plus side is it’s free. Again, same as with the HTML on your local computer, no one but you will be able to access the website*. But it’s a great way to learn and practice. You can always purchase hosting and use it as your testground too if you don’t feel up to installing it on your local computer.
As for learning PHP, there are hundreds of books and sites to learn from. The best reference library is PHP.net – simply type a function name and its description, examples, and community feedback is displayed. It’s by far the best reference library I’ve ever seen in any language. There are also hundreds of tutorials and pre-build modules you can download, install, and learn from. PHP is not a compiled language, so like with HTML you can learn from the source code (however unlike HTML, PHP source code is not displayed when you go “View Source”. You need to have the actual php file in your hand to view the code.)
To make the files “live” on the internet, you upload them. There are many tools to do this. I use FTP (file transfer protocol), and I use a free Firefox plugin called FireFTP.
And a final tip: there are some companies that offer “free” web hosting. I do not recommend going this method. First off, they often limit it to HTML (so no PHP, no databases, none of the fun stuff), and they sometimes put an advertisement in your page. As well, it’s good to learn how to manage your files properly in case you want to make another website! Knowledge is power :D
Phew, big answer. To sum it up, you can practice HTML on your own computer easily. PHP needs a bit of software installed, but can be done for free. But no one but you will be able to see your website unless it’s on the Internet. If you want your site to be on the Internet, you need a Domain Name and Web Hosting, which many companies offer.
Take it slow, start off by not spending any money and learn on your local computer. And have fun!
*: Technically there are ways to create an Internet address that would let your computer become the web server, but many ISPs don’t like you doing this and may forbid this in your terms of service.