Recursividad en mkdir de PHP
No en todas las versiones de PHP se puede hacer un mkdir recursivo directamente, mkdir('/1/2/3/');
aunque es lo ideal, en versiones antiguas (la opción se añadió en la 5.0) no se podía. Si en tu servidor hay instalada una versión vieja de PHP y no tienes la posibilidad de actualizarlo tu mismo, puedes utilizar una función propia que haga el mkdir recursivo. En el manual oficial de php se explica a fondo como utilizar correctamente la función oficial, con los permisos y recursividad que se necesiten.
Como por ejemplo:
function mkdir_recursivo($pathname, $mode){
umask(0);
is_dir(dirname($pathname)) || mkdir_recursive(dirname($pathname), $mode);
return is_dir($pathname) || mkdir($pathname, $mode);
}
Un ejemplo de uso de esta función sería:
$ruta = 'carpeta/subcarpeta/subsubcarpeta/';
mkdir_recursivo($ruta,0777);
Donde 0777
hay que poner los permisos que se quieran (con el 0 delante).
En cualquier caso, recomiendo leer el manual oficial y visitar estos enlaces para entender y poder escoger la opción que convenga.
Suerte.