De tête me semble que:
chcon --type=httpd_user_content_rw_t /home/TON_USER/public_html
devrait suffir pour autoriser httpd à ecrire dans public_html. Car par défaut tu dois être en httpd_user_content_t seulement. Tu peux automatiser et rendre ce contexte selinux permanent avec la commande "semanage" (fcontext).
Il faudra ensuite s'assurer que l'utilisateur apache puisse accéder en ecriture au repertoire en question.
Au passage, ce serait même surement plus sûr d'autoriser que dans un sous repertoire du public_html.
Après ce posera surement la question des fichiers ainsi crées qui seront la propriété de apache. Mais là c'est des permissions unix classique. La meilleur approche serait surement suexec/suphp et autres trucs permettant de faire tourner les scripts php avec le user qui va bien.