To be able to change file/directory permission through PHP, you first need to know what user/group the web-server is running as. By default, I believe Apache runs as httpd:httpd (user/group).
So, the location where you want to modify or create files/directories will have to allow either the user httpd or the group httpd read and write permission. An easy solution is to assign this location to be owned by the user/group httpd:httpd, e.g. chown -R httpd:httpd /directory-location/.
This will allow the web-server to create files and directories, as well as changing their permissions through PHP later on. If yo want to set up some default permission for file/directory creation, then you need to set the creation umask in some login scripts, such as bashrc; e.g.: umask 022, which will create files and directories with permission of 755 (the inverse).
The trouble I see with the umask is that the user has to login for it to take affect, and since the web-server doesn't log in, this kinda nullifies it use. One way to solve this problem is to specify the umask in the global log in file; but this can create unwanted side effects for other users.
Not sure if this help you or confuse you further, either way, good luck...