Cum să te conectezi la o bază de date de la distanță folosind o instalare Localhost
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!

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.

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

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

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

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.

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?

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ță.

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.

Cred că s_ha_dum este pe drumul cel bun, dar cred că a înțeles-o invers.
Tu vrei să:
- dezvolți/desenezi local
- 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.

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!

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ă.

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.

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?

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

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.

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

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.
