How can I add a public_html directory into a user's home directory?

Check out "mod_userdir" (you should have a .conf somewhere in /etc/, or have it in httpd.conf/apache.conf).

Basically all you have to do is to enable the mod, and it should work with the default configuration.