I had this problem also. The protections on the users' public_html dir have to allow apache access, and when the user saves files they have to inherit the directory permissions. I wanted to allow user web pages only on a case by case basis, so I wrote this script to accept a username and set up the web space. The index.html I copy in is empty.
Hope this helps. I'm new at this, so no guarantees about the security aspects.
#!/bin/bash
echo
echo "Creating home/public_html directory for user "$1"..."
mkdir /home/e-smith/files/users/$1/home/public_html
echo "Setting permissions..."
chmod 755 /home/e-smith/files/users/$1
chown $1 /home/e-smith/files/users/$1/home/public_html
chgrp www /home/e-smith/files/users/$1/home/public_html
chmod g+rws /home/e-smith/files/users/$1/home/public_html
cp index.html /home/e-smith/files/users/$1/home/public_html
chown $1 /home/e-smith/files/users/$1/home/public_html/index.html
chmod 660 /home/e-smith/files/users/$1/home/public_html/index.html
echo "Done, thanks for playing..."
echo