Buenas, existe un problema cuando nos dice el jefe: "Esta perfecta la pagina web ahora quiero que la subas al servidor de producción", en ese momento dices, como voy a pasar mi sitio de desarrollo al de producción. Bueno aquí esta un pequeño tutorial que quizás te ayude en ese momento y ganes unos puntos con el jefe y te ahorres dolores de cabeza jeje ok comencemos.
1.- Base de datos: Hay 2 maneras de hacerlo si tienes una base de dato ligera que SOLO montaste contenido de prueba para ir cuadrando las vistas y bloques lanzate este truco.
Lo podemos hacer con phpMyAdmin. Seleccionamos la base de datos de nuestro Drupal en el servidor local, hacemos click en la pestaña “Exportar”. En la pantalla que se nos muestra hemos de asegurarnos que la casilla de verificación de “Datos” esté marcada y hemos de marcar también la casilla de verificación “Enviar (genera un archivo descargable)”, así podremos almacenarlo como un archivo con la extensión “.sql”.
Para ello utilizaremos nuestro gestor de base de datos, en nuestro caso será otra vez phpMyAdmin. Primero creamos la base de datos con el nombre que queramos, y una vez creada ya podemos importar el archivo .sql que generamos en la exportación anterior. Una vez realizado esto, ya tenemos nuestra base de datos de Drupal en nuestro servidor de destino.
Si por casualidad hiciste una migración de un sitio viejo de drupal y trabajaste con esa data la cual puede pesar mas de 700 MB o quizas de mas de 1 GB es mas seguro por la consola entonces hacemos estos comandos.
1.- mysqldump -u USUARIO -p NOMBRE_BD > NOMBRE_QUE_LE_VAS_A_PONER.sql
con este comando le estamos diciendo agarra la base de dato y guardala con ese nombre luego te pedira tu clave de acceso y listo ya tienes respaldada tu Base de Dato, ahora vamos a montarla en el nuevo servidor.
2.- mysql -h nombre_host -u nombre_usuario -p su_clave
3.- create dabatase NOMBRE_BD;
mysql> create database prueba_consola;
Query OK, 1 row affected (0.00 sec)
4.- mysql -u USUARIO -p NOMBRE_BS < /ruta/de_tu_archivo_.SQL/ARCHIVO.sql
Aqui vean la diferencia que en el primero use el comando mysqldump y en el segundo estoy usando mysql y simplemente le estoy diciendo que cargue mi archivo .sql y lo suba a mi base de dato ya creada
Luego verificamos si esta creada la Base de Dato con el siguiente comando:
5.- mysql> show databases;
+-------------------------+
| Database |
+-------------------------+
| information_schema |
| asnoticias |
| des_far |
| hatillo |
| mysql |
| open |
| performance_schema|
| prueba_consola |
| prueba_run |
| site |
| test |
| wordpress |
| active |
+-------------------------+
13 rows in set (0.01 sec)
EXCELENTE ya tenemos la base de dato sin problemas migrada en nuestro nuevo servidor a punta de consola ahora viene lo mas largo que es migrar el la carpeta como tal del Drupal.
2. Estructura de directorios
Una vez tenemos la base de datos, hemos de exportar la estructura de directorio que conforma el Drupal desde nuestro servidor local a nuestro servidor de destino. Para ello bien podemos hacerlo comprimiendo todo el sitio en un archivo .zip o sin comprimir con el tiempo de transferencia que eso conlleva. En cualquiera de los dos casos, como resultado final hemos de tener el directorio descomprimido en el directorio de publicación de nuestro servidor de destino (htmlpublic, public, /var/www/, o como se llame en nuestro servidor…). Hemos de asegurarnos que el directorio sites/default de nuestro Drupal tenga permisos de escritura por parte del servidor web.
Luego que subamos o descomprimamos nuestro sitio web y tengamos bien definido las carpetas vamos a tener el primer de muchos problemas. Cuando ingreses en el navegador la ruta o dominio dira: ERROR DE CONEXIÓN A BASE DE DATO esto se debe a que no editamos nuestro archivo principal que es el settings.php aquí se encuentra en la siguiente ruta /sites/default/settings.php aqui cambiamos los parámetros de conexión yo por lo menos lo tengo en la linea 92 porque uso drupal 6 en el drupal 7 esta cerca de la 213 un ejemplo seria este:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'NOMBRE_BD',
'username' => 'USUARIO',
'password' => 'CLAVE',
'host' => 'IP_SERVIDOR o LOCALHOST',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
);
Ponemos nuestros parámetros y Listo conecta al front pero ahora viene el segundo y gran problema, cuando ingreses en algún contenido y quizás te va a dar este error:
"The requested URL /sitio/inicio was not found on this server"
Se debe a las URL amigables si trabajaste en tu servidor local con la opción activada en el nuevo te va a dar error de rutas, tranquilo no te mates mucho relájate fúmate un cigarro toma un Té descansa.
Después del descanso y que ya tienes tu mente mas clara te presento varias soluciones que me sirvieron a mi.
3. Configuración del servidor web
Ahora tenemos un reto que pasa mucho con Drupal la Url Limpias, si todo da not found y tienes el oculto por razones de seguridad el login de acceso a tu sitio encuentralo por su url normal de sistema:
/?q=user luego ve al administrador y a la opcion de quitar las url limpias:
/?q=es/admin/config/search/clean-urls desmarca la opcion guarda los cambios y ahi deberia funcionar sin problemas.
ahora dependiendo de nuestro sitio si es de noticias, publicidad, porno, videos y nos preocupa las URL amigables existen varios trucos el que a mi me funciono en el servidor es este:
/etc/apache2/sites-available/default
En este archivo, hemos de sustituir en el siguiente código:
Options Indexes FollowSymLinks MultiViewsAllowOverride NoneOrder allow,denyallow from all
La línea
AllowOverride None
ha de ser sustituida por
AllowOverride All
De esta forma nuestro servidor ya podrá reconocer las url limpias. Una vez salvados los cambios, reiniciamos el servidor web y nuestra exportación estaría concluida. A partir de ahora podremos utilizar nuestro sitio Drupal sin problemas y con todas las garantías de que no evolucione de forma independiente en el servidor local de cada desarrollador del equipo.
Otra manera puede ser con el .htaccess que seria asi:
<IfModule mod_rewrite.c>
RewriteEngine on
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
El cual a mi me funciono tambien existen otras maneras de hacerlo pero ya queda de tu parte solo te doy esa idea Google ayuda mas xD Cualquier comentario y/o sugerencia por si me equivoque diganme para editarlo y hacer el post mejor. Saludos....
muchas gracias... me sacaste de un apuro, el problema que tenía era el de las URL Limpias.
ResponderEliminarholaaa.... resulta que tengo un problemón... he seguido todos tus pasos y no hay manera de encontrar solución.
ResponderEliminarSigo sin poder activar las URL limpias. De hecho me sale "Ha fallado el test de URL limpias" cuando le doy al test y no tengo la casilla de activar URL limpias. El caso es que puedo acceder a mi pagina de inicio pero ya no puedo navegar por más contenido de mi sitio drupal. Todo esto me ha salido al migrar mi sitio de local a producción. Alguna sugerencia?
Ya hay solución. Resulta que no estaba activo el módulo de apache en y por mucho que sobresscribieramos no hacía caso. Ahora ya está resuelto.
ResponderEliminar