Conectar a base de datos remota usando instalación Localhost
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

¿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 tú 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.

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: aceptaste esta respuesta hace mucho tiempo, pero ahora la has desaceptado y no has aceptado una alternativa. ¿Por qué?

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

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?

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.

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.

Creo que s_ha_dum va por buen camino, pero creo que lo entendió al revés.
Lo que quieres es:
- desarrollar/diseñar localmente
- 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.

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!

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.

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

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

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. :)

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.

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

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.
