Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Internet a sítě => Téma založeno: Milhouse 10 Listopadu 2010, 09:21:05

Název: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 09:21:05
Ahoj.

Potřeboval bych trochu poradit.

Přesunul jsem stránky z jedné domény na jinou, což už mám hotové.
Ale klikací odkazy (obrázků a manuálních odkazů) stále ukazují na původní web. Lze to nějak hromadně změnit? Zkoušel jsem to v Phpmyadmin, ale po vyhledání výrazů to neumím jednoduše změnit.

Je to přesunuto z ic.cz, ale to je teď absolutně kaput, lze vidět stejné chování také na elektricky.g6.cz (testovací).

Za jakoukoli radu budu velice vděčný! :)
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Tomáš Jančík 10 Listopadu 2010, 09:29:37
podobne systemy vetsinou maji jeden konfiguracni soubor, kde je potrebne nastaveni ulozeno
tam by melo stacit prepsat hodnoty na aktualni a melo by behat...
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 09:32:15
Ano, hodnoty "siteurl" a "home" jsem změnil. Zůstávají "už jen" ty odkazy. :)

Zkouším postupovat dle http://webtrh.cz/48990-hromadna-zmena-databazi?p=321745

Ale export->změna v texťáku->import se mi zdá poněkud nesystémová. :)
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 10 Listopadu 2010, 09:45:33
Obávám se, že to jinak, než růčo nepůjde. Ona už je chyba v tom, že zřejmě máš (předpokládám, že v db) ty odkazy uloženy včetně domény. V tom případě asi opravdu nezbývá, než si vytvořit sql dump, v něm provést hromadnou změnu a zase ho do db naimportovat.

P.S.
A nejhorší (kromě trpaslíků) jsou weby, kde jsou absolutní odkazy (interní, samo) pěkně rovnou v php skriptech. To je pak úplně na pos...
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 09:51:47
Jo, zkoušel jsem odkakovat relativně, ale nevedlo se mi. Takže nouzově to mám natvrdo.

Teď to asi udělám tím importem, ale rád bych to uměl i přímo v DB...
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 10 Listopadu 2010, 10:17:37
Ale jistě, v db to samozřejmě jde, ale dá to víc práce. Musel bys zřejmě hezky dělat update s náhradou obsahu každého jednoho sloupce, kde by ty odkazy mohly být. Záleží tedy na tom, v kolika tabulkách a v kolika sloupcích se ty odkazy mohou vyskytovat.
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 10:26:25
V mnoha. :) Už jsem to nahradil v externím editoru. Ale naimportovat DB bez smazání původní mi zatím nejde. Ale už googlim. :)
Citace
#1062 - Duplicate entry '3' for key 1
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 10 Listopadu 2010, 10:28:51
Aha...
No, tos' ten sql dump měl udělat včetně struktur a včetně smazání tabulek...
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Tomáš Jančík 10 Listopadu 2010, 10:33:34
zalezi co pouzivas na spravu db, ale vetsinou jde v dump definovat drop+create na tabulky, coz by mohlo resit tvuj problem
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 10:59:50
Používám na ic.cz a na endora.cz standardní Phpmyadmin.

Exportoval jsem zřejmě jen tabulku, teď už mám i strukturu. Dělal jsem to trochu špatně. Můžu smazat databázi ve webovém správci, ale mus to snad jít i méně destruktivně, ne?

Drop a create tabulky mi zatím nic neříkají. To ale asi nebude zatím třeba.

Jen mě zaráží, že nelze přepsat plnou tabulku importem jiné tabulky...  ::)

Citace
#1007 - Can't create database '1890_elektricky'; database exists
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 10 Listopadu 2010, 11:08:28
Aha. Tak tedy polopatě...
Předpokládám, že se jedná o databázi MySQL.
V exportu v phpMyAdminovi je mimo jiné vhodné zaškrtnout: Struktura, Přidat DROP TABLE / DROP VIEW, Přidat IF NOT EXISTS.
V dumpu pak bude u každé tabulky:
Kód: [Vybrat]
DROP TABLE IF EXISTS `tabulka`;
CREATE TABLE IF NOT EXISTS  `tabulka`...
a teprve pak budou data.
Při importu to vždycky nejpve zruší tabulku, vytvoří tabulku a naplní ji to daty.
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 11:19:33
Ano, jedná se o mysql a Worpressu. Výsledek snažení lze vidět v odkazu mého podpisu. :) Takže takto:


[attachment deleted by admin]
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 11:26:34
Takže stále "#1007 - Can't create database '1890_elektricky'; database exists" . Zkusil jsem i s  "Přidat DROP DATABASE". Stejné.
Četl jsem, že by měl být nějaký unikátní primární klíč...
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 10 Listopadu 2010, 11:39:46
No, na drop/create database zřejmě nemáš práva.
Takže pokud máš v dumpu drop database a create database, tak to vyhoď. Důležité je drop table a create table, tedy rušení a vytváření tabulek.
Pokud by nešlo ani to, tak by místo drop/create table mělo pomoci truncate table..., čímž odstraníš obsah tabulky a můžeš ho pak opět vložit.
Dokumentace k MySQL by měla být na http://dev.mysql.com/doc/.
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 12:15:21
No jo, jsem to už domrvil úplně. :) Jedu od znova, rady se mi však budou hodit. ;)
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 10 Listopadu 2010, 13:15:57
A ještě bych ti doporučil nějak si zařídit, aby se ti všechny odkazy, které vedou na původní web ořesměrovávali na nový web - nepřijdeš tak o zpětné odkazy. Možností je víc - buď přes htaccess (pokud to hosting dovoluje) až po triviální aplikaci v php, která se o to postará sama, např.:

Kód: [Vybrat]
$newhost = "http://www.novadomena.cz";
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $newhost . $_SERVER['REQUEST_URI']);
header("Connection: close");
exit;

Do proměnné $newhost napiš url adresu složky, kde máš svůj index.php; předpokládám, že budeš mít buď subdoménu nebo nějaký kořenový adresář, takže to bude buď ve stylu  http://milhouse.hosting.cz nebo http://www.hosting.cz/milhouse.

Pokud má někdo někde uložený odkaz na tvoje původní stránky, přesměruje ho to automaticky na nové.

P.S.
Pokud bys na to šel tím php, zjisti si nejdříve, jak ti nový hosting vrací $_SERVER['REQUEST_URI']. Mohl by již obsahovat tvůj kořenový adresář, takže bys ho pak v $newhost už samozřejmě nepsal. Netuším, s těmito free hostingy nemám zkušenosti. Ale ty si určitě poradíš :-)
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Iljusin 10 Listopadu 2010, 13:49:11
Ano, hodnoty "siteurl" a "home" jsem změnil. Zůstávají "už jen" ty odkazy. :)

Zkouším postupovat dle http://webtrh.cz/48990-hromadna-zmena-databazi?p=321745

Ale export->změna v texťáku->import se mi zdá poněkud nesystémová. :)
Vždyť to máš v tom článku na který odkazuješ napsané:
Kód: [Vybrat]
UPDATE tabulka SET sloupec = REPLACE(sloupec, 'starý kód', 'nový kód');Tzn. musíš vědět jméno tabulky a sloupce ve kterém jsou texty se špatnými odkazy uložené. A pak jen phpmyadminu spustíš sql dotaz. Něco jako:
Kód: [Vybrat]
UPDATE clanky SET textclanku = REPLACE(textclanku, 'stara.domena.cz', 'nova.domena.cz');
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 14:19:22
Samozřejmě přesměrovávám přes .htaccess. Doménu 2.řádu mám  a na tu to stěhuju. Prozatím na placeném ic.cz. Ale už pomalu zdrhám jinam. :) Do php se mi nechce, nejsem programátor, ale pokud to nepůjde v .htaccess, tak se na to asi mrknu. Díky za rady. :)

Iljusin: No, problém je, že jsem tomu nerozuměl. Ale ještě na to mrknu...

Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Iljusin 10 Listopadu 2010, 14:47:51
Koukám, že to je wordpres. Nemám jej nainstalovaný, takže jen tipuju, že by to mohlo být konkrétně takto:
Kód: [Vybrat]
UPDATE wp_posts SET post_content = REPLACE(post_content, '.ic.cz/', '.g6.cz/');V phpmyadminu si v levém menu vybereš svou databázi a pak v hlavním okně v záložce SQL vložíš dotaz a odešleš. Finito
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 18:58:15
Jo, super! Tak tenhle příklad jsem už pochopil a je i funkční. Výsledek je a jejich variace:

Citace
UPDATE wp_posts SET guid = REPLACE(guid, 'elektricky.g6.cz/', 'elektricky.cz/')

Citace
UPDATE wp_posts SET post_content = REPLACE(post_content, 'elektricky.g6.cz/', 'elektricky.cz/')

Export ( s parametrem "Přidat DROP TABLE / DROP VIEW") a import zřejmě může být fakt jen po kliknutí na jméno databáze.

Jen takové otázky pro doplnění:
1) je nutné se starat o "information_schema", které je uvedeno při exportu vlevo nahoře, když nekliknu na databázi? Viz předchozí obrázek.
2) Dají se vybrat všechny sloupce, nejen GUI atd? Pak lze udělat změnu najednou.
3) Asi si ze mě ic.cz FTP server dělá prču, přejmenuju soubor a za chvíli ho již stejným uživatelem nemůžu změnit, protože má jiného vlastníka. No, je toto normálnéééé? :) No teď už tam nejde vůbec nic na FTP udělat!  :o :'( Grrrrrrrrr...........
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Iljusin 10 Listopadu 2010, 19:21:03
Citace
1) je nutné se starat o "information_schema", které je uvedeno při exportu vlevo nahoře, když nekliknu na databázi? Viz předchozí obrázek.
Ne, informační schéma tě nezajímá, k tomu bys teoreticky ani neměl mít přístup.

Citace
2) Dají se vybrat všechny sloupce, nejen GUI atd? Pak lze udělat změnu najednou.
Nechápu čemu říkáš GUI.
Když chceš něco vyexportovat v phpmyadminu, tak to máš rozdělené tak, že buď exportuješ jen strukturu nebo jen data nebo oboje najednou (defaultně). Předpoládejme, že chceš obojí, takže necháš zaškrtnuté všechno tak jak je. Máš vybrané všechny tabulky a zaškrtnuté nějaké ty checkboxy. Kromě toho také můžeš zafajfkovat volby (jestli tam jsou) "Uzavřít příkazy v transakci" a "Vypnout kontrolu cizích klíčů". Můžeš si také zaškrtnout, že to chceš do souboru. Ten soubor pak na svém novém webu zase naimportuješ přes záložku SQL (předtím samozřejmě opět vybereš v levém menu databázi)
Citace
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 10 Listopadu 2010, 19:31:42
Pardon, mělo to být GUID, tak jako v příkazu...
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 11 Listopadu 2010, 09:23:21
Citace
2) Dají se vybrat všechny sloupce, nejen GUI atd? Pak lze udělat změnu najednou.
Co sloupec, to set `sloupec` = replace..., co tabulka to update `tabulka` set... Takže při opravě více sloupců ve více tabulkách je to celkem fuška.
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 11 Listopadu 2010, 13:33:19
Hmmm, takže pokud mám název DB elektrickycz, měl by dotaz vypadat takto?

Citace
UPDATE elektrickycz SET guid = REPLACE(guid, 'elektricky.g6.cz/', 'elektricky.cz/')

Použil jsem dle rady původně toto:
Citace
UPDATE wp_posts SET guid = REPLACE(guid, 'elektricky.g6.cz/', 'elektricky.cz/')
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: mka 11 Listopadu 2010, 16:56:42
Hmmm, takže pokud mám název DB elektrickycz, měl by dotaz vypadat takto?

Citace
UPDATE elektrickycz SET guid = REPLACE(guid, 'elektricky.g6.cz/', 'elektricky.cz/')

Použil jsem dle rady původně toto:
Citace
UPDATE wp_posts SET guid = REPLACE(guid, 'elektricky.g6.cz/', 'elektricky.cz/')


Ajajaj; žes to raději neudělal v tom dumpu :-)
Syntaxe je update jméno_tabulky set jméno sloupce = ... Viz. http://dev.mysql.com/doc/refman/5.1/en/update.html.
Musíš to udělat pro všechny tabulky, ve kterých by mohlo být někde to staré url a v rámci každé takové tabulky pro všechny sloupce, kterých by se to taktéž mohlo týkat.
Hele, pokud se nechceš učit SQL, tak bych ti opravdu doporučil ten texťák.
Držím palce :-)
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Iljusin 11 Listopadu 2010, 17:23:23
S názvem databáze v dotazech vůbec nepracuješ. Jakmile v levém sloupci klikneš na nějakou databázi, tak už se dotazy vztahují k ní. Víc už se o její jméno nestaráš.

Představ si databázi elektrickycz jako spreadsheet/sešit (elektricky.xls nebo lépěji elektricky.ods). 

1) Co list v sešitu, to jedna tabulka v db. Každý list/tabulka má své jméno (wp_post např.)
2) Co sloupec na listu, to sloupec v db. Každý sloupec má své jméno.

Ten můj dotaz říká, prohledej v listu (tabulce) wp_post, v sloupci post_content všechny texty a tam nahraď něco za něco. Takže abys opravil celou db musíš zjistit ve které tabulce a ve kterém konkrétním sloupci potřebuješ texty opravit.

Kdybys potřeboval opravit dva sloupce v jedné tabulce, stačí ti jeden dotaz:
Kód: [Vybrat]
UPDATE nazevtabulky SET sloupec1 = REPLACE(sloupec1, 'cozmenit', 'zacozmenit'), sloupec2 = REPLACE(sloupec2, 'cozmenit', 'zacozmenit')
Když opravuješ data ve sloupcích ve více tabulkách, musíš mít jednotlivé dotazy.
Kód: [Vybrat]
UPDATE nazevtabulky1 SET sloupec1 = REPLACE(sloupec1, 'cozmenit', 'zacozmenit')
Kód: [Vybrat]
UPDATE nazevtabulky2 SET sloupec1 = REPLACE(sloupec1, 'cozmenit', 'zacozmenit')A to je to co psal mka. Někdy zkrátka může bejt pracný najít všechny sloupce ve všech tabulkách a nad všemi pak spustit SQL dotaz na změnu. Proto se to dělá i tak jak už bylo zmíněno. Vezmeš export z původní databáze, otevřeš ho v textovém editoru, tam zadáš najdi/nahraď a výsledek použiješ jako import.
Název: Re: Přesunutí na jiný hosting - problém s odkazy
Přispěvatel: Milhouse 11 Listopadu 2010, 20:17:26
Neboj, v texťáku jsem to udělal, jen mě to zajímá. :)
Šak dneska jsem se zbavil ic.cz. Předal správu DNS na kvapem.cz, hosting prozatím na free endora.cz(později zaplatím). Zatím spokojenost, administrace je nebe a dudy, oproti ic.cz! A jak fičí FTP. :)

www.elektricky.cz :)