Ahora mismo colaboro como programador en Esferize Comunicaciones. Puedes echar un vistazo a todo lo que hacemos en nuestra web.

Filtrar por

Categorías

Etiquetas

RSS

Descargar e instalar WordPress con un click.

Compartir conocimiento es gratis...Share on Google+
Google+
0Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
0Share on LinkedIn
Linkedin
Pin on Pinterest
Pinterest
0

A veces nos encontramos con la tediosa tarea de instalar WordPress en un servidor cuyo único acceso es mediante FTP o, por el motivo que sea, no tenemos la opción de descomprimir el archivo de instalación desde el propio servidor. Si a eso le añadimos estar trabajando en un sitio con una ADSL ramplona, subir los más de 1000 archivos de una instalación limpia de WordPress puede ser un auténtico… inconveniente. Ve a tomarte un par de cafés, irá para largo.

Cansado de que me pasase, cree el siguiente script para facilitarme la tarea en estos casos. Está probado en un hosting Linux de 1and1. Si no funciona en tu servidor puede ser por innumerables motivos. Fijaté en los mensajes de error que aparezcan al ejecutarlo, eso te dará pistas de lo que está sucediendo.

Si lo pruebas con éxito y compartes por aquí el hosting o tipo de servidor en el que lo has utilizado sería un detallazo ;)

Lo mismo si se te ocurre alguna idea para mejorarlo o lo modificas para que sea más eficaz…

Simplemente crea un archivo con el nombre_que_quieras.php en la ruta del servidor dónde quieras realizar la instalación y pega en él el siguiente código. Después accede al archivo desde tu navegador y sigue las instrucciones… Si lo prefieres puedes descargar el archivo .zip y subirlo a tu servidor:

descargar-wordpress.php

Ahí va (por cuestiones de formateo del editor falta añadir el inicio y el final de PHP (< ?php y ?>):


error_reporting(E_ALL);
ini_set('display_errors', 1);
$script = basename(__FILE__);
$link = $_SERVER['HTTP_HOST'];

// Si venimos desde el botón INSTALAR WORDPRESS
// borramos este archivo y redirigimos al script de instalación de WordPress

if(isset($_POST['delete'])) {
    //intentamos borrar el archivo
    unlink($script);

    //Si no ha sido posible, advertimos al usuario
    if (file_exists($script)) {
        header('Content-Type: text/html; charset=utf-8');
        echo "

El fichero ".$script." no ha podido ser eliminado. Accede por FTP y eliminalo manualmente."; echo "

Una vez eliminado puedes volver a pulsar el botón para continuar con la instalación.

"; echo '
'; echo ''; echo ''; echo '
'; } else { // Si se ha borrado correctament, redirigimos a instalación de WordPress header('Location: http://'.$link); } } else { header('Content-Type: text/html; charset=utf-8'); // Definimos algunas variables y descargamos última versión de WordPress // Copia en la variable $url el enlace de la versión que quieres descargar // desde http://es.wordpress.org/releases/ $url = 'https://es.wordpress.org/wordpress-4.1-es_ES.zip'; echo "

Descargando archivo: ".$url."

"; flush(); sleep(1); $md5 = file_get_contents($url.".md5"); $file = "wordpress.zip"; $src = fopen($url, 'r'); $dest = fopen($file, 'w'); echo stream_copy_to_stream($src, $dest) . " bytes descargados. Descarga correcta.\n"; echo "

Comprobando hashes MD5 del archivo...

"; flush(); sleep(1); // Comprobamos por seguridad si el hash md5 del archivo descargado // es el mismo que el publicado en la web de WordPress echo '

Hash MD5 del archivo descargado ' . $file . ': ' .md5_file($file)."

"; echo '

Hash MD5 de WordPress.org ' . $url . ': ' . $md5."

"; if ($md5 === md5_file($file)) { echo "

Los hash MD5 coinciden. Buena señal.

"; echo "

Descomprimiendo archivo...

"; flush(); sleep(1); $ruta = __DIR__; $zip = new ZipArchive; if ($zip->open($file) === TRUE) { $zip->extractTo($ruta); $zip->close(); echo '

Archivo descomprimido correctamente.

'; echo '

Moviendo archivos a la raiz y asignando permisos...

'; flush(); sleep(1); } else { exit("

El archivo de WordPress no ha podido ser descomprimido. Habrá que subirlo manualmente por FTP :(

"); } // Metemos los nombres de los archivos y directorios en un array $dir = "wordpress"; $files = scandir($dir); // Identificamos los directorios $source = "/wordpress/"; // Movemos los archivos y directorios a la ruta desde la que estamos // ejecutando el script foreach ($files as $file) { if (in_array($file, array(".",".."))) continue; rename ($ruta.$source.$file, $ruta."/".$file); } // Eliminamos el directorio wordpress creado al descomprimir el archivo // y el propio archivo wordpress.zip rmdir("wordpress"); unlink("wordpress.zip"); // Asignamos permisos correctos a archivos y directorios exec ("find ".$ruta." -type f -exec chmod 0644 {} +"); exec ("find ".$ruta." -type d -exec chmod 0755 {} +"); // Mostramos un botón que elimine el archivo de instalación // y nos lleve al instalador de WordPress echo "

Todo ha ido bien. Para hacer limpieza y comenzar la instalación de WordPress pulsa el siguiente botón:

"; echo '
'; echo ''; echo ''; echo '
'; echo 'Al pulsar el botón se eliminará este archivo ('.$script.'). De todos modos y por seguridad, es MUY IMPORTANTE que compruebes mediante FTP que el archivo ha sido eliminado correctamente.'; } else { // Si los HASH no coinciden algo ha ido realmente mal exit("

OJO! Los hash MD5 no coinciden!

"); } }
Luismi (http://luismi.sanchezarteaga.es)
Programador web y Gestor CMS.

Añade un comentario

Por favor, corrige el formulario

requerido*