Cum să te conectezi la o bază de date de la distanță folosind o instalare Localhost

11 oct. 2013, 17:49:06
Vizualizări: 18.4K
Voturi: 3

Voi proiecta și dezvolta un site web pentru un client, dar vreau să permit clientului să adauge conținut în timp ce lucrez la design și dezvoltare, astfel încât site-ul să fie aproape gata până la finalizarea proiectului.

În prezent, folosesc XAMPP pe portul 81, așa că URL-ul proiectului meu arată astfel:

http://localhost:81/projectname

Fișierul meu wp-config are toate setările necesare pentru conectarea la baza de date externă, dar când accesez URL-ul:

http://localhost:81/projectname 

acesta mă redirecționează constant către:

http://localhost/projectname.

Am șters toate fișierele htaccess crezând că problema este acolo, dar nu a funcționat. Furnizorul meu de internet a sugerat să deschid portul 3306, ceea ce am făcut, dar nici asta nu a rezolvat problema.

Nu știu dacă are legătură cu portul 81 în XAMPP, poate?

EDIT: Setările generale redirecționează către versiunea online a site-ului, așa că:

Adresa site-ului = http://example.com

Adresa WordPress = http://example.com

Mulțumesc mult!

6
Comentarii

Care sunt setările tale de URL în Setări->General?

s_ha_dum s_ha_dum
11 oct. 2013 17:59:55

Am făcut o modificare la întrebarea de mai sus shadum, mulțumesc

SixfootJames SixfootJames
11 oct. 2013 18:37:56

Scuze? Setările tale de configurare se leagă la un site extern? Asta nu va funcționa niciodată corect. Sunt foarte confuz în legătură cu ce faci acum.

s_ha_dum s_ha_dum
11 oct. 2013 18:41:11

Nu există nicio modalitate de a prelua conținutul pe un site localhost doar pentru a-l transfera pe site, astfel încât să pot lucra la dezvoltarea site-ului în timp ce clientul adaugă conținut în baza de date live? Nu am făcut asta înainte în WordPress, dar am reușit să facem acest lucru cu DNN acum mulți ani.

SixfootJames SixfootJames
11 oct. 2013 18:50:55

Încearcă să verifici și fișierul de configurare Apache din instalarea ta de Xampp. Poți verifica pe acest link cum să configurezi mai multe site-uri folosind Xampp, ceea ce te poate ajuta să testezi dacă problema este de la 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

Mulțumesc, Camilo. Am încercat acest lucru crezând că adăugarea portului 3306 ar putea rezolva problema, dar nu a funcționat. Nu am o problemă cu proiecte multiple, ci mai degrabă o problemă cu rularea unui proiect local care se conectează la o bază de date la distanță.

SixfootJames SixfootJames
11 oct. 2013 18:45:21
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 2
12

Nu există nicio modalitate de a prelua conținutul pe un site localhost doar pentru a obține conținutul pe site, astfel încât să pot lucra la dezvoltarea site-ului în timp ce clientul adaugă conținut în baza de date live?

Dacă serverul de la distanță suportă acest lucru, te poți conecta la baza de date de la distanță. Trebuie doar să configurezi corect constantele de conexiune:

// ** Setări MySQL - Poți obține aceste informații de la furnizorul de hosting ** //
/** Numele bazei de date pentru WordPress */
define( 'DB_NAME', 'nume_baza_date_here' );

/** Numele utilizatorului MySQL */
define( 'DB_USER', 'utilizator_here' );

/** Parola bazei de date MySQL */
define( 'DB_PASSWORD', 'parola_here' );

/** Hostname MySQL */
define( 'DB_HOST', 'localhost' );

Aproape sigur va trebui să configurezi și acestea pe instalarea locală:

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

Pot aproape garanta că vei avea probleme, fără să mai menționez că modificările pe care le faci tu vor fi pe serverul live.

Există și alte soluții potențiale, cum ar fi mirroring-ul bazei de date, dar acestea ar fi off-topic aici și nu am făcut asta niciodată.

Sfatul meu este să copiezi pur și simplu baza de date live pe serverul tău local la începutul proiectului și să nu încerci să sincronizezi bazele de date sau să conectezi site-ul de dezvoltare cu cel live. Îți cauți probleme. WordPress nu are o separare clară între conținut și configurare în baza de date.

11 oct. 2013 19:00:38
Comentarii

Mulțumesc Shadum, s-ar putea să merg pe varianta asta de a lua constant o versiune nouă a bazei de date live...și nu-ți face griji, baza de date live este ascunsă în spatele unui URL până când site-ul real devine public :)

SixfootJames SixfootJames
11 oct. 2013 20:36:31

Nu, n-a mers. Oricum, mulțumesc pentru efort Shadum

SixfootJames SixfootJames
11 oct. 2013 20:39:51

Sfatul meu este în ultimul paragraf, te rog să iei notă.

s_ha_dum s_ha_dum
11 oct. 2013 20:52:54

Mulțumesc Shadum... voi urma această cale conform ultimului tău paragraf

SixfootJames SixfootJames
7 nov. 2013 08:02:56

@SixfootJames : ai acceptat acest răspuns cu mult timp în urmă, dar acum l-ai respins și nu ai acceptat nicio alternativă. De ce?

s_ha_dum s_ha_dum
20 ian. 2014 16:25:05

Bună Shadum, am trecut prin toate aceste opțiuni și am încercat din nou dar nu a funcționat, așa că sper că altcineva ar putea avea o soluție.

SixfootJames SixfootJames
21 ian. 2014 21:21:54

@SixfootJames : probabil va trebui să oferi mai multe detalii.

s_ha_dum s_ha_dum
21 ian. 2014 21:24:53

Noi obișnuiam să facem asta cu DNN la locul anterior unde am lucrat. Echipa putea lucra la diferite părți ale unui proiect de website în timp ce proprietarul site-ului începea să scrie conținutul direct în CMS. Astfel, fiecare persoană avea o copie a site-ului prin SVN, dar toți se conectau la o singură bază de date, ceea ce accelera procesul de dezvoltare. Așadar, aș dori să realizez același lucru cu WordPress. Singura alternativă ar fi să găzduiesc propriul meu server intern și apoi, folosind NO-IP, să ofer clientului acces la site-ul care este conectat prin rețeaua mea?

SixfootJames SixfootJames
22 ian. 2014 08:26:56

De asemenea, m-am conectat la baze de date la distanță, dar a face acest lucru depinde de configurația serverului, ceea ce ar putea fi problema ta. Nu toate serverele permit conexiuni de la distanță.

s_ha_dum s_ha_dum
22 ian. 2014 16:22:29

Shadum, chiar am sunat la ISP-ul meu acum câteva zile și ei m-au asigurat că este posibil. Dacă ți-aș oferi detaliile bazei de date de la distanță, crezi că ai putea să-mi arăți cum să fac acea conexiune într-un fișier de configurare, te rog? Am încercat toate setările pe care mi le-ai dat mai sus și când navighez din fișierul localhost de exemplu, apoi dau click pe altă pagină, sunt redirecționat către pagina site-ului live, în loc să rămân pe paginile localhost.

SixfootJames SixfootJames
22 ian. 2014 21:44:26

ISP-ul tău? Vrei să spui gazda ta web?

s_ha_dum s_ha_dum
22 ian. 2014 21:46:05

Da, scuze, noi îi numim Furnizor de Servicii Internet aici :)

SixfootJames SixfootJames
22 ian. 2014 22:05:23
Arată celelalte 7 comentarii
8

Cred că s_ha_dum este pe drumul cel bun, dar cred că a înțeles-o invers.

Tu vrei să:

  1. dezvolți/desenezi local
  2. te conectezi la baza de date DE LA DISTANȚĂ și să lucrezi cu conținutul acesteia?

Ai nevoie de o instalare WordPress la distanță (staging), unde clientul poate crea/introduce conținutul său.

Ai nevoie ca site-ul tău WordPress local (localhost) să pointeze către baza de date de la distanță, pentru a prelua conținutul pe care îl folosește.

Deci, ai avea http://example.com/wordpress configurat pentru client să editeze - chiar și cu o instalare simplă WP. Acest site ar fi conectat la propria bază de date.

Site-ul tău localhost ar avea datele de conectare la baza de date a site-ului DE LA DISTANȚĂ, cu DB_HOST setat la http://example.com, sau oricare altă cale de acces mySQL dacă este accesat altfel prin furnizorul tău de hosting.

Pe site-ul tău local, păstrează WP_SITEURL și WP_HOME setate la localhost. Altfel, vei obține bucle de redirecționare.

29 ian. 2014 16:59:46
Comentarii

Mulțumesc Eric, exact asta se întâmpla și ceea ce sugerezi tu este ceea ce aș vrea să obțin, dar tot întâmpin problema redirecționării.

Voi combina ambele soluții propuse de tine și revin cu feedback :) Mulțumesc din nou!

SixfootJames SixfootJames
29 ian. 2014 18:00:55

Scuze, este WP_SITEURL, nu WP_SITE_URL. Dacă nu funcționează, poate fi necesar să adaugi define('WP_RELOCATE', true); în fișierul tău wp-config.php, să te autentifici, apoi să elimini linia respectivă.

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

Mulțumesc Eric, nu am avut încă timp să mă ocup din nou de asta, dar o voi face de îndată ce am un moment liber.

SixfootJames SixfootJames
5 feb. 2014 21:08:44

Salut Eric. Sunt acum într-un proiect nou și am testat asta. Funcționează super bine, dar este foarte lent. Există vreo modalitate de a-l accelera, poate?

SixfootJames SixfootJames
25 feb. 2014 12:24:03

Ai nevoie doar de definiția relocate pentru prima autentificare când transferi un website. Elimină-o odată ce funcționează corect. :)

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

Nu prea înțeleg. Ce voiam să spun este că totul funcționează, dar conexiunea de la Localhost pentru încărcarea paginilor este destul de lentă. Există vreo metodă de a accelera asta? Am încercat atât URL-ul cât și adresa IP către baza de date, dar ambele opțiuni au fost lente.

SixfootJames SixfootJames
26 feb. 2014 16:21:03

Da, elimină define('WP_RELOCATE', true); din fișierul tău wp-config.php.

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

Adaugă o notă aici: când am folosit prima oară baza de date la distanță înainte de a utiliza WP_SITEURL și WP_HOME, nu am avut nicio problemă de redirecționare. Doar încărca setul de stiluri PHP de la distanță, dar unele fișiere nu puteau fi încărcate din cauza avertismentului CORS. După schimbarea configurației, a funcționat imediat.

西門 正 Code Guy - JingCodeGuy 西門 正 Code Guy - JingCodeGuy
13 iul. 2020 04:27:11
Arată celelalte 3 comentarii