PHP
Spørgsmål 14
·Etablering af anden version af PHP, hvordan foretages dette?
Vi tilbyder muligheden for at man kan benytte mange typer PHP 5,7 og 8 servere. I vores system kan man benytte både PHP 5,7 og 8, også i mange "underversioner". Man har i princippet flere PHP servere som alle er fysisk adskilt i sit abonnement.
Skal man "opgradere" sit eksisterende hotel fra eksempelvis PHP 7.4 til version 8.2 opgraderer man i princippet ikke fra 7.4 til 8.2, vi opretter en helt ny server.
"Opgraderingen" til anden type PHP server foretages i menupunktet Web og MySQL > FTP / PHP / File Manager. Efter man har bestilt en ny server, vil der forekomme nye informationer (vælg menupunktet Web og MySQL > FTP / PHP / File Manager igen) under menupunktet Web og MySQL > FTP / PHP / File Manager, informationer vises omkring FTP server, FTP loginnavn og password. Ved oprettelse af anden type PHP skal man selv flytte filerne fra den gamle til den nye server, dette gøres med et FTP program. Efter man har flyttet filerne til den nye server, og sikret sig at ens software også virker med den anden PHP version, kan man flytte DNS pegningen til den nye server i Flyt DNS pegning linket. Det kan tage op til 1 time inden den nye server er klar til at modtage filer efter bestilling af anden PHP server.
Det anbefales at man undlader at opdatere software eller website indenfor de første 24 timer.
Det er gratis at bestille en anden version af PHP, du skal dog være opmærksom på at din pladstildeling er sammenlagt for alle servere, flytter du derfor filer til den nye server skal du sikre dig at det samlede pladsforbrug holdes under det der er tildelt i domænets abonnement.
Kan i hjælpe med at kopiere/uploade filer til den nye server?
Kontakter du vores supportafdeling kan vi flytte filerne for dig, hvad vi ikke kan er at vide om dit website virker med den version du ønsker at blive flyttet til og vi kan ikke yde bistand med rettelser i websitets indhold så det virker med den version af PHP du vil flyttes til, ansvaret for at alt virker på en anden version ligger hos den ansvarlige for indholdet på webhotellet.
Efter flytning og DNS er peget over kan man altid pege DNS tilbage til den "gamle" server. Filerne på den gamle server berøres ikke hvis vi foretager kopieringen af filer fra en server til en anden.
Flyt DNS pegning
Har man ikke DNS servere i vores system har Flyt DNS pegning som sådan ikke nogen funktion andet end at vores egne DNS servere, disse er således ikke i brug hvis du har DNS andetsteds, opdateres så de peger korrekt. Ved udstedelse af LetsEnCrypt bruges den aktive DNS server, enten vores eller hvis man eksempelvis Cloudflares, informationer. LetsEncrypt spørger således ikke vores DNS servere hvilket IP dit website har, LetsEncrypt bruger de aktive i DNS zonens informationer.
Hvad er memory limit og har jeg nok?
PHP memory limit er den mængde ram som er afsat til en PHP process. Alt efter hvad ens process laver er der et memory forbrug, det kan være kode der laver billeder mindre, beregninger og hentning af data i MySQL. Alt efter hvad PHP skal lave skal den bruge det antal ram som denne process kræver.
Hvordan ved jeg om jeg har nok?
Man kan desværre ikke umiddelbart se hvor meget en process tager, derfor er det vigtigt at man har ram nok. Løber PHP tør for ram, stopper den process om er igang og ens website vil crashe i den process som er aktiv. Det kan betyde at ens website laver fejl i f.eks det den skriver til databasen, de filer den måske er ved at skrive til disken. Der er mange muligheder.
Kan jeg selv bestemme min memory limit?
PHP memory limit er styret af den type abonnement man vælger, man kan se de forskellige produkter i vores produktoversigt, man finder produktoversigten ved at trykke Bestil knappen direkte fra vores forside.
Hvilken version af PHP skal jeg benytte?
De fleste typer software har en specifikationsliste over hvad specifikationer ens PHP skal have, det anbefales at man checker hvad version ens software er lavet til, og vælger den korrekte version. Benytter man eksempelvis Joomla, kan Joomla selv godt virke på PHP 7.4 men en template eller plugin kræver 8.5.
Det er vigtig4 at man planlægger sit websites PHP version. for at undgå at ens website pludseligt ikke virker mere.
Det er vigtig4 at man planlægger sit websites PHP version. for at undgå at ens website pludseligt ikke virker mere.
Hvordan kan jeg lave en staging server?
Har man brug for en server til udvikling af en hjemmeside imedens ens primære webside stadig er online er det nemt, man bestiller en PHP server i den version, normalt den nyeste i domænets kontrolpanel:
Domænets kontrolpanel > FTP / PHP / File Manager > Bestil php server (nederst)
Vi har alle versioner af nyere PHP og man bestemmer selv hvilken PHP version man vil benytte. Man skal dog være opmærksom på at man ikke kan have 2 forskellige servere med samme PHP version.
Serveren er klar indenfor normalt 15 min og man kan tilgå den på den alternative www/staging URL link som fremgår i oversigten i midten af menupunktet Web og MySQL > FTP / PHP / File Manager.
Der er ikke SSL på en staging server da den har en anden domæneadresse (workzoneurl.com) adresse end ens domænenavn, SSL cerfifikater er således ikke gyldigt og vil komme med en advarsel, den advarsel ignorerer man og kan herefter tilgå sit site på den alternative URL adresse.
Bruger man WordPress og besøger sitet på den nye adresse vil den faktisk kun lige vise det første besøg for lige netop WordPress er lavet således at den automatisk stiller om til domænets adresse, det er sat op i selve WordPress backend, kan kunne rette dette til den midlertidige url og så ellers arbejder videre, det har dog det problem at mange links der peger internt i WordPress, det afhænger af plugins og tema, peger til domænets adresse og det kan give en del problemer med at se siden korrekt og man kan ende med at ende i en situation hvor en full restore af sitet, både filer og databaser, er nødvendigt. En smartere metode er at rette i sin computers hosts fil så man "snyder" ens egen computer til at pege til den nye server (alle andre ser stadig det samme da det kun er din egen computers DNS der overskrives med domænets nye adresse). Det er beskrevet andetsteds i vores supportsektion hvordan man retter i sin computers hosts fil.
Vi har alle versioner af nyere PHP og man bestemmer selv hvilken PHP version man vil benytte. Man skal dog være opmærksom på at man ikke kan have 2 forskellige servere med samme PHP version.
Serveren er klar indenfor normalt 15 min og man kan tilgå den på den alternative www/staging URL link som fremgår i oversigten i midten af menupunktet Web og MySQL > FTP / PHP / File Manager.
Der er ikke SSL på en staging server da den har en anden domæneadresse (workzoneurl.com) adresse end ens domænenavn, SSL cerfifikater er således ikke gyldigt og vil komme med en advarsel, den advarsel ignorerer man og kan herefter tilgå sit site på den alternative URL adresse.
Bruger man WordPress og besøger sitet på den nye adresse vil den faktisk kun lige vise det første besøg for lige netop WordPress er lavet således at den automatisk stiller om til domænets adresse, det er sat op i selve WordPress backend, kan kunne rette dette til den midlertidige url og så ellers arbejder videre, det har dog det problem at mange links der peger internt i WordPress, det afhænger af plugins og tema, peger til domænets adresse og det kan give en del problemer med at se siden korrekt og man kan ende med at ende i en situation hvor en full restore af sitet, både filer og databaser, er nødvendigt. En smartere metode er at rette i sin computers hosts fil så man "snyder" ens egen computer til at pege til den nye server (alle andre ser stadig det samme da det kun er din egen computers DNS der overskrives med domænets nye adresse). Det er beskrevet andetsteds i vores supportsektion hvordan man retter i sin computers hosts fil.
Jeg har en fejl på mit site, kan jeg se min PHP fejllog?
Har man en fejl på sit site, og har brug for at se logfilen for PHP, foretages dette i vores kontrolpanel:
* Log ind på din konto fra vores forside
* Tryk domænenavnet i oversigten over dine domæner
* Vælg menupunktet Web og MySQL > Statistikker og logfiler
* Tryk Se sidste linier af logfil i kolonnen Error log
Er man i tvivl om hvilken af serverne (man kan have flere) som er ens aktive server, kan man se dette i menupunktet Web og MySQL > FTP / PHP / File Manager.
I sidste kolonne kan man downloade logfilen som en ZIP fil. Det er dog ikke logfilen som den er nu, men derimod en logfil fra dagen i forvejen. Logfiler laves som ZIP filer lige efter kl 24:00 hver nat.
Kan jeg snyde min egen computer til at tro at mit domænenavn peger til en anden server?
Vær opmærksom på at dette trin kræver at man modificerer/retter i filer i ens operativsystem og at vi ikke yder kundesupport til dette trin.
Har man eksempelvis lavet en ny PHP server og overført filerne til en anden PHP server vil ens domænenavn stadig pege på den "gamle" server, det er derfor ikke nemt at teste om den server man har lavet og overført sine filer til, også virker med den software man har kopieret til serveren, der kan være et plugin, ens tema eller et helt andet script der gør at ens website ikke virker på den nye server. Man kan "snyde" sin computer til at tro at man ligger på en anden server end hvad ens DNS peger til. Løsningen vi beskriver her virker med Windows, vi anbefaler at man checker AI, eksempelvis Gemini eller Chatgpt for mere dybtgående instruktioner.
Hvad man skal rette er ens "hosts" fil, på Windows ligger den typisk i biblioteket:
Man starter notepad, det skal være som Administrator brugeren, Notepad kan ved start kun se tekst filer så man skal vælge at den viser alle filer, man åbner og retter i filen og taster derefter dette ind:
IP nummeret på den nye server kan du se i kontrolpanelet i menupunktet Web og MySQL > FTP / PHP / File Manager, og man skal taste dette ind istedet for 192.168.1.100, domænet rettes ligeledes til det korrekte domænenavn. Gem filen og start en kommandoprompt, igen som Administrator, og skriv:
Din Windows vil derefter genstarte den lokale DNS cache og de nye indstillinger for www og uden www er nu aktive. Du kan teste om det peger korrekt i en kommando prompt (brug samme som til ipconfig /flushdns) og skriv:
ping www.kurtkubik.dk
Begge resultater skal herefter komme frem med det IP nummer du tastede ind i din hosts fil og din computer er nu sat til at du peger domænet til den nye server.
Denne indstilling er permanent på din computer så når man er færdig med at teste skal man huske at fjerne denne indstilling fra sin hosts fil.
PHP Mail og externe e-mail adresser
Bruger man vores formmail eller PHP Mail til at sende e-mail med fra sit webhotel hos os skal man være opmærksom på at benyttes externe e-mail adresser, det vil sige en e-mail adresse som ikke er en del af domænenavnet webhotellet er tilknyttet, så kan man risikere at den externe mail adresse enten frasorterer de e-mails der måtte komme fra vore servere som spam eller simpelthen sletter e-mails (noget der desværre sker tit, specielt med g-mail konti). Det anbefales derfor at eventuelle e-mails der sendes fra ens webhotels hjemmeside sendes til en e-mail adresse som er samme domænenavn som webhotellet og som har en postkasse i vores system.
Vi har ingen mulighed for at checke hvor en e-mail er i systemet hvis den er sendt til en extern server og vi tager intet ansvar for eventuelle tab af e-mails hvor årsagen er at vore servere ikke benyttes som endedestination for e-mail afsendt fra ens webhotel.
Man skal også være opmærksom på at afsender på mails skal være samme domænenavn som webhotellet, man kan ikke sende fra eksempelvis en gmail adresse fra sit website, hverken vores system eller gmail tillader at gmail.com bruges som afsenderdomæne fra vores system.
PHP max exec time / execution timeout
På alle webservere har kunder en egen unikke PHP server som har sine egne indstillinger, visse indstillinger som eksempelvis hvor meget ram/hukommelse der er tildelt ens webhotel er styret af det abonnement man har. En indstilling man selv kan justere er det man kalder "Max Execution Time". Det er den tid et givent php script kan køre i ram førend det "timer ud". Der kan være visse fordele i at sætte dette tal lavt, man frigiver processen så den ikke tager ram hurtigere og løber derfor ikke tør, en anden fordel ved at have en lav timeout kan være at ens website er hacket og at et hack ligger os kører i en af de php processer der kører på sitet, med et lavt tal vil dette script time ud og man kan via FTP fjerne hacks inden man besøger sitet igen (er et hack lagt ind i ens kode kan det starte med det samme man besøger sitet).
Har man en situation hvor et hack kører i ram og konstant inficerer filer, kan man gøre således som et forsøg.
* Set max execution time til 10 sekunder
* Slå FTP lås til så det kræver ftp brugernavn og password for adgang
* Vent til det er slået igennem, kan tage op til 15 minutter
Man skal nu ikke besøge sit site og se om man kan fjerne de hacks der er på sitet via FTP eller eksempelvis hente en uinficeret kopi ind, enten en kopi man har selv (for man har jo selvfølgelig en egen kopi af sit site) eller fra backupmaster systemet.
Man styrer indstillinger i menupunktet Web og MySQL > FTP / PHP / File Manager i sit domænes kontrolpanel.
PHP og sikkerhedsopdateringer.
Ind imellem kommer der opdateringer til de forskellige software der bruges i vores hostingmiljø, typisk er det sikkerhedsopdateringer, alle vores webservere har altid de sidste tilgængelige sikkerhedspatches. Sikkerhedsprocedurer er dog ikke det samme som at ens website eller server ikke kan angribes, man skal derfor selv sørge for at holde sit websites filer opdaterede og ligeledes så hurtigt som muligt få flyttet sit website til en nyere version af den software man benytter.
Som backend for alle vores webservere benytter vi PHP-FPM. PHP-FPM er, for os at se, den sikreste måde at håndtere php scripts på da PHP-FPM er en selvstændig process der ikke er integreret i webserveren og har også den fordel at hver process kører under det brugernavn som ens website kører under, dels gør det at et website ikke har adgang til andre kunders filer og også at man kan styre resourceforbrug per bruger.
php_value i .htaccess vs .user.ini
Alle servere som har php version 5.3 og derover har en php settings fil som enten allerede er oprettet eller kan oprettes af brugeren. Denne fil hedder:
.user.ini
Læg mærke til at den starter med et punktum. I denne fil kan man sætte diverse PHP settings som er muligt på brugerniveau. Et par eksempler:
display_errors = 0
short_open_tag = Off
.user.ini kan af gode grunde ikke bruges til at ændre eksempelvis det antal ram man er tildelt, det er styret af det abonnement man er på.
Safemode/Register Globals ON eller OFF?
Man selv bestemme om man vil have safemode ON/OFF. Under menupunktet Web og MySQL > FTP / PHP / File Manager i kontrolpanelet, kan man let fra eller tilkoble safemode helt efter behov. Man kan derudover fra eller tilkoble "register globals", alt efter hvad ens PHP applikation har behov for.
I nyere versioner af PHP er eksempelvis safemode slet ikke muligt mere, og denne facilitet er derfor frakoblet. Man kan dog stadig se til/frakoblingsfunktionen i kontrolpanelet, systemet laver dog kun skift af safemode på de PHP versioner som understøtter dette.
For alle skift i sit setup tager det op til 15 minutter inden systemet har opdateret.
PHP > Redis
Har man et plugin der bruger Redis kan man sikre adgang til ens cache data ved at angive en værdi (i dette tilfælde en Wordpress installation) i filen
wp-config.php
Værdien skal være unik så ingen kan gætte sig frem til den. Taster man ikke dette ind vil Redis automatisk lave en værdi, typisk er dette ens prefix for databasen, har en anden kunde samme værdi kan det give problemer da 2 brugere således bruger samme Redis cache. Løsningen er at man i sin wp-config.php fil indtaster dette:
define('WP_REDIS_PREFIX','etellerandetduselvsyneserok');
Er værdien allerede sat skal man ikke rette dette.
wp-config.php
Værdien skal være unik så ingen kan gætte sig frem til den. Taster man ikke dette ind vil Redis automatisk lave en værdi, typisk er dette ens prefix for databasen, har en anden kunde samme værdi kan det give problemer da 2 brugere således bruger samme Redis cache. Løsningen er at man i sin wp-config.php fil indtaster dette:
define('WP_REDIS_PREFIX','etellerandetduselvsyneserok');
Er værdien allerede sat skal man ikke rette dette.
PHP > Redis > Egen software
Benytter kan Redis skal man huske at man deler Redis server med andre kunder, det er derfor vigtigt at man laver sin software så den tager hånd om dette, det er således en dårlig ide at gøre dette:
SET navn "kurt"
Da variablen navn kan være benyttet af den anden bruger. Den korrekte metode er derfor at skrive:
SET minunikkeprefix.navn "kurt"
hvor minunikkeprefix er noget man selv definerer.
Af sikkerhedshensyn er kommandoer som:
KEYS
MONITOR
CONFIG
Slået fra, det er således ikke muligt at slå op hvilke KEYS der er brugt på serveren.
PHP 8.2 og nyere
Bruger man PHP 8.2 og nyere, kræves det at den database server man benytter har password i et andet format. Det er let at skifte, du skifter dit database password (kan være samme password som nuværende) i menupunktet Web og MySQL > MySQL database information udfor den database server du benytter. Trykkes det gamle password kommer der en formular frem hvor man kan skifte password og samtidigt vælge nyt password format. Nyt password format understøttes af MySQL 5.6 og nyere.