The right answer is: it depends. If you want to host multiple sites, I highly recommend separating the sites by user ID's as well, for example by running a separate PHP-FPM pool per site. For setting up Apache with FastCGI read my blogpost about this.
Now, if you have that done, you have two avenues to go. The first way to go would be to run PHP on the same user you are uploading files as. This will result in a setup where you will never have file permission problems, but you are trading in some security as the PHP code can overwrite itself.
The second solution would involve creating an extra "deployment" user that is used for code upload and a common group for code and execution context. The directories that need to be writable then get an X permission for the group.
Finally, I would really recommend not to deploy any servers using FTP since it is broken by design on many levels. Instead, install an SFTP server (for example ProFTPd with mod_sftp).
- Note: the linked blogposts are written by me.