HTML ist ein guter Anfang. Um in die Programmierung einzusteigen bietet es einen sehr leichten Anfang und für die Entwicklung von Webseiten ist es so oder so unerlässlich.
Um HTML auch sehr gut beherrschen zu können brauch man es nicht aus einem Buch lernen, was wohl an der geringen Komplexität liegt, es halt wirklich einfach zu lernen. Das oben bereits genannte SelfHTML (http://de.selfhtml.org) ist da eine wirklich gute Anlaufstelle.
Die nächste Stufe für die Webentwicklung wären dann wohl DHTML und JavaScript.
JavaScript ist schon etwas anspruchsvoller als HTML, hier kann es sich unter Umständen schon lohnen sich ein Buch zuzulegen. JavaScript ermöglicht die statischen HTML-Seiten etwas dynamischer zu gestalten und ermöglichen viele Spielereien wie Animationen, dynamische Menüs usw. Für Informationen zu DHTML und JavaScript wird man ebenfalls bei SelfHTML fündig.
Die letzte Stufe wäre dann erstmal PHP. Früher oder später wirst du einfach das Bedürfnis haben nicht jede einzelne HTML-Seite manuell bearbeiten zu müssen um Design oder Inhalt auf deiner Webseite zu ändern. Hier kommt PHP ins Spiel was dir die Möglichkeit gibt HTML-Seiten dynamisch zu generieren. Mit PHP werden Benutzerverwaltungen, Portale, Foren, Gästebücher usw. möglich. Natürlich gibt es auch hier einige Alternativen, du hast ja aber nur nach PHP gefragt.
Für PHP wäre ohne Vorkenntnisse ein Buch auf jeden Fall zu empfehlen. Wenn du bereits eine Programmiersprache wie C/C++ oder Java beherrschst ist PHP allerdings ein Leichtes. Es gibt aber trotzdem unterschiede zwischen PHP programmieren und PHP
beherrschen. Daher kann ein Buch nicht schaden. Als Referenz würde ich dir selfPHP (http://www.selfphp.de) ans Herz legen.
Was Java angeht so ist das für Privatanwender in der Webentwicklung praktisch nur für Applets zu gebrauchen. Java ist sehr mächtig aber im Vergleich zu HTML, JavaScript und PHP eher schwer zu erlernen und zu beherrschen. Aber es gibt dir die Möglichkeit auch komplexere Programme für das Web zu entwickeln, wie zum Beispiel Onlinegames.
Für dynamische Menüs & Co. ist Java eher weniger zu empfehlen weil es der Aufwand im Normalfall nicht lohnt.
So das war eigentlich alles was mir spontan dazu einfällt.