Runtime Configuration

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Runtime Configuration

Beteendet hos dessa funktioner påverkas av inställningar i `php.ini`.

OPcache konfigurationsalternativ

Namn Standard Ändringsbar Ändringslogg
`opcache.enable` 1 INI_ALL
`opcache.enable_cli` 0 INI_SYSTEM Mellan PHP 7.1.2 och 7.1.6 inkluderat, var standardvärdet 1
`opcache.memory_consumption` 128 INI_SYSTEM
`opcache.interned_strings_buffer` 8 INI_SYSTEM
`opcache.max_accelerated_files` 10000 INI_SYSTEM
`opcache.max_wasted_percentage` 5 INI_SYSTEM
`opcache.use_cwd` 1 INI_SYSTEM
`opcache.validate_timestamps` 1 INI_ALL
`opcache.revalidate_freq` 2 INI_ALL
`opcache.revalidate_path` 0 INI_ALL
`opcache.save_comments` 1 INI_SYSTEM
`opcache.fast_shutdown` 0 INI_SYSTEM Borttagen i PHP 7.2.0
`opcache.enable_file_override` 0 INI_SYSTEM
`opcache.optimization_level` 0x7FFEBFFF INI_SYSTEM Ändrades från 0x7FFFBFFF i PHP 7.3.0
`opcache.inherited_hack` 1 INI_SYSTEM Borttagen i PHP 7.3.0
`opcache.dups_fix` 0 INI_ALL
`opcache.blacklist_filename` "" INI_SYSTEM
`opcache.max_file_size` 0 INI_SYSTEM
`opcache.consistency_checks` 0 INI_ALL Inaktiverad från 8.1.18 och 8.2.5. Borttagen från PHP 8.3.0.
`opcache.force_restart_timeout` 180 INI_SYSTEM
`opcache.error_log` "" INI_SYSTEM
`opcache.log_verbosity_level` 1 INI_SYSTEM
`opcache.record_warnings` 0 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.preferred_memory_model` "" INI_SYSTEM
`opcache.protect_memory` 0 INI_SYSTEM
`opcache.mmap_base` null INI_SYSTEM Endast Windows.
`opcache.restrict_api` "" INI_SYSTEM
`opcache.file_update_protection` 2 INI_ALL
`opcache.huge_code_pages` 0 INI_SYSTEM
`opcache.lockfile_path` "/tmp" INI_SYSTEM
`opcache.opt_debug_level` 0 INI_SYSTEM Tillgänglig från PHP 7.1.0
`opcache.file_cache` null INI_SYSTEM
`opcache.file_cache_only` 0 INI_SYSTEM
`opcache.file_cache_consistency_checks` 1 INI_SYSTEM
`opcache.file_cache_fallback` 1 INI_SYSTEM Endast Windows.
`opcache.validate_permission` 0 INI_SYSTEM Tillgänglig från PHP 7.0.14
`opcache.validate_root` 0 INI_SYSTEM Tillgänglig från PHP 7.0.14
`opcache.preload` "" INI_SYSTEM Tillgänglig från PHP 7.4.0
`opcache.preload_user` "" INI_SYSTEM Tillgänglig från PHP 7.4.0
`opcache.cache_id` "" INI_SYSTEM Endast Windows. Tillgänglig från PHP 7.4.0
`opcache.jit` "tracing" INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_buffer_size` 0 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_debug` 0 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_bisect_limit` 0 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_prof_threshold` 0.005 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_max_root_traces` 1024 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_max_side_traces` 128 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_max_exit_counters` 8192 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_hot_loop` 64 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_hot_func` 127 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_hot_return` 8 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_hot_side_exit` 8 INI_SYSTEM Tillgänglig från PHP 8.0.0
`opcache.jit_blacklist_root_trace` 16 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_blacklist_side_trace` 8 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_max_loop_unrolls` 8 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_max_recursive_calls` 2 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_max_recursive_returns` 2 INI_ALL Tillgänglig från PHP 8.0.0
`opcache.jit_max_polymorphic_calls` 2 INI_ALL Tillgänglig från PHP 8.0.0

För ytterligare detaljer och definitioner av INI_* lägen, se avsnittet Var en konfigurationsinställning kan sättas.

Här är en kort förklaring av konfigurationsdirektiven.

`opcache.enable` bool

Aktiverar opcode-cachen. När den är avstängd optimeras eller cachas koden inte. Inställningen `opcache.enable` kan inte aktiveras vid körning via `ini_set()`, den kan bara avaktiveras. Att försöka aktivera den i ett skript kommer att generera en varning.

`opcache.enable_cli` bool

Aktiverar opcode-cachen för CLI-versionen av PHP.

`opcache.memory_consumption` int

Storleken på det delade minnesutrymmet som används av OPcache, i megabyte. Det minsta tillåtna värdet är "8", vilket upprätthålls om ett mindre värde anges.

`opcache.interned_strings_buffer` int

Mängden minne som används för att lagra internhanterade strängar, i megabyte.

`opcache.max_accelerated_files` int

Det maximala antalet nycklar (och därmed skript) i OPcache hash-tabellen. Det faktiska värdet som används kommer att vara det första primtalet i mängden { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 } som är större än eller lika med det konfigurerade värdet. Det minsta värdet är 200. Det maximala värdet är 1000000. Värden utanför detta intervall justeras till det tillåtna intervallet.

`opcache.max_wasted_percentage` int

Den maximala procentandelen av slösat minne som är tillåten innan en omstart schemaläggs, om det finns otillräckligt med fritt minne. Det maximala tillåtna värdet är "50", vilket upprätthålls om ett större värde anges.

`opcache.use_cwd` bool

Om aktiverad, lägger OPcache till den aktuella arbetskatalogen till skriptnyckeln, vilket eliminerar möjliga kollisioner mellan filer med samma basnamn. Att inaktivera denna direktiv förbättrar prestanda, men kan bryta befintliga applikationer.

`opcache.validate_timestamps` bool

Om aktiverad, kommer OPcache att kontrollera om skript har uppdaterats var `opcache.revalidate_freq` sekunder. När denna direktiv är avstängd måste du återställa OPcache manuellt via `opcache_reset()`, `opcache_invalidate()` eller genom att starta om webbservern för att ändringar i filsystemet ska träda i kraft.

Notera: OPcache kan fortfarande validera tidsstämpeln för en fil vid kompileringstid om `opcache.file_update_protection` eller `opcache.max_file_size` alternativ är inställda på icke-nollvärden.

`opcache.revalidate_freq` int

Hur ofta att kontrollera skriptens tidsstämplar för uppdateringar, i sekunder. 0 resulterar i att OPcache kontrollerar uppdateringar vid varje förfrågan.

Denna konfigurationsdirektiv ignoreras om `opcache.validate_timestamps` är avstängd.

`opcache.revalidate_path` bool

Om avstängd, kommer befintliga cachade filer som använder samma `include_path` att återanvändas. Således, om en fil med samma namn finns någon annanstans i `include_path`, kommer den inte att hittas.

`opcache.save_comments` bool

Om avstängd, kommer alla dokumentationskommentarer att tas bort från opcode-cachen för att minska storleken på den optimerade koden. Att inaktivera denna konfigurationsdirektiv kan bryta applikationer och ramverk som förlitar sig på kommentarsanalys för annoteringar, inklusive Doctrine, Zend Framework 2 och PHPUnit.

`opcache.fast_shutdown` bool

Om aktiverad, används en snabb avstängningssekvens som inte frigör varje tilldelat block, utan förlitar sig på Zend Engine minneshanterare för att avallokera hela uppsättningen av begärande variabler samtidigt.

Denna direktiv har tagits bort i PHP 7.2.0. En variant av den snabba avstängningssekvensen har integrerats i PHP och kommer automatiskt att användas om möjligt.

`opcache.enable_file_override` bool

När aktiverad, kommer opcode-cachen att kontrolleras för att se om en fil redan har cachats när `file_exists()`, `is_file()` och `is_readable()` anropas. Detta kan öka prestandan i applikationer som kontrollerar existensen och läsbarheten av PHP-skript, men riskerar att returnera föråldrad data om `opcache.validate_timestamps` är avstängd.

`opcache.optimization_level` int

Ett bitmask som styr vilka optimeringspass som utförs. Standardinställningen är att tillämpa alla säkra optimeringar. Att ändra standarden är mest användbart för felsökning/utveckling av optimeraren (se även `opcache.opt_debug_level`).

`opcache.inherited_hack` bool

Denna konfigurationsdirektiv ignoreras.

`opcache.dups_fix` bool

Denna hack bör endast aktiveras för att lösa "Cannot redeclare class" fel.

`opcache.blacklist_filename` string

Platsen för OPcache svartelistfilen. En svartelistfil är en textfil som innehåller namnen på filer som inte ska accelereras, en per rad. Wildcards är tillåtna, och prefix kan också anges. Rader som börjar med ett semikolon ignoreras som kommentarer.

En enkel svartelistfil kan se ut som följer:

; Matchar en specifik fil.
/var/www/broken.php
; Ett prefix som matchar alla filer som börjar med x.
/var/www/x
; En wildcard-match.
/var/www/*-broken.php

`opcache.max_file_size` int

Den maximala filstorleken som kommer att cachas, i byte. Om detta är 0, kommer alla filer att cachas.

`opcache.consistency_checks` int

Om icke-noll, kommer OPcache att verifiera cache checksum varje N förfrågningar, där N är värdet av denna konfigurationsdirektiv. Detta bör endast aktiveras vid felsökning, eftersom det försämrar prestanda.

Notera:

Inaktiverad från 8.1.18 och 8.2.5. Borttagen från PHP 8.3.0.

`opcache.force_restart_timeout` int

Den tid som ska vänta innan en schemalagd omstart börjar om cachen inte är aktiv, i sekunder. Om timeouten nås, antar OPcache att något är fel och kommer att döda processerna som håller lås på cachen för att möjliggöra en omstart.

Om `opcache.log_verbosity_level` är inställt på 2 eller högre, kommer en varning att loggas i fellogg när detta inträffar.

Denna direktiv stöds inte på Windows.

`opcache.error_log` string

Fellogg för OPcache-fel. En tom sträng behandlas som stderr, vilket resulterar i att loggar skickas till standardfel (vilket i de flesta fall kommer att vara webbserverns fellogg).

`opcache.log_verbosity_level` int

Loggnivån för detaljrikedom. Som standard loggas endast fatala fel (nivå 0) och fel (nivå 1). Andra tillgängliga nivåer är varningar (nivå 2), informationsmeddelanden (nivå 3) och debug-meddelanden (nivå 4).

`opcache.record_warnings` bool

Om aktiverad, kommer OPcache att registrera kompileringstidvarningar och spela upp dem vid nästa inkludering, även om den serveras från cache.

`opcache.preferred_memory_model` string

Den föredragna minnesmodellen för OPcache att använda. Om den lämnas tom, kommer OPcache att välja den mest lämpliga modellen, vilket är korrekt beteende i nästan alla fall.

Möjliga värden inkluderar `mmap`, `shm`, `posix` och `win32`.

`opcache.protect_memory` bool

Skyddar delat minne från oväntade skrivningar medan skript körs. Detta är användbart endast för intern felsökning.

`opcache.mmap_base` string

Basadressen som används för delade minnessegment på Windows. Alla PHP-processer måste mappa delat minne till samma adressutrymme. Genom att använda denna direktiv kan felmeddelandet "Unable to reattach to base address" åtgärdas.

`opcache.restrict_api` string

Tillåter endast att OPcache API-funktioner anropas från PHP-skript vars sökväg börjar med angiven sträng. Standardvärdet `""` innebär inga restriktioner.

`opcache.file_update_protection` int

Förhindrar cachning av filer som är mindre än detta antal sekunder gamla. Det skyddar mot cachning av ofullständigt uppdaterade filer. Om alla filuppdateringar är atomära, kan prestandan ökas genom att sätta detta till 0. Detta tillåter filer att cachas omedelbart.

`opcache.huge_code_pages` bool

Aktiverar eller inaktiverar kopiering av PHP-kod (textsegment) till HUGE PAGES. Detta bör förbättra prestanda, men kräver lämplig OS-konfiguration. Tillgänglig på Linux från PHP 7.0.0 och på FreeBSD från PHP 7.4.0.

`opcache.lockfile_path` string

Absolut sökväg som används för att lagra delade låsfiler (endast för *nix).

`opcache.opt_debug_level` string

Producerar opcode-dumps för felsökning av olika optimeringsstadier. `0x10000` kommer att outputa opcodes som kompilatorn producerade innan någon optimering sker medan `0x20000` kommer att outputa optimerade koder.

`opcache.file_cache` string

Aktiverar och ställer in andra nivåns cachekatalog. Det bör förbättra prestanda när SHM-minne är fullt, vid serveromstart eller SHM-återställning. Standardvärdet `""` inaktiverar filbaserad caching.

`opcache.file_cache_only` bool

Aktiverar eller inaktiverar opcode-caching i delat minne.

Notera:

Innan PHP 8.1.0 krävdes en manuell rensning av filcachen när denna direktiv inaktiverades med en redan fylld filcache.

`opcache.file_cache_consistency_checks` bool

Aktiverar eller inaktiverar checksum-validering när skript laddas från filcache.

`opcache.file_cache_fallback` bool

Implikerar `opcache.file_cache_only=1` för en viss process som misslyckades med att återansluta till delat minne (endast Windows). Explicit aktivering av filcachen krävs.

Caution: Att inaktivera denna konfigurationsalternativ kan hindra processer från att starta, och avråds därför.

`opcache.validate_permission` bool

Validerar de cachade filernas behörigheter mot den aktuella användaren.

`opcache.validate_root` bool

Förhindrar namnkonflikter i chroot-miljöer. Detta bör aktiveras i alla chroot-miljöer för att förhindra åtkomst till filer utanför chroot.

`opcache.preload` string

Specificerar ett PHP-skript som kommer att kompileras och köras vid serverstart, och som kan förinladda andra filer, antingen genom att inkludera dem eller genom att använda funktionen `opcache_compile_file()`. Alla entiteter (t.ex. funktioner och klasser) som definieras i dessa filer kommer att vara tillgängliga för förfrågningar direkt, tills servern stängs ner.

Notera:

Förinladdning stöds inte på Windows.

`opcache.preload_user` string

Tillåter att förinladdning körs som den angivna systemanvändaren. Detta är användbart för servrar som startar som root innan de byter till en oprivilegierad systemanvändare. Förinladdning som root är inte tillåtet som standard av säkerhetsskäl, om inte denna direktiv explicit är satt till root.

`opcache.cache_id` string

På Windows delar alla processer som kör samma PHP SAPI under samma användarkonto med samma cache-ID en enda OPcache-instans. Värdet av cache-ID kan väljas fritt.

Tips: För IIS kan olika applikationspooler ha sin egen OPcache-instans genom att använda miljövariabeln `APP_POOL_ID` som `opcache.cache_id`.

`opcache.jit` string|int

För typisk användning accepterar detta alternativ ett av fyra strängvärden:

  • `disable`: Fullständigt avaktiverat, kan inte aktiveras vid körning.
  • `off`: Avaktiverat, men kan aktiveras vid körning.
  • `tracing/on`: Använd tracing JIT. Aktiverad som standard och rekommenderad för de flesta användare.
  • `function`: Använd function JIT.

För avancerad användning accepterar detta alternativ ett 4-siffrigt heltal CRTO, där siffrorna betyder:

  • C (CPU-specifika optimeringsflaggor)
 * 0: Avaktivera CPU-specifik optimering.
 * 1: Aktivera användning av AVX, om CPU:n stöder det.
  • R (registerallokering)
 * 0: Utför ingen registerallokering.
 * 1: Utför blocklokal registerallokering.
 * 2: Utför global registerallokering.
  • T (trigger)
 * 0: Kompilera alla funktioner vid skriptladdning.
 * 1: Kompilera funktioner vid första körningen.
 * 2: Profilera funktioner vid första förfrågan och kompilera de hetaste funktionerna därefter.
 * 3: Profilera på språng och kompilera heta kodsegment.
 * 4: För närvarande oanvänt.
 * 5: Använd tracing JIT. Profilera på språng och kompilera spår för heta kodsegment.
  • O (optimeringsnivå)
 * 0: Ingen JIT.
 * 1: Minimal JIT (kalla standard VM-handlare).
 * 2: Inline VM-handlare.
 * 3: Använd typinferens.
 * 4: Använd call graph.
 * 5: Optimera hela skriptet.

"Tracing"-läget motsvarar CRTO = 1254, "function"-läget motsvarar CRTO = 1205.

`opcache.jit_buffer_size` int

Mängden delat minne som ska reserveras för kompilerad JIT-kod. Ett nollvärde inaktiverar JIT.

När ett heltal används mäts värdet i byte. Shorthand-notation, som beskrivs i denna FAQ, kan också användas.

`opcache.jit_debug` int

En bitmask som specificerar vilken JIT-felutmatning som ska aktiveras. För möjliga värden, vänligen konsultera `zend_jit.h` (sök efter makrodefinitioner som börjar med `ZEND_JIT_DEBUG`).

`opcache.jit_bisect_limit` int

Felsökningsalternativ som inaktiverar JIT-kompilering efter att ha kompilerat ett visst antal funktioner. Detta kan vara till hjälp för att bisekta källan till en JIT-misskompilering. Notera: detta alternativ fungerar endast när JIT-trigger är inställd på 0 (kompilera vid skriptladdning) eller 1 (kompilera vid första körningen), t.ex. `opcache.jit=1215`. Se mer i `opcache.jit`-alternativet.

`opcache.jit_prof_threshold` float

När "profile on first request" triggerläget används, bestämmer denna tröskel om en funktion betraktas som het. Antalet anrop till funktionen delat med antalet anrop till alla funktioner måste vara över tröskeln. Till exempel, en tröskel på 0.005 betyder att funktioner som utgör mer än 0.5% av alla anrop kommer att JIT-kompileras.

`opcache.jit_max_root_traces` int

Maximalt antal rotspår. Rotspåret är ett exekveringsflöde som tar en väg genom koden först, vilket är en enhet av JIT-kompilering. JIT kommer inte att kompilera ny kod om det når denna gräns.

`opcache.jit_max_side_traces` int

Maximalt antal sidospår som ett rotspår kan ha. Sidospåret är ett annat exekveringsflöde som inte följer vägen för det kompilerade rotspåret. Sidospår som tillhör samma rotspår kommer inte att kompilera om det når denna gräns.

`opcache.jit_max_exit_counters` int

Maximalt antal sidospårens exiträknare. Detta begränsar det totala antalet sidospår som kan finnas, över alla rotspår.

`opcache.jit_hot_loop` int

Efter hur många iterationer en loop betraktas som het. Tillåtna värdeintervall är [0,255]; för alla inställningar utanför detta intervall, t.ex. -1 eller 256, kommer standardvärdet att användas istället. 0 inaktiverar JIT att spåra och kompilera några loopar.

`opcache.jit_hot_func` int

Efter hur många anrop en funktion betraktas som het. Tillåtna värdeintervall är [0,255]; för alla inställningar utanför detta intervall, t.ex. -1 eller 256, kommer standardvärdet att användas istället. 0 inaktiverar JIT att spåra och kompilera några funktioner.

`opcache.jit_hot_return` int

Efter hur många returer en retur betraktas som het. Tillåtna värdeintervall är [0,255]; för alla inställningar utanför detta intervall, t.ex. -1 eller 256, kommer standardvärdet att användas istället. 0 inaktiverar JIT att spåra och kompilera några returer.

`opcache.jit_hot_side_exit` int

Efter hur många exitar en sidexit betraktas som het. Tillåtna värdeintervall är [0,255]; för alla inställningar utanför detta intervall, t.ex. -1 eller 256, kommer standardvärdet att användas istället. 0 inaktiverar JIT att spåra och kompilera några sidexitar.

`opcache.jit_blacklist_root_trace` int

Maximalt antal gånger kompileringen av ett rotspår försöks innan det svartlistas.

`opcache.jit_blacklist_side_trace` int

Maximalt antal gånger kompileringen av ett sidospår försöks innan det svartlistas.

`opcache.jit_max_loop_unrolls` int

Maximalt antal försök att avveckla en loop i ett sidospår, för att försöka nå rotspåret och stänga den yttre loopen.

`opcache.jit_max_recursive_calls` int

Maximalt antal avvecklade rekursiva anropsloopar.

`opcache.jit_max_recursive_returns` int

Maximalt antal avvecklade rekursiva returloopar.

`opcache.jit_max_polymorphic_calls` int

Maximalt antal försök att inlinera polymorfa (dynamiska eller metod) anrop. Anrop över denna gräns behandlas som megamorfa och inlineras inte.

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/opcache.configuration.php

PHP Funktioner Funktionsreferens


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webserver.