Brug af WP All Import, WordPress Importer og lignende plugins til at importere XML-filer, CSV-filer, WXR-filer og billeder er en fælles opgave for udviklere og websteder med indhold, der ofte ændres. Det er dog også almindeligt, at timeouts og problemer med websiteresultater opstår, mens denne import behandles.

I denne artikel diskuterer vi trin, du kan tage for at arbejde dig igennem en udfordrende import proces.

Bemærk, at vi ikke kan garantere, at enhver import proces kører med succes på vores platform. Hvis importen ikke kan køres med succes på Kinsta, anbefaler vi, at du udfører importen i et lokalt udviklingsmiljø og derefter importerer den opdaterede database eller tabel til din websites database.

Hvorfor forårsager import timeouts og performance-problemer?

Der er to typer timeouts, som store import-processer typisk løber ind i:

  • PHP-timeouts forekommer, hvis en enkelt PHP-proces kører længere end max_execution_time eller max_input_time, der er indstillet i PHP-konfigurationen. Når dette sker, vises der normalt en 502-server error.
  • HTTP-timeouts opstår, når forbindelsen mellem din browser og webserveren holdes åben for længe. Når dette sker, vises der normalt en 504 gateway-timeout error.

Det er almindeligt, at webstedets ydeevne også er langsommere, når en stor import kører. Dette skyldes, at PHP og MySQL har travlt med at håndtere import-processen. Dette får regelmæssig trafik til stedet til at vente, indtil PHP og MySQL er tilgængelige for at generere den ønskede side.

Håndtering af PHP-timeouts

For websteder hostet på Kinsta er PHP max_execution_time og max_input_time indstillet til 185 sekunder, og vi kan ikke øge det yderligere.

Hvis du løber ind i PHP-timeouts, anbefaler vi at arbejde med en udvikler for at løse problemet. For eksempel, i stedet for at køre en import proces via en lang PHP-anmodning, ville det være bedre at køre import direkte på containeren ved hjælp af WP-CLI eller et lokalt PHP- eller Bash-script.

Håndtering af HTTP-timeouts

HTTP-timeouts forekommer typisk efter 60 sekunder for websteder, der er vært hos Kinsta. På grund af designet til vores infrastruktur er vi ikke i stand til at øge HTTP-timeout-varigheden.

Hvis du oplever en HTTP-timeout, er der to trin, du skal forsøge at løse problemet:

  • Hvis processen udløber, mens importfilen uploades, skift til en hurtigere internetforbindelse og prøv processen igen.
  • Hvis du bruger et værktøj med support til WP-CLI, eks. WordPress Importer-plugin, kan du køre importen direkte på serveren og omgå HTTP-forbindelsen helt.

Bemærk, at kørsel af en import over SSH er en ændring af indholdet på dit websted ikke er inden for rammerne af, hvad vores supportteam er her for at hjælpe dig med. Derudover, hvis du ikke er bekendt med SSH, bliver du enten nødt til at lære at bruge dette magtfulde værktøj eller arbejde med en udvikler til at behandle importen over SSH.

Håndtering af problemer med websteds-resultater

Hvis import-processen kører med succes, men dit websted fungerer dårligt under processen, har du to muligheder:

  • Planlæg importaktiviteten i en tid med lav trafik for at minimere indflydelsen på dit websteds besøgende.
  • Opgrader til en plan med flere PHP-arbejdere på dit live site. Hvis ydelsesproblemerne skyldes, at PHP ikke er tilgængelig til at håndtere flere anmodninger, der midlertidigt opgraderes til en plan med flere PHP-arbejdere, betyder det, at PHP har større kapacitet til at håndtere både trafik til webstedet og importen.
  • Opgradering af en plan hjælper ikke, hvis du prøver at køre en import på et scenesite. Vores scenemiljø har et konstant sæt PHP-arbejdere og vil ikke blive påvirket af plan-opdateringer.

Opgradering af planer for at få adgang til flere PHP-arbejdere hjælper ikke i alle tilfælde. Hvis dit websted kører langsomt, fordi databasen (MySQL) er travlt med at indsætte indhold i databasen, er det usandsynligt, at tilføjelse af flere PHP-arbejdere fremskynder dit websteds ydelse.

Få hjælp

Hvis du har arbejdet gennem de forudgående forslag i denne artikel, stadig løber ind i problemer og gerne vil have hjælp, er det næste skridt at nå ud til vores supportteam. Inden du åbner en samtale med vores supportteam, skal du dog samle så meget information som muligt.

  • Start importen, og hvor lang tid det tager før processen mislykkes. Hvis processen mislykkes efter 1 minut, løber du sandsynligvis en HTTP-timeout. Hvis det mislykkes efter 5 minutter, løber du sandsynligvis i en PHP-timeout. Hvis det mislykkes på et andet tidspunkt, løber du sandsynligvis ind i en anden grænse eller fejl og ser faktisk ikke en timeout.
  • Kontroller fejlloggerne på det tidspunkt, hvor importen mislykkedes, og se om der blev registreret en fejl på tidspunktet for fejlen.
  • Tag et skærmbillede af den fejlmeddelelse eller fejlside, du ser.
  • Skriv en kortfattet beskrivelse af den filtype, du prøver at importere, hvordan filen blev oprettet, hvad den indeholder, værktøjerne, der bruges til at oprette filen og køre importen, og den fejl, du oplever.

Når du har samlet disse oplysninger, skal du åbne en billet med Kinstas supportteam. Bemærk dog, at vi ikke kan garantere, at vi kan hjælpe dig med at få enhver import til at køre med succes.

Næste trin – Workflow for lokal udvikling

Hvis det ikke er muligt at køre importen i Kinstas miljø, er det næste skridt at udvikle en ny arbejdsgang til import-processen, hvor importen køres i et lokalt udviklingsmiljø. Bemærk, at en udvikler skal involveres i denne proces for at sikre, at ingen data går tabt, og at din websteds-database ikke er beskadiget.

Generelt set vil processen være at oprette en kopi af dit websted i et lokalt udviklingsmiljø – du kan bruge DevKinsta – hvor du kan kontrollere alle timeoutgrænserne. Fuldfør derefter importen i det lokale miljø. Når importen er afsluttet, eksporteres en kopi af WordPress databasen eller de opdaterede databasetabeller fra dit lokale miljø. Opret derefter en sikkerhedskopi af dit live-websted, slip databasen (eller de berørte tabeller) fra dit live-websted, og importer databasen eller tabellerne, der eksporteres fra dit lokale miljø.