Så flyttar du en sajt till och från webbhotell

Events happening in the community are now at Drupal community events on www.drupal.org.
itangalo's picture

Här är en kort guide till hur man flyttar en webbplats mellan ett webbhotell och ens egna dator.
Guiden kom till efter en fråga på forumet. Ställ gärna fler frågor!

Du behöver

  • En dator som klarar Apache, PHP och mySQL -- det vill säga fungerar som en server. Lullabot har trevliga screencasts om hur du fixar det -- sök på WAMP, MAMP eller LAMP, beroende på om du använder Windows, Mac eller Linux. Eller kolla in Acquias DAMP-installer (se "stack installer for...").
  • Onlinegränssnittet phpMyAdmin för att hantera databasen. (Det är inte ett egentligt krav, men används i denna guide.)
  • En ftp-klient, så som FileZilla. Det är en sån du använder för att flytta filer till och från ditt webbhotell (om du inte har någon annan lösning).
  • Lite tålamod.

1: Stäng webbplatsen och ta hem filer

  1. Sätt din webbplats i offline-läge, under administration > inställningar. Du vill inte att folk skriver kommentarer medan din webbplats är nere.
  2. FTP:a hem alla filer från din Drupalinstallation till din hårddisk, och lägg dem i lämplig katalog.

2: Ta hem databasen

  1. Besök phpMyAdmin och logga in. På webbhotell hittar du ofta phpMyAdmin under phpmyadmin.exempel.se. Du kommer att behöva inloggningsuppgifter, som du kanske får beställa igen från hotellet eftersom du glömt bort dem.
  2. Hitta databasen som används (överst i vänsterspalten, förmodligen "localhost") och exportera alla tabeller som tillhör din installation. Det gör du under fliken "export". Se till att spara eporten som en fil (val långt ner), och zippa den gärna också.
  3. Spara ner filen på lämpligt ställe.

3: Sätt upp webbplatsen lokalt

  1. Kopiera hela filstrukturen för webbplatsen till den www-katalog på datorn som Apache satt upp.
  2. Se till att mappen sites/default/files är läs- och skrivbar -- detta kan ändras när du kopierar grejor.
  3. Gå till phpMyAdmin på din dator och importera databasen. Du borde hitta den genom localhost/phpmyadmin. Använd fliken för import, och leta upp filen som du sparade innan.
  4. Redigera filen sites/default/settings.php, och se till att du har rätt namn på databas, rätt lösenord, och så vidare. Din lokala installation lär skilja sig från den du har på hotellet. (Inställningarna finns typ på rad 92.)

4: Lattja lokalt

  1. Logga in på sajten lokalt genom att besöka /user.
  2. Gör så mycket ändringar du vill. (Så som att uppgradera moduler eller till och med core.)
  3. Om saker går helt åt skogen kan du alltid rensa bort filstruktur och databastabeller, och börja om igen.

5: Tanka upp på hotellet igen

  1. Ta den lokala webbplatsen offline igen, om den inte redan var det.
  2. Redigera i settings-filen, så att databas och lösenord stämmer med det du har på hotellet.
  3. Exportera databasen från phpMyAdmin.
  4. Radera filstruktur från filutrymmet på hotellet -- åtminstone i den mån du ändrat filstrukturen lokalt. Tanka upp det som ändrats.
  5. Radera databastabellerna på hotellet och tanka upp den lokala exporten.

6: Sätt igång sajten på hotellet igen

  1. Logga in genom /user-sidan.
  2. Kolla så att saker verkar funka som de ska. Skulle något ha gått åt skogen ska du fortfarande ha kvar gamla filstrukturen och databasen, och kan ladda upp det igen.
  3. Ta sajten online igen.

Lycka till!
//Johan Falk

Comments

Bra guide! Jag har ibland

pontus_nilsson's picture

Bra guide!

Jag har ibland stött på problem när ett projekt och MySQL-databasen växer. Ofta är gränsen på hur stora filer man kan importera satt till några megabyte i php.ini. Om man inte har möjlighet att ändra detta själv så kan man använda bigdump, http://www.ozerov.de/bigdump.zip, som importerar sql-filen i delar till den nya databasen.

När man exporterar databasen så har jag sett att många rekommenderar att man slår av Utökade infogningar i phpmyadmin.

Backup and migrate modulen är också något att ta en titt på när det gäller att flytta hemsidan mellan servrar, http://drupal.org/project/backup_migrate

//Pontus Nilsson, Digitalist

Cache-tabeller

itangalo's picture

Bigdump var ett bra tips -- ska kolla in det vid tillfälle.
När jag själv råkat på för stora sql-filer har jag kommit fram till att det är menu_cache som blir apastor, och att det går utmärkt att radera den tabellen. (Jag misstänker att cachen måste byggas om i så fall, men på mina egna små sajter är det inget problem.)
Om någon försöker med min metod ska man förstås ta backup i så stor omfattning som möjligt. Att radera tabeller är inte så kul om det går dåligt.

Utökade infogningar har jag inte hört talas om förut. Vad gör de?

Backupmodulen hade jag tidigare uteslutit, eftersom den verkade funka dåligt med mitt webbhotell, men jag ska helt klart kolla mer på den.

//Johan Falk

Töm cache

hs@henrikstrindberg.se's picture

Hej!

Administer › Site configuration, längst ner: Clear cached data - det kan krympa MySQL-databasen tillräckligt.

David Mercers Drupal 6 bok står: 1. Disable all caching and clear all caches. 2. Disable clean URLs. 3. Set any logging option sto small and run cron.

allt gott / Henrik

Smart

itangalo's picture

Att använda Drupals egna funktioner för att rensa cachen är förstås en bra grej. Tack för ett smart påpekande!

//Johan Falk

Jag har min

VikingofSwe's picture

Jag har min drupalinstallation i /drupal för närvarande, om jag vill flytta siten till /test eller sedan när jag är klar och vill ha drupal direkt på domänen, hur flyttar man då? jag testade att bara flytta över filerna till en annan mapp, och då fungerar förstasidan men inga länkar.

Svar?

bruse's picture

Min första fråga på detta forum är var svaret på VikingofSwe.s fråga är. Tänkte göra likadant under en testperiod och vill sen flytta "upp" drupal ett steg i katalogerna. Hur göra.

Bara att flytta, i bästa fall

itangalo's picture

Drupal är egentligen bara ett gäng php-funktioner som anropas, och allt de bryr sig om är den inbördes ordningen i Drupal-katalogen. För Drupals skulle spelar det alltså ingen roll om du flyttar hela installationen.

Det som kan bli problem är om du skrivit in absoluta sökvägar på sajten, exempelvis för interna länkningar eller för bilder. Ett bra sätt att slippa såna grejer är att skriva länkar så här:
* <a href="/node/1">länktext</a> istället för <a href="http://exempel.se/node/1">länktext</a>
* <img src="/sites/default/files/image.jpg" /> istället för <img src="http://exempel.se/sites/default/files/image.jpg" />

När Drupal eller Drupalmoduler skapar länkar brukar allt bli enligt det bekvämare formatet, men många som skriver länkar för hand skriver ut den kompletta sökvägen.

Hade jag varit du hade jag testat att byta namn på mappen där Drupal ligger och se om det funkar bra. I så fall borde det bara vara att flytta den ett steg uppåt i hierarkin. Om inte finns anledning att kolla in brutna länkar och se hur de kan snyggas till. I FAQ:n finns ett par trådar som beskriver just detta problemet. Sök på "länkar" så är de två första träffarna förhoppningsvis läsvärda.

Lycka till!
//Johan Falk, NodeOne
**
Vill du lära dig mer om Drupal? Kolla in samlingen av tips och guider!
Har du en fråga om Drupal? Missa inte FAQ-sidan på forumet!
Kolla in min senaste guide: Hundra småsteg för att självlära sig Drupal 6
Sugen på en Drupalkurs? Kolla in NodeOnes utbud av Drupalkurser

Tack Johan. Har jobbat en del

bruse's picture

Tack Johan.

Har jobbat en del med phpBB, och där sparas sökvägen i databasen, tänkte det var samma med Drupal.

Jag har nog allt kolat igenom dina filmer och nu beställt den nya boken. Snart dags att bita i Drupal på riktigt.

funkar inte

Cossan's picture

Fixat

Mapp för bilder

Xeonz's picture

Hej!

Jag är ny med Drupal och bygger nu min första riktiga site. Har byggt upp denna i MAMP i en underkatalog lokalt. Har tidigare arbetat mycket med Joomla men Drupal verkar riktigt kraftfullt!

Jag precis flyttat över sidan till en riktig server men bilderna jag laddat upp refererar till fel mapp (den tidigare underkatalogen i MAMP). I övrigt fungerar sidan bra. Templatebilder som logo etc funkar. Det verkar främst vara bilderna jag laddat upp som strular.

Mapp ska vara: /sites/default/files/slide_01.jpg

men är nu på tidigare uppladdade filer: undermappen_pa_localhost/sites/default/files/slide_01.jpg

Vart ändrar jag så att bilderna refererar rätt? (jag har testat att rensa catch) Jag använder TinyMCE och IMCE med plugin.

Mvh Viktor

Lösningen

Xeonz's picture

Hej igen!

Jag löste problemet med Pathologic! http://drupal.org/node/257026

Tack iaf =)

Lösningen

Xeonz's picture

-

Flytta till lokal server.

webzoom's picture

Tack för alla bra guider för oss som är nybörjare.

Har följt guiden för att flytta siten till min lokala server, men får det inte att lira.
Nu har jag försökt allt men har säkert missat något och behöver hjälp.

Efter installationen visas startsidan men inga länkar fungerar, typ "/user"
Vad har jag missat?

Micke

Då har du förmodligen inte

nenne's picture

Då har du förmodligen inte stöd för clean urls på din server. Pröva:

a2enmod rewrite

Det kommandot aktiverar apache2-modulen "rewrite" på en ubuntu/debian maskin och förmodligen även andra linuxdistar. Ingen aning hur det fungerar på andra plattformar.

Kontrollera även att du har en .htaccess i din drupal root.

Löst. Flytt till lokal server.

webzoom's picture

Tack för ett snabbt svar!

Mycket riktigt, fick inte med mig .htaccess filen av någon anledning.
Efter att jag skapat en ny .htaccess fungerar allt som det skall.

Tack än en gång.

/Micke

Hej!

tummen's picture

Bra guide, tack!

Allt gick allt gick utmärkt till punkt 3:2.

3: Sätt upp webbplatsen lokalt

Se till att mappen sites/default/files är läs- och skrivbar -- detta kan ändras när du kopierar grejor.

Nu börjar problemet

" Drupal-installeraren kräver att du skapar en inställningsfil som en del av installtionsprocessen.

  1. Kopiera filen ./sites/default/default.settings.php till ./sites/default/settings.php.
  2. Ändra filrättigheterna så att filen är skrivbar av webbservern. Om du är osäker på hur man ändrar filrättigheter, se online-handboken.

Mer information om hur man installerar Drupal finns i INSTALL.txt."

Har läst online-handboken:

http://drupal.org/node/202491

Men funkar inte hur jag än gör.

Kör XP pro, service-pack 3
+ wamp

Kör en ny installation av drupal...

Mycket tacksam för all hjälp!

MVH

johan

Kolla rättigheten på default-mappen

hs@henrikstrindberg.se's picture

Två saker att tänka på:
1. Du måste nog ändra rättigheterna både på filen settings.php och mappen den ligger i (default) till 0755.
2. Kontrollera att password och namnet på databasen är korrekta på rad 92 i filen settings.php. På en lokal installation på en Mac med MAMP (och det är nog samma med VAMP) så är både username och password "root". Men på en live-sajt på ett webbhotell så är det naturligtvis annorlunda. Så har du tankat ner en installation måste du ändra här till nåt i den här stilen:

$db_url = 'mysqli://root:root@localhost/min_databas';

Lycka till
Henrik

Funkar

tummen's picture

Tack!

Tack

uggen's picture

Tack för en bra guide!

Tänk också på att ändra den ”tillfälliga katalogen” till sites/defult/files
Finns i menyn: Inställningar > filsystem

Filrättigheterna kan ändras från FileZilla direkt på servern om det blir problem med rättigheterna (XP….).

Sökvägarna skall även anges relativt precis som Johan Falk påpekade, men skippa rottecknet, alltså a href="node/1" istället för a href="/node/1">.

Kanske kan hjälpa någon?

Med vänlig hälsning
Uggen

Förlåt

uggen's picture

Ta inte bort rottecknet när du anger sökvägar!

När man anger sökväg till nod från meny inställningar (i fältet), fungerar det dock inte för mig...

MVH

Uggen

Flytta databasen med Back up and Migrate

hs@henrikstrindberg.se's picture

Den här modulen Back up and Migrate gör phpMyAdmin överflödig när det gäller att flytta databasen. Den kan också göra automatiska backup av databasen. Superbra helt enkelt!

Ändra settings?

bambi_2's picture

När i hanteringen ändrar man settings-filens inställningar?

Ann-Britt

Internal server error

Defrost-1's picture

Hej hej!

Det här är första gången jag gör en hemsida o så är inte så bra på sånt här än och har därför stött på lite problem.

Jag har gjort min hemsida i acquia drupal 7 och försöker nu få den till mitt webhotell på one.com genom att göra som guiden ovan.

För att sammanfatta gjorde jag såhär:
I filezilla letade jag rätt på min drupal mapp och förde över allt
Ändrade i settings.php
Exporterade min databas från localhost
Importerade den till one.com
Gick till hemsidan, fick meddelandet 500 internal server error
Gjorde som i http://groups.drupal.org/node/7764
Exporterade databasen igen
Tog bort o importerade igen till one.com
Får samma felmeddelande igen...

Vad är det som är fel? Har jag missat nåt?
Tacksam för hjälp =)

404 not found

Defrost-1's picture

okej, jag fick lite hjälp av one.coms engelska chatt och nu får jag upp det här felmeddelandet istället: 404 not found.

Chatten sa att jag måste ändra alla mina .htaccess filer, men detta har jag ju redan gjort. Sen la chatten av och jag kunde inte fråga nåt mer. Så frågar här istället =)

Vad kan det vara som är fel? Och viktigare, hur löser jag det?

Tacksam för all hjälp jag kan få =)

Fixat!

Defrost-1's picture

Jag löste det! Tog bort allt som var på one.com och la in det igen, och nu funkar det =D

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: