Runtime Configuration
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.