Cum să migrezi o instalație WordPress HTTPS pe localhost?
Am migrat un site de pe un server live pe localhost folosind pluginul WP Migrate DB. Am mai făcut acest proces de câteva ori și totul a funcționat bine. De data aceasta însă am migrat un site de pe o conexiune https și nu pot accesa site-ul pe localhost. primesc următoarea eroare:
Acest site nu poate furniza o conexiune securizată
localhost a trimis un răspuns invalid.
ERR_SSL_PROTOCOL_ERROR
Presupun că în backend-ul WordPress trebuie să schimb ceva fie în baza de date, fie în Panou de control > Setări > fila General.
În acest moment nu pot accesa site-ul, așa că presupun că va trebui să fac asta prin baza de date?
Orice ajutor sau asistență ar fi minunată. Nu știu exact de unde să încep.
Paul.

Aceasta se întâmplă deoarece site_url
și homeurl
din instalarea originală sunt setate la HTTPS în baza de date, așa că nu poți accesa site-ul pe localhost decât dacă:
- Modifici aceste valori în versiunea non-ssl
- Instalezi un certificat SSL pe localhost
Voi explica doar primul caz, deoarece instalarea unui certificat depășește scopul acestei comunități.
Pentru a face acest lucru, ai 2 opțiuni.
Editează direct fișierul SQL descărcat
Deschide exportul MySQL pe care tocmai l-ai descărcat de pe server. Caută wp_options
și vei găsi o linie în baza de date care arată astfel:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
Cele 2 linii de sub aceasta sunt siteurl
și homeurl
. Schimbă ambele valori în http://localhost/
. Atenție la ghilimele și virgule! Deci, primele 3 linii vor arăta astfel:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, 'siteurl', 'http://localhost/', 'yes'),
(2, 'home', 'http://localhost', 'yes'),
Apoi încarcă fișierul SQL. Gata.
Actualizează valorile prin PHPMyAdmin
Dacă ai PHPMyAdmin instalat pe localhost sau ai suficiente cunoștințe pentru a actualiza direct tabelele prin linia de comandă, continuă cu această metodă.
Conectează-te la baza de date prin PHPMyAdmin. Din meniul de navigare din stânga, alege baza de date corespunzătoare. Acum, selectează tabela wp_options
din secțiunea din dreapta.
Din nou, primele două valori vor fi siteurl
și homeurl
, pe care le poți actualiza simplu la http://localhost/
fără să-ți faci griji că greșești prin editarea fișierului SQL original.

Mulțumesc Jack, am făcut cea de-a doua variantă din cele două descrieri ale tale și acum totul funcționează perfect. Apreciez ajutorul tău.

O căutare și înlocuire cu scriptul SearchReplaceDB2 de la interconnetit de la https la http ar fi, de asemenea, o opțiune bună. Acest lucru poate fi realizat și cu wp-cli.

În afară de cazul descris aici, ar trebui să redenumești wp-content/plugins/really-simple-ssl pentru a-l dezactiva.

În tabelul wp_options, veți găsi două rânduri care conțin URL-ul site-ului. Schimbați aceste două valori.
Totuși, este posibil să fie necesar să ajustați linkurile către media și alte pagini interne. Din acest motiv, prefer să folosesc excelentul plugin WP Clone (https://wordpress.org/plugins/wp-clone-by-wp-academy/) pentru a face toată treaba în locul meu. Pur și simplu instalați pluginul pe sistemul sursă, faceți o copie de rezervă, apoi instalați pluginul pe sistemul țintă și restaurați.
Un plugin minunat, care elimină toată munca implicată în mutarea (clonarea) unui site. Uneori trebuie să fac restaurarea de două ori (prima oară eșuează dintr-un motiv misterios), dar reîncercarea funcționează perfect. Toate datele, utilizatorii, conținutul etc. sunt transferate foarte bine.

În cazul meu, situația a fost diferită de celelalte răspunsuri. Baza mea de date era configurată corect la http://localhost
, dar aveam un plugin instalat pentru gestionarea SSL (Really Simple SSL).
Așadar, am redenumit folderul /wp-content/plugins/really-simple-ssl
în altceva și a funcționat.
Pentru a accesa /wp-admin
fără SSL, trebuie să modifici fișierul /wp-config.php
și să setezi FORCE_SSL_ADMIN
la false
.

Am întâmpinat această problemă. Ce am făcut este următorul:
- am dezinstalat pluginul wp-security
- am eliminat definiția force SSL din wp-config
- am șters cache-ul browserului
- am modificat în tabelul wp-option valorile site_url și home URL
- am actualizat .htaccess cu fișierul .htaccess implicit din WordPress
Nimic nu a funcționat.
În final, soluția care a funcționat pentru mine a fost:
Ștergerea permanentă a fișierului .htaccess a rezolvat problema.
Sper că acest lucru va ajuta pe cineva să scape de această problemă.

Mulțumesc mult!!!! răspunsul tău trebuie să ajungă direct în top! Mi-ai salvat pielea, omule!!!! Mulțumesc!!!!!!

@armah - de fapt, anumite reguli din fișier au cauzat problema. Comentarea lor a rezolvat problema. Mulțumesc pentru ajutor!

Puteți face acest lucru rapid cu aceste 2 constante oferite de WordPress.
Le adăugați la începutul fișierului wp-config.php
, după deschiderea tag-urilor <?php
.
define ('WP_HOME', 'http://localhost/wordpress-folder-name' );
define ('WP_SITEURL', 'http://localhost/wordpress-folder-name' );
