Well, if you just want to be a basic host then all you'd need to do is set up an FTP server on the computer and assign users with a login name/password.
If you'd rather do it web based though then you could create a sign up page and when someone signs up you would then go to a PHP script that would:
Create a folder for the user (if thats how you want to do it)
Enter the users data into a database (or if you dont like databases into a text file or something)
For example, Paul signs up with the username "kingpaul". You then create a folder called "kingpaul" so that Paul's URL to his pages would be http://yourdomain.com/users/kingpaul/index.htm or something similar.
You'd then want to allow the user the ability to upload pages and manage what pages are on their site. So you would want to look up File Uploads via HTTP (its in the PHP manual) plus all the filesystem functions to view existing files, etc.
For making things preset, you could create a few template pages and keep them in a folder for templates, and then using PHP allow users to enter information such as the title, heading, etc and then have a copy of the template file copied into their folder, and make the neccessary HTML changes.
Something like that though would take quite a bit of working though, and it might be easier to go without that at the start.
Head over to a place like angelfile.com to see how they do this sort of thing, as they did it fairly well as far as I remember.
But I'm only 16 so I may be wrong on some of the things, so please don't laugh at me too much 🙂
Anyway thats just the theory side, I think it would take a lot of coding (but none of it would be beyond the capabilities of PHP).
~ Paul
Edit: There are also some security things you might wish to think about as well. For example, in your php.ini file you may want to disable certain functions (such as system shutdown functions if there is any), or perhaps even stopping users from uploading PHP scripts (or any other scripts) altogether. Just a thought.