PHP.mk документација

Конфигурација во време на извршување

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

opcache.configuration.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека opcache.configuration.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Конфигурација во време на извршување

Референца за `opcache.configuration.php` со подобрена типографија и навигација.

opcache.configuration.php

Конфигурација во време на извршување

Поведението на овие функции е под влијание на поставките во php.ini.

Опции за конфигурација на OPcache
Име Стандардно Променливо Дневник на промени
opcache.enable 1 INI_ALL    
opcache.enable_cli 0 INI_SYSTEM Помеѓу PHP 7.1.2 и 7.1.6 вклучително, стандардно беше 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 Отстрането во PHP 7.2.0
opcache.enable_file_override 0 INI_SYSTEM    
opcache.optimization_level 0x7FFEBFFF INI_SYSTEM Променето од 0x7FFFBFFF во PHP 7.3.0
opcache.inherited_hack 1 INI_SYSTEM Отстрането во 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 Оневозможено од 8.1.18 и 8.2.5. Отстрането од 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 Достапно од PHP 8.0.0
opcache.preferred_memory_model "" INI_SYSTEM    
opcache.protect_memory 0 INI_SYSTEM    
opcache.mmap_base null INI_SYSTEM Само за 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 Достапно од 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 Само за Windows.
opcache.validate_permission 0 INI_SYSTEM Достапно од PHP 7.0.14
opcache.validate_root 0 INI_SYSTEM Достапно од PHP 7.0.14
opcache.preload "" INI_SYSTEM Достапно од PHP 7.4.0
opcache.preload_user "" INI_SYSTEM Достапно од PHP 7.4.0
opcache.cache_id "" INI_SYSTEM Само за Windows. Достапно од PHP 7.4.0
opcache.jit "disable" INI_ALL Достапно од PHP 8.0.0. Пред PHP 8.4.0, стандардната вредност беше "tracing".
opcache.jit_buffer_size 64M INI_SYSTEM Достапно од PHP 8.0.0. Пред PHP 8.4.0, стандардната вредност беше 0.
opcache.jit_debug 0 INI_ALL Достапно од PHP 8.0.0
opcache.jit_bisect_limit 0 INI_ALL Достапно од PHP 8.0.0
opcache.jit_prof_threshold 0.005 INI_ALL Достапно од PHP 8.0.0
opcache.jit_max_root_traces 1024 INI_SYSTEM Достапно од PHP 8.0.0
opcache.jit_max_side_traces 128 INI_SYSTEM Достапно од PHP 8.0.0
opcache.jit_max_exit_counters 8192 INI_SYSTEM Достапно од PHP 8.0.0
opcache.jit_hot_loop 64 INI_SYSTEM Достапно од PHP 8.0.0
opcache.jit_hot_func 127 INI_SYSTEM Достапно од PHP 8.0.0
opcache.jit_hot_return 8 INI_SYSTEM Достапно од PHP 8.0.0
opcache.jit_hot_side_exit 8 INI_SYSTEM Достапно од PHP 8.0.0
opcache.jit_blacklist_root_trace 16 INI_ALL Достапно од PHP 8.0.0
opcache.jit_blacklist_side_trace 8 INI_ALL Достапно од PHP 8.0.0
opcache.jit_max_loop_unrolls 8 INI_ALL Достапно од PHP 8.0.0
opcache.jit_max_recursive_calls 2 INI_ALL Достапно од PHP 8.0.0
opcache.jit_max_recursive_returns 2 INI_ALL Достапно од PHP 8.0.0
opcache.jit_max_polymorphic_calls 2 INI_ALL Достапно од PHP 8.0.0
За подетални информации и дефиниции на INI_* режимите, видете го Каде може да се постави поставка за конфигурација.

Еве кратко објаснување на директивите за конфигурација.

opcache.enable bool
Го овозможува кешот на opcode. Кога е оневозможено, кодот не се оптимизира или кешира. Поставката opcache.enable не може да се овозможи во време на извршување преку ini_set(), може само да се оневозможи. Обидот да се овозможи во скрипта ќе генерира предупредување.
opcache.enable_cli bool
Го овозможува кешот на opcode за CLI верзијата на PHP.
opcache.memory_consumption int
Големината на меморијата за споделување што ја користи OPcache, во мегабајти. Минималната дозволена вредност е "8", што се применува ако е поставена помала вредност.
opcache.interned_strings_buffer int
Количината на меморија што се користи за складирање на интерни стрингови, во мегабајти. Максималната вредност е 32767 на 64-битни архитектури и 4095 на 32-битни архитектури.

Забелешка: Пред PHP 8.4.0, максималната вредност беше 4095 мегабајти на сите архитектури.

opcache.max_accelerated_files int
Максималниот број на клучеви (и затоа скрипти) во табелата со хеш на OPcache. Актуелната вредност што ќе се користи ќе биде првиот број во множеството прости броеви { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 } што е поголем или еднаков на конфигурираната вредност. Минималната вредност е 200. Максималната вредност е 1000000. Вредностите надвор од овој опсег се ограничуваат до дозволениот опсег.
opcache.max_wasted_percentage int
Максималниот процент на потрошена меморија што е дозволен пред да се закаже рестартирање, ако нема доволно слободна меморија. Максималната дозволена вредност е "50", which is enforced if a larger value is set.
opcache.use_cwd bool
Ако е овозможено, OPcache ја додава тековната работна директориум на клучот на скриптата, со што се елиминираат можните судири помеѓу датотеки со исто основно име. Оневозможувањето на оваа директива ја подобрува перформансата, но може да ги наруши постоечките апликации.
opcache.validate_timestamps bool

Ако е овозможено, OPcache ќе проверува за ажурирани скрипти на секои opcache.revalidate_freq секунди. Кога оваа директива е оневозможена, мора рачно да го ресетирате OPcache преку opcache_reset(), opcache_invalidate() или со рестартирање на веб-серверот за да стапат на сила промените во датотечниот систем.

Забелешка: OPcache may still validate the timestamp of a file at compile-time if opcache.file_update_protection or opcache.max_file_size OPcache може сè уште да го провери временскиот печат на датотека при компилација ако

opcache.revalidate_freq int
опциите се поставени на вредности различни од нула. 0 Колку често да се проверуваат временските печати на скриптите за ажурирања, во секунди. ќе резултира OPcache да проверува за ажурирања при секое барање. opcache.validate_timestamps е оневозможено.
opcache.revalidate_path bool
Оваа директива за конфигурација се игнорира ако include_path ќе се повторно користат. Така, ако датотека со исто име е на друго место во include_path, нема да биде пронајдена.
opcache.save_comments bool
Ако е оневозможено, сите коментари за документација ќе бидат отфрлени од кешот на opcode за да се намали големината на оптимизираниот код. Оневозможувањето на оваа директива за конфигурација може да ги наруши апликациите и рамките што се потпираат на парсирање на коментари за анотации, вклучувајќи ги Doctrine, Zend Framework 2 и PHPUnit.
opcache.fast_shutdown bool
Ако е овозможено, се користи брза секвенца за исклучување што не ослободува секој распределен блок, туку се потпира на менаџерот на меморија на Zend Engine за масовно ослободување на целиот сет на променливи за барање. Оваа директива е отстранета во PHP 7.2.0. Варијанта на брзата секвенца за исклучување е интегрирана во PHP и автоматски ќе се користи ако е можно.
opcache.enable_file_override bool
Кога е овозможено, кешот на opcode ќе се провери дали датотеката веќе е кеширана кога file_exists(), is_file() and is_readable() се повикуваат. Ова може да ја зголеми перформансата во апликациите што ја проверуваат постоењето и читливоста на PHP скриптите, но ризикува враќање на застарени податоци ако opcache.validate_timestamps е оневозможено.
opcache.optimization_level int
, што ги овозможува сите безбедни оптимизации. Оневозможувањето на оптимизациите или овозможувањето на небезбедни оптимизации е најмногу корисно за дебагирање/развој на оптимизаторот. 0x7FFEBFFFСекој бит во битниот маск овозможува специфичен премин за оптимизација: Битмаск за премин за оптимизација
Бит
Име на премин Едноставни оптимизации на пејпхол = NULL Стандардно
0 PASS_1 Неискористено (се спои во PASS_1) На
1 PASS_2 Unused (got merged into PASS_1) На
2 PASS_3 Simple jump optimization На
3 PASS_4 Call optimization На
4 PASS_5 Control Flow Graph based optimization На
5 PASS_6 Data Flow Analysis based optimization На
6 PASS_7 Whether call graph should be used for SSA-based optimizations На
7 PASS_8 Sparse conditional constant propagation На
8 PASS_9 Temporary variable optimization На
9 PASS_10 Removal of NOP opcodes На
10 PASS_11 Literal compaction На
11 PASS_12 Pre-compute call stack size На
12 PASS_13 Unused variable removal На
13 PASS_14 Dead code elimination На
14 PASS_15 Collect and substitute constant declarations (unsafe) Исклучено
15 PASS_16 Trivial function inlining (part of call optimization) На
16 (Flag) Ignore possibility of operator overloading (unsafe) Исклучено

Забелешка: Safe vs Unsafe Optimizations
Safe optimizations (enabled by default) preserve the exact behavior of PHP code while improving performance. They include dead code elimination, constant folding, and jump optimization. Unsafe optimizations (disabled by default) may alter behavior in edge cases:

  • (овозможено по стандард) може да го промени однесувањето во гранични случаи:Бит 14
    <?php
    echo getA(); // Outputs: "hello" instead of throwing an Error
    const A = "hello";
    function
    getA() { return A; }
  • : Собирање константи. Константите се заменуваат во време на компајлирање, игнорирајќи го редоследот на декларација во време на извршување:Бит 16 do_operation (на пр. GMP, BCMath: Игнорирање на преоптоварување на оператори. Небезбедно кога се користат класи со
opcache.inherited_hack bool
) во аритметички операции. Со декларации на типови, оптимизаторот може безбедно да ги примени истите оптимизации.
opcache.dups_fix bool
Оваа директива за конфигурација се игнорира.
opcache.blacklist_filename string
Оваа привремена поправка треба да биде овозможена само за да се заобиколат грешките "Cannot redeclare class". Локацијата на датотеката со црна листа на OPcache. Датотеката со црна листа е текстуална датотека што ги содржи имињата на датотеките што не треба да се забрзуваат, една по линија. Дозволени се ѕвездички, а може да се обезбедат и префикси. Редовите што започнуваат со точка-запирка се игнорираат како коментари.
; Matches a specific file.
/var/www/broken.php
; A prefix that matches all files starting with x.
/var/www/x
; A wildcard match.
/var/www/*-broken.php
opcache.max_file_size int
Едноставна датотека со црна листа може да изгледа вака: 0Максималната големина на датотеката што ќе се кешира, во бајти. Ако ова е
opcache.consistency_checks int
, сите датотеки ќе се кешираат.

Забелешка: Оневозможено од 8.1.18 и 8.2.5. Отстрането од PHP 8.3.0.

opcache.force_restart_timeout int
Ако е различно од нула, OPcache ќе ја провери кеш контролната сума на секои N барања, каде што N е вредноста на оваа директива за конфигурација. Ова треба да биде овозможено само при отстранување грешки, бидејќи ќе ја намали перформансата. Враќа opcache.log_verbosity_level Времетраењето на чекање за закажано рестартирање да започне ако кешот не е активен, во секунди. Ако истече времето, OPcache претпоставува дека нешто не е во ред и ќе ги убие процесите што држат заклучувања на кешот за да дозволи рестартирање. Оваа директива не е поддржана на Windows.
opcache.error_log string
е поставено на 2 или повеќе, ќе се запише предупредување во дневникот за грешки кога ќе се случи ова. stderrДневникот за грешки за грешките на OPcache. Празен стринг се третира исто како
opcache.log_verbosity_level int
, и ќе резултира со испраќање дневници до стандарден излез за грешки (што во повеќето случаи ќе биде дневникот за грешки на веб-серверот).
opcache.record_warnings bool
Нивото на детаљност на дневникот. Стандардно, се запишуваат само фатални грешки (ниво 0) и грешки (ниво 1). Други достапни нивоа се предупредувања (ниво 2), информативни пораки (ниво 3) и пораки за отстранување грешки (ниво 4).
opcache.preferred_memory_model string
Ако е овозможено, OPcache ќе ги запише предупредувањата при компајлирање и ќе ги репродуцира при следното вклучување, дури и ако е послужено од кешот. Possible values include mmap, shm, posix and win32.
opcache.protect_memory bool
Можни вредности вклучуваат
opcache.mmap_base string
Го штити меморијата што се споделува од неочекувани записи додека се извршуваат скрипти. Ова е корисно само за внатрешно дебагирање.
opcache.restrict_api string
Основата што се користи за сегменти на меморија што се споделуваат на Windows. Сите PHP процеси мора да ја мапираат меморијата што се споделува во истиот адресен простор. Користењето на оваа директива овозможува да се поправат грешките "Unable to reattach to base address". "" значи без ограничување.
opcache.file_update_protection string
Овозможува повикување на OPcache API функции само од PHP скрипти чија патека започнува од наведениот стринг. Стандардно 0Спречува кеширање на датотеки што се помалку од овој број на секунди стари. Ги штити од кеширање на нецелосно ажурирани датотеки. Во случај сите ажурирања на датотеки да се атомски, перформансите може да се зголемат со поставување на ова на
opcache.huge_code_pages bool
. Ова ќе овозможи датотеките да се кешираат веднаш.
opcache.lockfile_path string
Овозможува или оневозможува копирање на PHP код (текст сегмент) во HUGE PAGES. Ова треба да ги подобри перформансите, но бара соодветна конфигурација на ОС. Достапно на Linux од PHP 7.0.0, и на FreeBSD од PHP 7.4.0.
opcache.opt_debug_level string
Апсолутна патека што се користи за складирање на lockfiles што се споделуваат (само за *nix)
opcache.file_cache string
Произведува opcode dumps за дебагирање на различни фази на оптимизации. 0x10000 ќе прикаже opcodes како што ги произвел компајлерот пред да се изврши каква било оптимизација, додека 0x20000 ќе прикаже оптимизирани кодови. "" Овозможува и поставува директориум за кеш од второ ниво. Треба да ги подобри перформансите кога SHM меморијата е полна, при рестартирање на серверот или ресетирање на SHM. Стандардно
opcache.file_cache_only bool
оневозможува кеширање базирано на датотеки.

Забелешка: Овозможува или оневозможува кеширање на opcode во меморијата што се споделува.

opcache.file_cache_consistency_checks bool
Пред PHP 8.1.0, оневозможувањето на оваа директива со веќе пополнета кеш на датотеки бараше рачно чистење на кешот на датотеки.
opcache.file_cache_fallback bool
Овозможува или оневозможува валидација на checksum кога скриптата се вчитува од кеш на датотеки. opcache.file_cache_only=1 Подразумева
Безбедност: стандардниот сет на знаци

за одреден процес што не успеал повторно да се поврзе со меморијата што се споделува (само Windows). Потребно е експлицитно овозможување на кешот на датотеки.

opcache.validate_permission bool
Оневозможувањето на оваа опција за конфигурација може да спречи стартување на процеси и затоа не се препорачува.
opcache.validate_root bool
Ги валидира дозволите на кешираната датотека во однос на тековниот корисник.
opcache.preload string
Спречува судири на имиња во chroot'ed средини. Ова треба да биде овозможено во сите chroot'ed средини за да се спречи пристап до датотеки надвор од chroot. includeсо нивно вклучување или со користење на opcache_compile_file() функција. Сите ентитети (на пр. функции и класи) дефинирани во овие датотеки ќе бидат достапни за барањата веднаш, додека серверот не се исклучи.

Забелешка: FFI библиотеки

opcache.preload_user string
Овозможува претходно вчитување да се извршува како наведениот системски корисник. Ова е корисно за сервери што стартуваат како root пред да се префрлат на непривилегиран системски корисник. Претходното вчитување како root не е дозволено по дифолт од безбедносни причини, освен ако оваа директива не е експлицитно поставена на root. Од PHP 8.3.0, оваа директива не треба да се поставува за да се овозможи претходно вчитување додека се работи како root кога се користи CLI SAPI or phpdbg SAPI.
opcache.cache_id string

На Windows, сите процеси што работат на истото PHP SAPI под иста корисничка сметка со истиот ID на кешот споделуваат една OPcache инстанца. Вредноста на ID-то на кешот може слободно да се избере.

Совети

За IIS, различните групи за апликации можат да имаат своја OPcache инстанца со користење на променливата на околината APP_POOL_ID as opcache.cache_id.

opcache.jit string|int
За типична употреба, оваа опција прифаќа една од четирите вредности на стринг:
  • disable: Целосно оневозможено, не може да се овозможи во време на извршување.
  • off: Оневозможено, но може да се овозможи во време на извршување.
  • tracing/on: Користи JIT со следење. Овозможено по дифолт и препорачано за повеќето корисници.
  • function: Користи JIT на функции.

За напредна употреба, оваа опција прифаќа 4-цифрен цел број CRTO, каде што цифрите значат:

C (Оптимизациски знаменца специфични за процесорот)
  • 0: Оневозможи оптимизација специфична за процесорот.
  • 1: Овозможи употреба на AVX, ако процесорот го поддржува.
R (распределба на регистри)
  • 0: Не врши распределба на регистри.
  • 1: Изврши блок-локална распределба на регистри.
  • 2: Изврши глобална распределба на регистри.
T (тригер)
  • 0: Компилирај ги сите функции при вчитување на скриптата.
  • 1: Компилирај ги функциите при прво извршување.
  • 2: Профилирај ги функциите при прво барање и потоа компилирај ги најчестите функции.
  • 3: Профилирај во лет и компилирај ги најчестите функции.
  • 4: Моментално не се користи.
  • 5: Користи tracing JIT. Профилирај во лет и компилирај траги за најчестите сегменти од кодот.
O (ниво на оптимизација)
  • 0: Без JIT.
  • 1: Минимален JIT (повикај стандардни VM рачки).
  • 2: Вметни VM рачки.
  • 3: Користи инференција на типови.
  • 4: Користи граф на повици.
  • 5: Оптимизирај ја целата скрипта.
На "tracing" режимот одговара на CRTO = 1254симболот, на пр. "function" режимот одговара на CRTO = 1205.
opcache.jit_buffer_size int
Количината на споделена меморија што треба да се резервира за компилиран JIT код. Вредност нула го оневозможува JIT. Кога еден int се користи, вредноста се мери во бајти. Кратенка нотација, како што е опишано во овој ЧПП, исто така може да се користи.
opcache.jit_debug int
Маска од битови што специфицира кој JIT излез за дебагирање да се овозможи. За можни вредности, консултирајте се со » zend_jit.h (барај дефиниции на макроси што почнуваат со ZEND_JIT_DEBUG).
opcache.jit_bisect_limit int
Опција за отстранување грешки што ја оневозможува JIT компилацијата откако ќе се компилира одреден број функции. Ова може да помогне во бисекција на изворот на погрешна JIT компилација. Забелешка: оваа опција работи само кога тригерот за JIT е поставен на 0 (компилирај при вчитување на скрипта) или 1 (компилирај при прво извршување), на пр. opcache.jit=1215. Повеќе видете во opcache.jit option.
opcache.jit_prof_threshold float
Кога се користи режимот на тригер „профилирај при прво барање“, овој праг одредува дали една функција се смета за „жешка“. Бројот на повици до функцијата поделен со бројот на повици до сите функции мора да биде над прагот. На пример, праг од 0.005 значи дека функциите што сочинуваат повеќе од 0,5% од сите повици ќе бидат JIT компилирани.
opcache.jit_max_root_traces int
Максимален број на основни траги. Основната трага е тек на извршување што прво поминува низ една патека низ кодот, што е единица за JIT компилација. JIT нема да компилира нов код ако го достигне овој лимит.
opcache.jit_max_side_traces int
Максимален број на странични траги што една основна трага може да ги има. Страничната трага е друг тек на извршување што не ја следи патеката на компилираната основна трага. Страничните траги што припаѓаат на иста основна трага нема да бидат компилирани ако го достигнат овој лимит.
opcache.jit_max_exit_counters int
Максимален број на бројачи за излез од странични траги. Ова го ограничува вкупниот број на странични траги што може да постојат, низ сите основни траги.
opcache.jit_hot_loop int
По колку итерации една циклус се смета за „жешка“. Валиден опсег на вредности е [0,255]; за било кое поставување надвор од овој опсег, на пр. -1 or 256, наместо тоа ќе се користи стандардната вредност. 0 ќе го оневозможи JIT за следење и компилирање на било кои циклуси.
opcache.jit_hot_func int
По колку повици една функција се смета за „жешка“. Валиден опсег на вредности е [0,255]; за било кое поставување надвор од овој опсег, на пр. -1 or 256, наместо тоа ќе се користи стандардната вредност. 0 ќе го оневозможи JIT за следење и компилирање на било кои функции.
opcache.jit_hot_return int
По колку враќања едно враќање се смета за „жешко“. Валиден опсег на вредности е [0,255]; за било кое поставување надвор од овој опсег, на пр. -1 or 256, наместо тоа ќе се користи стандардната вредност. 0 ќе го оневозможи JIT за следење и компилирање на било кои враќања.
opcache.jit_hot_side_exit int
По колку излези еден страничен излез се смета за „жежок“. Валиден опсег на вредности е [0,255]; за било кое поставување надвор од овој опсег, на пр. -1 or 256, наместо тоа ќе се користи стандардната вредност. 0 ќе го оневозможи JIT за следење и компилирање на било кои странични излези.
opcache.jit_blacklist_root_trace int
Максимален број на обиди за компилација на основна трага пред таа да биде црн список.
opcache.jit_blacklist_side_trace int
Максимален број на обиди за компилација на странична трага пред таа да биде црн список.
opcache.jit_max_loop_unrolls int
Максимален број на обиди за одмотување на циклус во странична трага, обидувајќи се да се достигне основната трага и да се затвори надворешниот циклус.
opcache.jit_max_recursive_calls int
Максимален број на одмотани рекурзивни циклуси на повици.
opcache.jit_max_recursive_returns int
Максимален број на одмотани рекурзивни циклуси на враќање.
opcache.jit_max_polymorphic_calls int
Максимален број на обиди за инлајн полиморфни (динамички или методски) повици. Повиците над овој лимит се третираат како мегаморфни и не се инлајн.

Белешки од корисници 8 белешки

damien на overeem точка org
пред 9 години
When using PHP on a windows platform and enabling opcache, you might run into occasional 500 errors. These will appear to show up entirely random.

When this happens, your windows Event log (Windows Logs/Application) will show (probably multiple)  entries from Zend OPcache with Event ID 487. Further information will state the following error message: "Base address marks unusable memory region".

This issue can be resolved by adding the following to your php.ini:

    opcache.mmap_base = 0x20000000

Unfortunately I do not know the significance of the value "0x20000000". I can only tell you that this value works to solve the problem (Tried and tested)
carneiro на isharelife точка com точка br
пред 6 години
If you try to allocate more memory that is available using opcache.memory_consumption PHP stops working without any logs to help on debugging. This issue took me 4 hours to solve when creating a staging server with same configrations and less memory that was available on production server.
tizian точка schmidlin на gmail точка com
пред 6 години
It should be noted that according to the original RFC (https://wiki.php.net/rfc/preload) `opcache.preload` caches preloaded files *forever* for all instances of the underlying PHP process.

That means, that hosting multiple websites on the same server might result in some unexpected behaviour.

Concrete example: 
- you have a Symfony 3.2 App (which might be an endpoint of some type) and a Symfony 3.4 App (which might be your main application)
- both apps have a main Class called App that is in the same namespace (as it is usual, since the class name is unique to each project)
- depending on which app is loaded first, one or the other will work, since `opcache.preload` has no file based distinction of what class is used where and simply provides them to the user space

This is avoidable by simply not preloading user space classes or, if you work with FPM, by defining a pool for each app.

In order to optimize memory consumption, you might also use a common FPM Pool for all Symfony 3.4 Apps and preload the entire framework in there and simply not preload user space classes (which might be cached by opcache anyway but is slower, since it will be checked if the file has changed on every request).
wessos на example точка org
пред 7 години
The optimization levels as of php 7.3 are the following:

#define ZEND_OPTIMIZER_PASS_1        (1<<0)   /* CSE, STRING construction     */
#define ZEND_OPTIMIZER_PASS_2        (1<<1)   /* Constant conversion and jumps */
#define ZEND_OPTIMIZER_PASS_3        (1<<2)   /* ++, +=, series of jumps      */
#define ZEND_OPTIMIZER_PASS_4        (1<<3)   /* INIT_FCALL_BY_NAME -> DO_FCALL */
#define ZEND_OPTIMIZER_PASS_5        (1<<4)   /* CFG based optimization       */
#define ZEND_OPTIMIZER_PASS_6        (1<<5)   /* DFA based optimization       */
#define ZEND_OPTIMIZER_PASS_7        (1<<6)   /* CALL GRAPH optimization      */
#define ZEND_OPTIMIZER_PASS_8        (1<<7)   /* SCCP (constant propagation)  */
#define ZEND_OPTIMIZER_PASS_9        (1<<8)   /* TMP VAR usage                */
#define ZEND_OPTIMIZER_PASS_10        (1<<9)   /* NOP removal                 */
#define ZEND_OPTIMIZER_PASS_11        (1<<10)  /* Merge equal constants       */
#define ZEND_OPTIMIZER_PASS_12        (1<<11)  /* Adjust used stack           */
#define ZEND_OPTIMIZER_PASS_13        (1<<12)  /* Remove unused variables     */
#define ZEND_OPTIMIZER_PASS_14        (1<<13)  /* DCE (dead code elimination) */
#define ZEND_OPTIMIZER_PASS_15        (1<<14)  /* (unsafe) Collect constants */
#define ZEND_OPTIMIZER_PASS_16        (1<<15)  /* Inline functions */

Source: https://lxr.room11.org/xref/php-src%40master/ext/opcache/Optimizer/zend_optimizer.h
bdurand на ensemblegroup точка net
пред 9 години
It would appear as though the [opcache.enable] setting is indeed NOT PHP_INI_ALL.
For changing it within user.ini yields no effect when disabled at global level. user.ini is ignored for that setting.
JReezy
пред 1 година
Despite the set of values for opcache.max_accelerated_files including the value 1048793, the maximum as stated is 1000000. If you select a number above 1000000 the value is set its default which is 10000.
olliejones на gmail точка com
13 days ago
In the OPcache, notice that the memory used for interned (deduplicated) text strings comes out of the total OPcache shared memory storage size.

So, for example, if you have these settings: 

opcache.memory_consumption=128

opcache.interned_strings_buffer=32

you have only left 96MB  (MiB) for OPcache's bytecode cache.
daniel на elementor точка com
пред 1 година
When opcache.use_cwd=0 include/require of relative paths from different directories will both resolve to the same (first) file.

Example dir structure:
app1
  index.php
  lib.php
app2
  index.php
  lib.php

both index.php(s):
include "lib.php"; 

app1/lib.php:
echo "app1";

app2/lib.php:
echo "app2";

both will echo "app1".
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.