Trasladar Drupal de un servidor local a un servidor remoto

Si alguna vez han pasado un sitio web de su localhost a su hosting
definitivo deben saber que siempre (siempre!) aparece algún problema.
Bien, hace poco tuve que hacer algo parecido en un hosting que no
tenía acceso por consola ni cpanel. Tenía además una instalación de
Drupal previa que había que borrar.

Van los pasos entonces:

1. Borrado de la base de datos instalada previamente.

No podía usar PhpMyAdmin porque tenía PHP 5.1.6 y para que funcione
necesitaba PHP 5.2. Entonces tuve que programar un script sencillo
para borrar las tablas. Tomé como referencia
http://www.php.net/manual/en/function.mysql-list-tables.php

<?php

$dbname = "dbname";

$conn = mysql_connect('localhost','user','password');

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;

}

while ($row = mysql_fetch_row($result)) {
$tablas[] = $row[0];
}

#print_r($tablas);

foreach ($tablas as $tabla ) {
$sql1 = "DROP TABLE $dbname .$tabla";
$result1 = mysql_query($sql1,$conn);
if ($result1) { print $dbname .$tabla." borrada "; } else {
print mysql_error(); }

}
mysql_free_result($result);

?>

2. Upload de base de datos local a base de datos remoto

Tuve que usar bigdump. Pueden descargarlo de http://www.ozerov.de/bigdump.php
Se descarga, se edita con los datos de conexión a la base de datos
remota y se sube el script al servidor.
Luego se sube el archivo sql a la carpeta donde está ubicado también
el script bigdump. Se ejecuta el bigdump por el navegador, se ubica el
archivo sql y lo cargamos.

3. Upload de archivos locales a servidor remoto

Subi los archivos comprimidos al servidor remoto. El tema ahora era
descomprimirlo sin usar cpanel ni consola. Pueden usar una clase de
php para descomprimirlo arriba

http://www.phpclasses.org/browse/package/3864.html

El script muestra ejemplos de como se usa la clase. Tienen que
ejecutarlo desde el navegador. Una vez arriba todos los archivos, lo
ideal es usar un sistema de control de versiones como CVS, GIT o
Subversion para mantener sincronizada nuestra copia local con la copia
en el servidor remoto.En mi caso, el hosting que me dieron no contaba
con estos servicios así que sólo me quedaba el FTP. Se puede también
mantener la copia sincronizada por FTP. Para Windows se puede usar
FTPSync. Pueden descargarlo de

http://www.cyberkiko.com/page/FTPSync.aspx

Para Linux pueden descargarlo de

http://ossw.ibcl.at/FTPSync/

4. Ajustes finales

Normalmente debía terminar todo allí. Sin embargo, pueden pasar
algunas cosas, por ejemplo que a pesar de haber hecho todo
correctamente nos salga la famosa pantalla blanca de la muerte (white
page of dead).

En ese caso, generalmente hay que ser dos descartes. Pueden usar como referencia

http://www.ubercart.org/faq/2246

a. Setear el valor de memory_limit a 64 ó 128M

Se puede hacer por .htaccess o php.ini ó ir al archivo settings.php y setear

ini_set('memory_limit', '128M');

Todo depende de cómo el servidor permita configurar este parámetro

b. Si la pantalla blanca sigue saliendo entonces hay que agregar al
archivo index.php las siguientes líneas

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Esto hará que se muestren las líneas de error que están causando el problema

Por ejemplo, el error que me mostró me llevó a identificar que el
módulo Date sólo funciona bien en PHP 5.2, si usas PHP 5.1.6 entonces
debes activar su submódulo para PHP4.

Lo dejo allí, seguro hay más de una forma de pasar una instalación
local de Drupal a un servidor remoto.