Это потому, что по умолчанию значение Apache Umask по умолчанию равно 0022.
Поскольку umask должен отозвать разрешение. Пример
default 0777 rwx.rwx.rwx
umask 0022 ---.-w-.-w-
Final 0755 rwx.r-x.r-x
Есть 2 способа решить эту проблему,
1. Edit /etc/apache2/envvars
add in **umask** *<permission to be revoke>*
restart apache
2. add in umask(0000); before the mkdir('mydir', 0777);