Eroare de conexiune la baza de date după copierea unei instanțe WordPress Multisite într-o a doua locație

18 iul. 2011, 15:53:40
Vizualizări: 25.3K
Voturi: 13

Iată configurația mea. Am o instanță Multisite care rulează la http://example.com și vreau să fac dezvoltare și staging. Mutarea unei instanțe Multisite WP existente pe localhost este un coșmar, așa că voi face dezvoltarea pe o locație de staging.

Am configurat http://staging.example.com să indice către directorul /public_html/staging/ al contului de hosting și am copiat toate fișierele WP din rădăcina site-ului în directorul /staging/. De asemenea, am copiat fișierele bazei de date (dump SQL, am importat tabelele într-o nouă bază de date) și am modificat fișierul wp-config.php pentru a indica către noua bază de date.

După executarea SQL pentru modificarea înregistrărilor din baza de date, am modificat și această linie din fișierul wp-config.php:

/** Activarea WordPress MU, nou în 3.0 */
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'example.com' ); // <- Modific această linie
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Modificată în:

define( 'DOMAIN_CURRENT_SITE', 'staging.example.com' ); // <- acum modificată

Când încarc http://staging.example.com, primesc... Error establishing database connection!

Am verificat și răsverificat numele de utilizator și parola, m-am asigurat că utilizatorul are toate privilegiile pe noua bază de date de staging și am lăsat DBHOST ca 'localhost' (deși schimbarea acestuia în staging.example.com nu a ajutat).

De ce ar eșua conexiunea la baza de date? Poate cineva să ajute? (Mulțumesc în avans pentru ajutor.)

NB: http://example.com funcționează bine cu setări foarte similare de conexiune la baza de date, doar cu o bază de date diferită, deci nu este o problemă cu serverul bazei de date fiind oprit.

3
Comentarii

Hmm. Nimeni, nu-i așa? Este într-adevăr o eroare ciudată.

Jason Rhodes Jason Rhodes
19 iul. 2011 00:16:47

Am aceeași eroare când încerc să fac migrarea unei rețele WordPress pe loc - fără schimbare de gazdă

Mikko Ohtamaa Mikko Ohtamaa
22 aug. 2011 10:29:40

Ok. Am urmărit diverse moduri de eșec și am făcut un articol despre ele: http://opensourcehacker.com/2011/08/22/trouble-filled-installation-tutorial-of-wordpress-network-a-k-a-multi-site/

Mikko Ohtamaa Mikko Ohtamaa
22 aug. 2011 16:44:33
Toate răspunsurile la întrebare 4
3
15

Am rezolvat problema și a funcționat :)

În tabelul wp_blogs,

Structura veche era

Domain : localhost/smart_facility_linux
Path : /

Dar am modificat-o pentru a funcționa astfel:

Pentru site-ul principal:

Domain : localhost
Path : /smart_facility_linux/

Pentru sub-site-ul 1 (orice sub-site sub site-ul principal, doar ca exemplu):

Domain : localhost
Path : /smart_facility_linux/subsite1/
17 apr. 2015 13:33:03
Comentarii

Din păcate, nu a funcționat pentru mine. Acesta este un exemplu perfect al prostiei de a folosi căi absolute în baza de date pentru WordPress.

Pegues Pegues
13 dec. 2019 18:54:26

@Pegues a funcționat pentru peste 10 persoane aici :)

Pratik Joshi Pratik Joshi
15 dec. 2019 05:52:20

Mă bucur că a funcționat pentru alții. Acest lucru nu funcționează pentru foarte mulți oameni - și din ceea ce am cercetat, se datorează unei diferențe în valorile bazei de date la trecerea de la subdomeniu la subdirector. Și pentru a reveni la comentariul meu inițial, utilizarea căilor absolute nu este înțeleaptă din partea WordPress. Niciodată nu a fost și este cauza atâtor probleme. Și configurarea unui flux de lucru adecvat cu pipeline CI/CD nu este cu adevărat posibilă la nivel de întreprindere.

Pegues Pegues
16 dec. 2019 19:59:48
0

O idee - când accesez www.example.com/staging/wp-admin sunt redirecționat automat către www.example.com/wp-admin

Este posibil ca redirecționarea de la staging.example.com către example.com/staging să intre în conflict cu instalarea existentă?

ACTUALIZARE: se pare că ar putea fi legat de probleme cu fișierul .htaccess și referințe complicate ale domeniului în baza de date

Din WP Codex:

Mutarea WordPress Multisite

Mutarea unei instalații Multisite este mult mai complexă, deoarece baza de date conține multiple referințe la numele serverului precum și la locațiile folderelor.

Cea mai bună metodă pentru a muta o instalație Multisite este să mutați fișierele, să editați .htaccess și wp-config.php (dacă numele folderului care conține Multisite s-a schimbat), iar apoi să editați manual baza de date. Căutați toate instanțele numelui domeniului și modificați-le după necesitate. Acest pas nu poate fi încă ușor automatizat. Dacă mutați o instalație Multisite dintr-un folder în altul, va trebui să vă asigurați că editați intrările din wp_blogs pentru a schimba corect numele folderului.

20 iul. 2011 00:18:42
4

Am găsit doar o singură metodă simplă pentru transferul de domenii sau hosting care funcționează perfect, atât pentru instalații WordPress simple, cât și pentru cele multi-site.

  1. Exportă baza de date într-un fișier .sql. (Eu folosesc PHPMyAdmin pentru asta)
  2. Creează o copie nouă a fișierului pentru editare, cu un nume ușor diferit.
  3. Deschide fișierul în editorul de text preferat (de exemplu, gedit)
  4. Efectuează o înlocuire a domeniului ȘI a căii absolute (/home/username/public_html/ către /home/username/public_html/) de la mediul de producție la cel de dezvoltare.
  5. Salvează fișierul.
  6. Copiază întreaga instalație în directorul de dezvoltare.
  7. Adaugă următoarea linie în fișierul wp-config.php:

    define('RELOCATE',true);

  8. Conectează-te și salvează setările de permalinkuri.

  9. Șterge regula define pe care ai adăugat-o în wp-config.php.

22 iul. 2011 13:49:34
Comentarii

Aceasta funcționează bine, cu excepția cazului în care înlocuiți un șir de caractere în date serializate, cum ar fi un widget sau o opțiune de temă, cu un șir de caractere de lungime diferită. Datele serializate arată astfel - s:76:"hxxp://www-dev.example.com/wp-content/uploads/company_logo_swoosh.gif' 's:70:"hxxp://www.example.com/wp-content/uploads/company_logo_swoosh.gif' (notă: lungimile 76 și 70 nu mai corespund cu șirurile prezentate - am editat detaliile site-ului meu și nu am ținut evidența noului număr de caractere.) Singura soluție pentru aceasta este să actualizați manual numărul de caractere - sau să păstrați aceeași lungime pentru domeniul de staging.

marfarma marfarma
25 iul. 2011 21:12:59

De asemenea, am înlocuit tt cu xx astfel încât URL-urile să nu fie obscure - nu puteți vedea diferența dintre ele.

marfarma marfarma
25 iul. 2011 21:15:27

Acest lucru este bine de știut. Aceasta înseamnă că ar trebui să ne luăm timp să parcurgem toate intrările pe măsură ce sunt găsite și înlocuite, în loc să înlocuim totul deodată.

Jeff Sebring Jeff Sebring
26 iul. 2011 00:50:30

Poți folosi acest script pentru a căuta/înlocui date serializate: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

Costa Costa
14 oct. 2014 03:56:24
0

Asta a funcționat pentru mine.

  1. arhivează toate fișierele într-un zip
  2. descarcă baza de date
  3. încară fișierele pe noul server
  4. Editează baza de date în orice editor (eu am folosit Notepad++)
  5. Înlocuiește domain.com cu newdomain.com
  6. încară baza de date pe noul server
  7. Conectează-te și bucură-te!

Notă: Nu uita să schimbi numele domeniului în fișierul config.php. De asemenea, copiază fișierul .htaccess pe noul server. Acest ghid este pentru WordPress Multisite cu un număr minim de plugin-uri. Încearcă întotdeauna să faci o copie de rezervă mai întâi.

28 iul. 2021 23:58:32