Conectar a base de datos remota usando instalación Localhost

11 oct 2013, 17:49:06
Vistas: 18.4K
Votos: 3

Estoy diseñando y desarrollando un sitio web para un cliente pero quiero permitir que el cliente agregue contenido mientras trabajo en el diseño y desarrollo del sitio para que esté prácticamente listo cuando termine.

Actualmente, uso XAMPP en el puerto 81, por lo que mi URL del proyecto se ve algo como:

http://localhost:81/nombredelproyecto

Mi archivo wp-config tiene todas las configuraciones necesarias para la base de datos remota y sin embargo, cuando ejecuto

http://localhost:81/nombredelproyecto 

la URL constantemente me redirige a

http://localhost/nombredelproyecto.

He eliminado todos los archivos htaccess pensando que el problema estaba ahí pero eso no funcionó. Mi ISP sugirió abrir el puerto 3306 lo cual he hecho pero tampoco solucionó el problema.

No sé si tiene que ver con el puerto 81 en Xampp quizás?

EDITAR: Los enlaces de configuración general apuntan a la versión en línea del sitio así que

Dirección del sitio = http://ejemplo.com

Dirección de WP = http://ejemplo.com

Muchas gracias

6
Comentarios

¿Cuáles son tus configuraciones de URL en Ajustes->Generales?

s_ha_dum s_ha_dum
11 oct 2013 17:59:55

He hecho una edición a la pregunta anterior shadum, gracias

SixfootJames SixfootJames
11 oct 2013 18:37:56

¿Disculpa? ¿Tus configuraciones enlazan a un sitio externo? Eso nunca va a funcionar correctamente. Estoy muy confundido por lo que estás haciendo ahora.

s_ha_dum s_ha_dum
11 oct 2013 18:41:11

¿No hay manera de extraer el contenido a un sitio en localhost solo para obtener el contenido en el sitio y así poder trabajar en el desarrollo mientras el cliente añade el contenido a la base de datos en vivo? Nunca he hecho esto con WordPress pero logramos hacerlo con DNN hace muchos años.

SixfootJames SixfootJames
11 oct 2013 18:50:55

Intenta revisar también tu archivo de configuración de Apache en tu instalación de Xampp. Puedes consultar este enlace sobre cómo configurar múltiples sitios usando xampp, lo cual puede ayudarte a probar si el problema es Xampp: http://kuppalli.wordpress.com/2011/01/24/setup-multiple-sites-on-your-local-machine-using-xampp-or-apache-2/

Camilo Buitrago Camilo Buitrago
11 oct 2013 18:20:11

Gracias Camilo. Probé esto pensando que agregar el puerto 3306 podría funcionar pero no fue así. No tengo un problema con múltiples proyectos sino más bien un problema al ejecutar un proyecto local que se conecta a una base de datos remota.

SixfootJames SixfootJames
11 oct 2013 18:45:21
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 2
12

¿No hay forma de extraer el contenido a un sitio en localhost para poder tener el contenido en el sitio y así poder trabajar en el desarrollo mientras el cliente añade contenido a la base de datos en vivo?

Si el servidor remoto lo permite, puedes conectarte a la base de datos remota. Solo configura correctamente tus constantes de conexión:

// ** Configuración de MySQL - Puedes obtener esta información de tu proveedor de hosting ** //
/** El nombre de la base de datos de WordPress */
define( 'DB_NAME', 'nombre_de_la_base_de_datos_aqui' );

/** Usuario de la base de datos de MySQL */
define( 'DB_USER', 'usuario_aqui' );

/** Contraseña de la base de datos de MySQL */
define( 'DB_PASSWORD', 'contraseña_aqui' );

/** Host de MySQL */
define( 'DB_HOST', 'localhost' );

Casi con seguridad también tendrás que configurar estos valores en la instalación local:

define( 'WP_SITEURL', 'http://ejemplo.com/wordpress' );
define( 'WP_SITEURL', 'http://ejemplo.com/wordpress' );

Casi te garantizo que aún así tendrás problemas, sin mencionar que los cambios que hagas afectarán al servidor en vivo.

Existen otras soluciones potenciales, como la replicación de bases de datos, pero eso estaría fuera de tema aquí y nunca lo he hecho.

Mi consejo es que simplemente copies la base de datos en vivo a tu servidor local al inicio del proyecto y no intentes sincronizar las bases de datos o conectar el sitio de desarrollo con el en vivo. Estás pidiendo problemas. WordPress no tiene una separación clara entre contenido/configuración en la base de datos.

11 oct 2013 19:00:38
Comentarios

Gracias Shadum, podría optar por esa ruta de obtener constantemente una nueva versión de la base de datos en vivo... y no te preocupes, la base de datos en vivo está oculta detrás de una URL hasta que el sitio real esté en línea :)

SixfootJames SixfootJames
11 oct 2013 20:36:31

No, no funcionó. Gracias por el esfuerzo de todas formas Shadum

SixfootJames SixfootJames
11 oct 2013 20:39:51

Mi consejo está en el último párrafo, por favor tenlo en cuenta.

s_ha_dum s_ha_dum
11 oct 2013 20:52:54

Gracias Shadum... voy a seguir tu sugerencia del último párrafo

SixfootJames SixfootJames
7 nov 2013 08:02:56

@SixfootJames: aceptaste esta respuesta hace mucho tiempo, pero ahora la has desaceptado y no has aceptado una alternativa. ¿Por qué?

s_ha_dum s_ha_dum
20 ene 2014 16:25:05

Hola Shadum, probé todas estas opciones nuevamente pero no funcionó, así que espero que alguien más pueda tener una solución.

SixfootJames SixfootJames
21 ene 2014 21:21:54

@SixfootJames : probablemente tendrás que proporcionar más detalles.

s_ha_dum s_ha_dum
21 ene 2014 21:24:53

Solíamos hacer esto con DNN en el lugar donde trabajaba anteriormente. El equipo podía trabajar en diferentes partes de un proyecto de sitio web mientras el propietario del sitio comenzaba a escribir su contenido directamente en el CMS. Así, cada persona tiene una copia del sitio a través de SVN, pero todos se conectan a una misma base de datos, lo que acelera el proceso de desarrollo. Por lo tanto, me gustaría lograr lo mismo con WordPress. ¿La única alternativa sería alojar mi propio servidor interno y luego, con el uso de NO-IP, darle acceso al cliente al sitio que está conectado a través de mi propia red?

SixfootJames SixfootJames
22 ene 2014 08:26:56

También me he conectado a bases de datos remotas, pero hacerlo depende de la configuración del servidor, lo cual podría ser tu problema. No todos los servidores permiten conexiones remotas.

s_ha_dum s_ha_dum
22 ene 2014 16:22:29

Shadum, en realidad llamé a mi ISP justo el otro día y me aseguraron que es posible. Si te diera los detalles de la base de datos remota, ¿crees que podrías mostrarme cómo hacer esa conexión en un archivo de configuración, por favor? Probé todas las configuraciones que me diste anteriormente y cuando navego desde mi archivo localhost, por ejemplo, y luego hago clic en otra página, me lleva a la página del sitio en vivo, en lugar de permanecer en las páginas del localhost.

SixfootJames SixfootJames
22 ene 2014 21:44:26

¿Tu ISP? ¿Te refieres a tu proveedor de alojamiento web?

s_ha_dum s_ha_dum
22 ene 2014 21:46:05

Sí, perdón, aquí lo llamamos Proveedor de Servicios de Internet :)

SixfootJames SixfootJames
22 ene 2014 22:05:23
Mostrar los 7 comentarios restantes
8

Creo que s_ha_dum va por buen camino, pero creo que lo entendió al revés.

Lo que quieres es:

  1. desarrollar/diseñar localmente
  2. conectarte a la base de datos REMOTA y trabajar con su contenido

Necesitas una instalación remota (de staging) de WordPress, donde el cliente pueda crear/ingresar su contenido.

Necesitas que tu sitio WordPress local (localhost) apunte a la base de datos remota, para obtener el contenido que está utilizando.

Entonces, tendrías tu http://example.com/wordpress configurado para que el cliente edite - incluso con una instalación básica de WP. Este sitio estaría conectado a su propia base de datos.

Tu sitio en localhost tendría las credenciales de la base de datos del sitio REMOTO, con el DB_HOST configurado a http://example.com, o cualquiera que sea la ruta de mySQL si se accede de otra forma a través de tu proveedor de hosting.

En tu sitio local, mantén WP_SITEURL y WP_HOME configurados a localhost. De lo contrario, obtendrás bucles de redirección.

29 ene 2014 16:59:46
Comentarios

Gracias Eric, eso es exactamente lo que estaba ocurriendo y lo que sugieres es lo que me gustaría lograr, pero seguía teniendo el problema de redirección.

Combinaré ambas soluciones que propones y te avisaré :) ¡Muchas gracias de nuevo!

SixfootJames SixfootJames
29 ene 2014 18:00:55

Lo siento, es WP_SITEURL, no WP_SITE_URL. Si eso no funciona, puede que necesites definir define('WP_RELOCATE', true); en tu archivo wp-config.php, iniciar sesión y luego eliminar esa línea.

Eric Holmes Eric Holmes
5 feb 2014 17:38:21

Gracias Eric, no he tenido tiempo para dedicarle de nuevo, pero lo haré en cuanto tenga un momento.

SixfootJames SixfootJames
5 feb 2014 21:08:44

Hola Eric. Estoy en un nuevo proyecto y probé esto. Funciona muy bien pero es bastante lento. ¿Hay alguna forma de acelerarlo quizás?

SixfootJames SixfootJames
25 feb 2014 12:24:03

Solo necesitas la definición de reubicación para el primer inicio de sesión al transferir un sitio web. Elimínala una vez que funcione correctamente. :)

Eric Holmes Eric Holmes
25 feb 2014 16:59:06

No entiendo del todo. Lo que quise decir es que todo funciona pero la conexión desde Localhost para cargar páginas es bastante lenta. ¿Hay alguna manera de acelerar esto? He probado tanto la URL como la dirección IP de la base de datos pero ambas opciones han sido lentas.

SixfootJames SixfootJames
26 feb 2014 16:21:03

Sí, elimina define('WP_RELOCATE', true); de tu archivo wp-config.php.

Eric Holmes Eric Holmes
26 feb 2014 20:06:11

Agrego una nota al pie aquí: cuando usé por primera vez una base de datos remota antes de utilizar WP_SITEURL y WP_HOME, no tuve problemas de redirección. Solo cargaba los estilos php remotos pero con algunos archivos que no se podían cargar debido a advertencias CORS. Después de cambiar la configuración, funcionó inmediatamente.

西門 正 Code Guy - JingCodeGuy 西門 正 Code Guy - JingCodeGuy
13 jul 2020 04:27:11
Mostrar los 3 comentarios restantes