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
- Kjøretidsnivå (i PHP-scriptet, PHP_INI_USER, PHP_INI_ALL,
ini_set()
)
- Katalognivå (du bestemmer selv,
PHP_INI_PERDIR, bruk
user.ini
)
- Systemnivå (sentralt oppsett, vi styrer, "Master value",
PHP_INI_SYSTEM og vår
php.ini
)
- 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.
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:
- Teoretisk ytelsesforbedring
- 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
OBS: Vi gir ikke brukerstøtte til Zend Guard. Zend Guard fins ikke for PHP 7.x og nyere, 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 8.
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 l
på login.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.