Aca les presento mi gran problema, les explico: me encuentro programando un pequeño sistema de generacion de plantillas, la idea es que cuando se registra un nuevo usuario, internamente evalue si este usuario existe de no existir se debe de generar una carpeta con el nombre de usuario y debe de copiarse un archivo dentro de esta carpeta.
Ya logre crear la carpeta con el nombre del usuario, mas no eh logrado copiar el archivo requerido.
Estuve haciendo averiguaciones y descubri que hay funciones que estan limitadas por el UID al tener el safe_mode=ON, dentro de las cuales esta "copy".
Segui indagando y encontre una opcion la cual era copiar el archivo empleando funciones de FTP (todo a traves de PHP), en ambos casos, tanto con el COPY como con el FTP_PUT, logro generar la carpeta mas no logro copiar el archivo, en pantalla no me muestre ningun error o warning, simplemente no copia el archivo, cabe recalcar que tanto el archivo origen como destino se encuentran en el servidor (no es un upload sino un copiar y pegar).
Aca les listo el codigo:
Código PHP:
if( ini_get('safe_mode') ){ // si el servidor está en modo SAFE MODE ON
FtpMkdir("/httpdocs",$usuario); // Ruta, NombreDirectorio
if(FtpCopyFile("/httpdocs/original/index.php","index.php","/httpdocs/".$usuario))
echo "Copio";
else
echo "No copio";
}else{ // si el servidor no está en mode SAFE MODE
//Crear la carpeta del usuario
if(!is_dir("../../".$usuario)){
mkdir("../../".$usuario, 0777);
}
//Dar permisos a las carpetas
chmod("../../original", 0777);
chmod("../../".$usuario, 0777);
//Copia el archivo necesario
$origen = "../../original/index.php";
$destino = "../../".$usuario."/index.php";
copy($origen,$destino);
}
function FtpMkdir($path, $newDir)
{
$server='ftp.miserver.com'; // definimos el servidor donde esta nuestra web
$connection = ftp_connect($server); // hacemos la conexión
// login al servidor ftp
$user = "miusuario"; // definimos el usuario
$pass = "mipassword"; // definimos el password
// realizamos el login al ftp
$result = ftp_login($connection, $user, $pass);
// Verificamos si la conexión ha sido exitosa
if ((!$connection) || (!$result)) {
return false;
exit();
}
else // si la conexión es exitosa
{
// Nos posicionamos en el directorio donde queremos crear el nuevo directorio
ftp_chdir($connection, $path);
// Creamos el nuevo directorio
if(ftp_mkdir($connection, $newDir))
{
// le ponemos los permisos deseados al nuevo directorio
ftp_site($connection, "CHMOD 777 $path/$newDir") or die("FTP SITE CMD failed.");
return $newDir;
}
else
{
return false;
}
ftp_close($connection); // cerramos la conexion
}
}
function FtpCopyFile($fileorigen,$filedestino,$rutadestino)
{
$server='ftp.miserver.com'; // definimos el servidor donde esta nuestra web
$connection = ftp_connect($server); // hacemos la conexión
// login to ftp server
$user = "miusuario"; //definimos el usuario
$pass = "mipassword"; // definimos el password
// realizamos el login al ftp
$result = ftp_login($connection, $user, $pass);
// Verificamos si la conexión ha sido exitosa
if ((!$connection) || (!$result)) {
return false;
exit();
}
else // si la conexión es exitosa
{
// Nos posicionamos dentro del directorio donde queremos copiar el fichero
ftp_chdir($connection, $rutadestino);
// realizamos la copia
ftp_put($connection, $filedestino, $fileorigen, FTP_BINARY);
ftp_close($connection); // cerramos la conexión
}
}