Spørsmål og svar

Tilbake
Hvordan endrer jeg PHP-konfigurasjonen for mitt webhotell?
Dette innslaget i våre spørsmål og svar er beregnet på avanserte brukere, alt du gjør er på egen risiko og eget ansvar.

OBS! Hvis du endrer PHP-konfigurasjonen, så kan ting slutte å fungere, enten med en gang, eller på et senere tidspunkt. Se her for mer info om PHP-versjonene og webserverne.


Generelt

Standard PHP-konfigurasjon på våre webservere passer til de aller fleste behov. Hvis du vet at du har behov for endringer, så er det mulig for deg å endre på konfigurasjonen på eget ansvar. Eksempelvis kan det gjelde:

  • IonCube
  • Innstillinger for f.eks. feilmeldinger, tidssone, osv.
  • Begrensninger for ressursbruk, f.eks. minnebruk (memory_limit, post_max_size, upload_max_filesize), kjøretid (max_execution_time, max_input_time) og liknende, er det IKKE TILLATT å ØKE eller OVERSKRIDE.

I motsetning til løsninger basert på mod_php, så kan du ikke styre PHP-konfigurasjonen direkte via .htaccess.

Forsøker du å gjøre det, så vil du få "internal server error".

Hvis du gjør slike endringer og noe ikke fungerer, sjekk at du ikke har trykkfeil eller andre feil i innstillingene dine. Hvis du overhodet ikke får det til, overlat det til en ekspert, eller gå tilbake til vår standard konfigurasjon. Vi kan dessverre ikke gi brukerstøtte på slik avansert bruk.

Hvis du gjør øker eller overskrider begrensningene for ressursbruk (noe som ikke er tillatt), så kan vi bli nødt til å deaktivere PHP-koden som gjør det og/eller konfigurasjonsfilen som gjør det. Har du større behov enn det som dekkes av våre grenser, så bør du bruke dedikert server/virtuell privat server.

PHP-konfigurasjon kan endres på flere nivåer

  1. Kjøretidsnivå (i PHP-scriptet, PHP_INI_USER, PHP_INI_ALL, ini_set())
  2. Katalognivå (du bestemmer selv, PHP_INI_PERDIR, bruk user.ini)
  3. Systemnivå (sentralt oppsett, vi styrer, "Master value", PHP_INI_SYSTEM og vår php.ini)
  4. Hardkodet nivå (kompilering/installasjon av selve PHP, vi utfører ikke endringer i forhold til Debians oppsett)

PHPs websider har en egen oversikt over mulige innstillinger.

Konfigurasjon av typen PHP_INI_USER og PHP_INI_ALL kan settes i hvert enkelt script (eller i en include-fil) slik, uavhengig av PHP-versjon hos oss.


ini_set()

PHP_INI_USER
PHP_INI_ALL

De fleste henvendelser vi får om å endre variabler på systemnivå kan settes av programmerer/utvikler i programmet/scriptet med kall på ini_set(), og ikke bare det, det er veldig enkelt å se om en innstilling er gjort med ini_get().

Eksempel på bruk av ini_set()

<?php
  ini_set("display_errors",1);
  print(ini_get("date.timezone")."\n");
  ini_set("date.timezone","Europe/Berlin");
  print(ini_get("date.timezone")."\n");
?>

Hvis ditt behov er tidssone-konfigurasjon: erstatt Europe/Berlin med tidssonen du mener passer best. Standard for vår PHP er "Europe/Oslo".

Følgende variabler kan ikke justeres med ini_set():

  • max_execution_time
  • max_memory_limit
  • post_max_size

.user.ini

PHP_INI_PERDIR
PHP_INI_USER

Noen innstillinger kan ikke gjøres i programmer/script. Lager du din egen .user.ini i www-mappen, behøver du kun legge inn de konfigurasjonsinnstillingene du ønsker å endre på, i motsetning til med egen php.ini, hvor du også må legge inn de du ikke bruker.

Det kan ta inntil fem (5) minutter før en endring av .user.ini trer i kraft.

Eksempel på bruk av .user.ini

display_errors = On
date.timezone = "Asia/Jakarta"

Hvis ditt behov er tidssone-konfigurasjon: erstatt Asia/Jakarta med den tidssonen som du mener passer best. Se også PHPs tidssone-liste.


php.ini

Fordi PHP hos oss kjører gjennom uWSGI, så har du muligheten til å lage din egen php.ini, og dermed styre også innstillingene av typen PHP_INI_SYSTEM og php.ini. Når du skal gjøre endringer må du laste ned og endre vår standard php.ini:

Det kan ta inntil tretti (30) minutter før en endring av php.ini trer i kraft.

Ikke lag din egen php.ini uten å ta med alle våre konfigurerte variabler!

Du lager din egen php.ini slik:

  1. Last ned og kopier vår standard php.ini til ditt webhotell, f.eks. /home/2/m/mittnavn/php.ini. Filen bør ikke være lesbar for andre. Ikke lag din egen php.ini fra bunnen av.
  2. Egen php.ini må ligge på roten i brukerens hjemmemappe eller docroot (mappen det pekes til når man bruker skjult www-videresending).
  3. Modifiser innholdet slik at det passer for deg.
  4. Endringer av .user.ini og php.ini registreres ikke umiddelbart, men etter henholdsvis 5 og 30 minutter.
  5. Støtte for IonCube Loader kan aktiveres i kontrollpanelet for webhotellet. Det vil da ikke være mulig å bruke egen php.ini. Dette er å foretrekke fremfor å fortsette å bruke egne php.ini-filer og egne tillegg.
  6. Følg med på endringer vi gjør i vår php.ini!

Du kan sjekke at du har fått lastet din egen php.ini ved å sjekke konfigurasjonsinnstillingene med phpinfo(), der vil verdien "Loaded Configuration File" vise navnet på konfigurasjonsfilen som er lastet. Hvis f.eks. "/etc/php/7.2/embed/php.ini" vises istedenfor, så gikk det ikke bra. Sjekk at du skrev inn riktig i php.ini, og prøv igjen.

Dersom du får en "internal server error"-feilmelding, så har du sannsynligvis gjort noe feil, f.eks. ved å sette en innstilling som ikke er gyldig, bruke feil filrettigheter (PHP-script hos oss skal ikke være skrivbare for andre), eller liknende.


Utvidelser/tillegg (extensions)

Flere utvidelser kan installeres lokalt på ditt webhotell og lastes gjennom en modifisert php.ini. De kan ikke lastes via .user.ini.

Vi tilbyr ikke brukerstøtte for slike utvidelser, selv om en veldig hyggelig kundebehandler kanskje hjalp deg første gangen.

En del slike utvidelser er såkalte PHP-akseleratorer eller "optimizers", som essensielt tilbyr to typer tjenester for deg:

  1. Teoretisk ytelsesforbedring
  2. Obfuskering/kryptering av kildekode

Den teoretiske ytelsesforbedringen vil ofte slå ut i tapt ytelse, fordi akseleratorene antar at PHP kjører som integrert, optimaliserbar kode (mod_php) i selve webserveren. Hos oss kjører PHP som CGI under uWSGI av sikkerhetsgrunner, og da er det hovedsakelig den andre typen tjeneste som kan være interessant for deg.

Noen få PHP-programmer vil kunne kreve at du har installert f.eks. IonCube, dette får du informasjon om hos din programvareleverandør. Vi gir ikke brukerstøtte til slike utvidelser.

Eksemplene nedenfor er der for å gjøre det litt lettere for deg, og du kan bruke de som generelle eksempler på hvordan du legger til utvidelser, men alt du gjør er på egen risiko og eget ansvar.


IonCube

OBS: Vi gir ikke brukerstøtte til IonCube. Brukere av PHP trenger ikke egen php.ini, vi anbefaler at du velger IonCube i kontrollpanelet vårt istedenfor, dette finner du ved å klikke på "Se på/endre" til høyre for "PHP". Endringen tar 10-30 minutter.

Du kan ikke ha egen php.ini samtidig. Dette er en forenkling for at du skal slippe å finne ut av hvordan du legger inn IonCube i php.ini.


Zend Optimizer/Zend Guard Loader

Zend Guard Loader for PHP 5.6

OBS: Vi gir ikke brukerstøtte til Zend Guard. Zend Guard fins ikke for PHP 7.x, og vi tilbyr derfor ikke installasjon av det mer.

Hvis du opplever problemer med Zend Guard, kontakt din programvareleverandør for oppgradering av produktet til støtte for PHP 7.2.


PECL-/PEAR-tillegg (f.eks. Imagick)

Imagick og mange andre tillegg er forhåndsinstallert og aktivert sentralt.

Du kan få en liste over sentralt installerte og aktiverte PECL-/PEAR-tillegg med phpinfo() eller Unix-kommandoen pecl l og/eller pear llogin.domeneshop.no.

Du står fritt til å installere andre PECL-tillegg til ditt eget webhotell. Dette gjør du på egen risiko. Vi tilbyr ikke hjelp til slike spesialkonfigurasjoner.

Egne utvidelser

Hvis du trenger egen utvidelse, så tillater PHP at du oppgir fullstendig sti til modulen i php.ini, slik at du kan ha både våre systeminstallerte moduler og de du velger å installere selv. Det betyr at du kan bruke f.eks.:

extension=/home/1/m/mittnavn/min_utvidelse.so

Dette er også på egen risiko og ansvar.


Se også:

Stikkord:  

Innholdsfortegnelse

© 2018 Domeneshop AS · Om oss · Vilkår · Personvern