[{"data":1,"prerenderedAt":2545},["ShallowReactive",2],{"navigation":3,"/docs/reference/environment-variable-specification":221,"/docs/reference/environment-variable-specification-surround":2540},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","/docs","docs",[9,12,56,85,132,153,178,195,208],{"title":10,"path":6,"stem":11},"","docs/index",{"title":13,"path":14,"stem":15,"children":16,"icon":55},"Getting Started","/docs/getting-started","docs/1.getting-started/1.index",[17,19,23,27,31,35,39,43,47,51],{"title":18,"path":14,"stem":15},"Introduction",{"title":20,"path":21,"stem":22},"Container Basics","/docs/getting-started/container-basics","docs/1.getting-started/2.container-basics",{"title":24,"path":25,"stem":26},"Installation","/docs/getting-started/installation","docs/1.getting-started/3.installation",{"title":28,"path":29,"stem":30},"These Images vs Others","/docs/getting-started/these-images-vs-others","docs/1.getting-started/4.these-images-vs-others",{"title":32,"path":33,"stem":34},"Choosing an Image","/docs/getting-started/choosing-an-image","docs/1.getting-started/5.choosing-an-image",{"title":36,"path":37,"stem":38},"Default Configurations","/docs/getting-started/default-configurations","docs/1.getting-started/6.default-configurations",{"title":40,"path":41,"stem":42},"Upgrade Guide","/docs/getting-started/upgrade-guide","docs/1.getting-started/7.upgrade-guide",{"title":44,"path":45,"stem":46},"Changelog","/docs/getting-started/changelog","docs/1.getting-started/8.changelog",{"title":48,"path":49,"stem":50},"About","/docs/getting-started/about","docs/1.getting-started/9.about",{"title":52,"path":53,"stem":54},"Contributing","/docs/getting-started/contributing","docs/1.getting-started/99.contributing",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Image Variations","/docs/image-variations","docs/2.image-variations",[61,65,69,73,77,81],{"title":62,"path":63,"stem":64},"CLI","/docs/image-variations/cli","docs/2.image-variations/cli",{"title":66,"path":67,"stem":68},"FPM","/docs/image-variations/fpm","docs/2.image-variations/fpm",{"title":70,"path":71,"stem":72},"FPM-Apache","/docs/image-variations/fpm-apache","docs/2.image-variations/fpm-apache",{"title":74,"path":75,"stem":76},"FPM-NGINX","/docs/image-variations/fpm-nginx","docs/2.image-variations/fpm-nginx",{"title":78,"path":79,"stem":80},"FrankenPHP","/docs/image-variations/frankenphp","docs/2.image-variations/frankenphp",{"title":82,"path":83,"stem":84},"Unit (Deprecated)","/docs/image-variations/unit","docs/2.image-variations/unit",{"title":86,"path":87,"stem":88,"children":89,"page":55},"Framework Guides","/docs/framework-guides","docs/3.framework-guides",[90,123],{"title":91,"icon":55,"defaultOpen":55,"path":92,"stem":93,"children":94,"page":55},"Laravel","/docs/framework-guides/laravel","docs/3.framework-guides/1.laravel",[95,99,103,107,111,115,119],{"title":96,"path":97,"stem":98},"Automations","/docs/framework-guides/laravel/automations","docs/3.framework-guides/1.laravel/1.automations",{"title":100,"path":101,"stem":102},"Task Scheduler","/docs/framework-guides/laravel/task-scheduler","docs/3.framework-guides/1.laravel/2.task-scheduler",{"title":104,"path":105,"stem":106},"Queue","/docs/framework-guides/laravel/queue","docs/3.framework-guides/1.laravel/3.queue",{"title":108,"path":109,"stem":110},"Horizon","/docs/framework-guides/laravel/horizon","docs/3.framework-guides/1.laravel/4.horizon",{"title":112,"path":113,"stem":114},"Reverb","/docs/framework-guides/laravel/reverb","docs/3.framework-guides/1.laravel/4.reverb",{"title":116,"path":117,"stem":118},"Nightwatch","/docs/framework-guides/laravel/nightwatch","docs/3.framework-guides/1.laravel/5.nightwatch",{"title":120,"path":121,"stem":122},"Octane","/docs/framework-guides/laravel/octane","docs/3.framework-guides/1.laravel/octane",{"title":124,"icon":55,"defaultOpen":55,"path":125,"stem":126,"children":127,"page":55},"WordPress","/docs/framework-guides/wordpress","docs/3.framework-guides/2.wordpress",[128],{"title":129,"path":130,"stem":131},"Using Docker with WordPress","/docs/framework-guides/wordpress/using-wordpress-with-docker","docs/3.framework-guides/2.wordpress/4.using-wordpress-with-docker",{"title":133,"path":134,"stem":135,"children":136,"page":55},"Deployment And Production","/docs/deployment-and-production","docs/4.deployment-and-production",[137,141,145,149],{"title":138,"path":139,"stem":140},"Development to Production","/docs/deployment-and-production/development-to-production","docs/4.deployment-and-production/2.development-to-production",{"title":142,"path":143,"stem":144},"Packaging Your App for Deployment","/docs/deployment-and-production/packaging-your-app-for-deployment","docs/4.deployment-and-production/3.packaging-your-app-for-deployment",{"title":146,"path":147,"stem":148},"Configuring SSL","/docs/deployment-and-production/configuring-ssl","docs/4.deployment-and-production/4.configuring-ssl",{"title":150,"path":151,"stem":152},"Choosing a Host","/docs/deployment-and-production/choosing-a-host","docs/4.deployment-and-production/5.choosing-a-host",{"title":154,"icon":55,"defaultOpen":55,"path":155,"stem":156,"children":157,"page":55},"Advanced Guides","/docs/guide","docs/5.guide",[158,162,166,170,174],{"title":159,"path":160,"stem":161},"Migrating from official PHP images","/docs/guide/migrating-from-official-php-images","docs/5.guide/1.migrating-from-official-php-images",{"title":163,"path":164,"stem":165},"Using Healthchecks With Laravel","/docs/guide/using-healthchecks-with-laravel","docs/5.guide/2.using-healthchecks-with-laravel",{"title":167,"path":168,"stem":169},"Using S6 Overlay","/docs/guide/using-s6-overlay","docs/5.guide/2.using-s6-overlay",{"title":171,"path":172,"stem":173},"Understanding File Permissions","/docs/guide/understanding-file-permissions","docs/5.guide/3.understanding-file-permissions",{"title":175,"path":176,"stem":177},"Configuring Trusted Proxies","/docs/guide/configuring-trusted-proxies","docs/5.guide/4.configuring-trusted-proxies",{"title":179,"icon":55,"defaultOpen":55,"path":180,"stem":181,"children":182,"page":55},"Customization","/docs/customizing-the-image","docs/6.customizing-the-image",[183,187,191],{"title":184,"path":185,"stem":186},"Changing php.ini settings","/docs/customizing-the-image/changing-common-php-settings","docs/6.customizing-the-image/1.changing-common-php-settings",{"title":188,"path":189,"stem":190},"Installing PHP extensions","/docs/customizing-the-image/installing-additional-php-extensions","docs/6.customizing-the-image/2.installing-additional-php-extensions",{"title":192,"path":193,"stem":194},"Adding Start Up Scripts","/docs/customizing-the-image/adding-your-own-start-up-scripts","docs/6.customizing-the-image/3.adding-your-own-start-up-scripts",{"title":196,"path":197,"stem":198,"children":199,"page":55},"Troubleshooting","/docs/troubleshooting","docs/7.troubleshooting",[200,204],{"title":201,"path":202,"stem":203},"Common Issues","/docs/troubleshooting/common-issues","docs/7.troubleshooting/1.common-issues",{"title":205,"path":206,"stem":207},"Getting Help","/docs/troubleshooting/getting-help","docs/7.troubleshooting/2.getting-help",{"title":209,"path":210,"stem":211,"children":212,"page":55},"Reference","/docs/reference","docs/8.reference",[213,217],{"title":214,"path":215,"stem":216},"Environment Variable Specification","/docs/reference/environment-variable-specification","docs/8.reference/1.environment-variable-specification",{"title":218,"path":219,"stem":220},"Command Reference","/docs/reference/command-reference","docs/8.reference/2.command-reference",{"id":222,"title":214,"body":223,"description":2532,"extension":250,"links":2533,"meta":2534,"navigation":2537,"path":215,"redirect":2533,"seo":2538,"stem":216,"__hash__":2539},"docs/docs/8.reference/1.environment-variable-specification.md",{"type":224,"value":225,"toc":2528},"minimark",[226,233,236,255,260],[227,228,229],"lead-p",{},[230,231,232],"p",{},"Environment variables are a very powerful way to customize your container. Use the document below to see what options are available to customize without requiring you to mount any custom configuration files.",[230,234,235],{},"Setting environment variables all depends on what method you're using to run your container, but for most cases you might be using Docker Compose.",[237,238],"u-button",{"ariaLabel":239,"className":240,"color":248,"label":249,"size":250,"target":251,"to":252,"trailing-icon":253,"variant":254},"Learn how environment variables work with Docker Compose",[241,242,243,244,245,246,247],"font-bold","ring","ring-inset","ring-blue-600","text-blue-600","hover:ring-blue-500","hover:text-blue-500","primary","Learn environment variables work with Docker Compose","md","_blank","https://docs.docker.com/compose/environment-variables/#set-environment-variables-in-containers","i-lucide-arrow-right","outline",[256,257,259],"h2",{"id":258},"available-environment-variables","Available Environment Variables",[261,262,263,287],"table",{},[264,265,266],"thead",{},[267,268,269,277,282],"tr",{},[270,271,273],"th",{"align":272},"center",[274,275,276],"strong",{},"Variable Name",[270,278,279],{"align":272},[274,280,281],{},"Description",[270,283,284],{"align":272},[274,285,286],{},"Used in variation",[288,289,290,318,338,357,377,397,417,437,454,469,489,509,529,558,575,602,638,658,678,702,727,754,790,842,865,885,909,929,949,969,990,1009,1029,1047,1067,1085,1104,1124,1144,1163,1182,1208,1226,1243,1260,1277,1293,1311,1337,1355,1372,1433,1451,1468,1489,1509,1529,1548,1567,1587,1607,1627,1646,1665,1689,1709,1727,1755,1774,1792,1811,1829,1847,1865,1882,1901,1921,1941,1961,1981,2012,2031,2051,2071,2090,2109,2129,2149,2168,2187,2206,2230,2249,2269,2289,2308,2327,2347,2370,2390,2411,2427,2446,2469,2491],"tbody",{},[267,291,292,306,315],{},[293,294,295,299,302],"td",{"align":272},[296,297,298],"code",{},"APACHE_DOCUMENT_ROOT",[300,301],"br",{},[303,304,305],"em",{},"Default: \"/var/www/html/public\"",[293,307,308,309,314],{"align":272},"Sets the directory from which Apache will serve files. (",[310,311,313],"a",{"target":251,"href":312},"https://httpd.apache.org/docs/2.4/mod/core.html#documentroot","Official docs",")",[293,316,317],{"align":272},"fpm-apache",[267,319,320,330,336],{},[293,321,322,325,327],{"align":272},[296,323,324],{},"APACHE_HTTP_PORT",[300,326],{},[303,328,329],{},"Default: \"8080\"",[293,331,332,333,314],{"align":272},"Set the port for HTTP. (",[310,334,313],{"target":251,"href":335},"https://httpd.apache.org/docs/2.4/mod/core.html#port",[293,337,317],{"align":272},[267,339,340,350,355],{},[293,341,342,345,347],{"align":272},[296,343,344],{},"APACHE_HTTPS_PORT",[300,346],{},[303,348,349],{},"Default: \"8443\"",[293,351,352,353,314],{"align":272},"Set the port for HTTPS. (",[310,354,313],{"target":251,"href":335},[293,356,317],{"align":272},[267,358,359,369,375],{},[293,360,361,364,366],{"align":272},[296,362,363],{},"APACHE_MAX_CONNECTIONS_PER_CHILD",[300,365],{},[303,367,368],{},"Default: \"0\"",[293,370,371,372,314],{"align":272},"Sets the limit on the number of connections that an individual child server process will handle.(",[310,373,313],{"target":251,"href":374},"https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxconnectionsperchild",[293,376,317],{"align":272},[267,378,379,389,395],{},[293,380,381,384,386],{"align":272},[296,382,383],{},"APACHE_MAX_REQUEST_WORKERS",[300,385],{},[303,387,388],{},"Default: \"150\"",[293,390,391,392,314],{"align":272},"Sets the limit on the number of simultaneous requests that will be served. (",[310,393,313],{"target":251,"href":394},"https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers",[293,396,317],{"align":272},[267,398,399,409,415],{},[293,400,401,404,406],{"align":272},[296,402,403],{},"APACHE_MAX_SPARE_THREADS",[300,405],{},[303,407,408],{},"Default: \"75\"",[293,410,411,412,314],{"align":272},"Maximum number of idle threads. (",[310,413,313],{"target":251,"href":414},"https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxsparethreads",[293,416,317],{"align":272},[267,418,419,429,435],{},[293,420,421,424,426],{"align":272},[296,422,423],{},"APACHE_MIN_SPARE_THREADS",[300,425],{},[303,427,428],{},"Default: \"10\"",[293,430,431,432,314],{"align":272},"Minimum number of idle threads to handle request spikes. (",[310,433,313],{"target":251,"href":434},"https://httpd.apache.org/docs/2.4/mod/mpm_common.html#minsparethreads",[293,436,317],{"align":272},[267,438,439,449,452],{},[293,440,441,444,446],{"align":272},[296,442,443],{},"APACHE_RUN_GROUP",[300,445],{},[303,447,448],{},"Default: \"www-data\"",[293,450,451],{"align":272},"Set the username of what Apache should run as.",[293,453,317],{"align":272},[267,455,456,465,467],{},[293,457,458,461,463],{"align":272},[296,459,460],{},"APACHE_RUN_USER",[300,462],{},[303,464,448],{},[293,466,451],{"align":272},[293,468,317],{"align":272},[267,470,471,481,487],{},[293,472,473,476,478],{"align":272},[296,474,475],{},"APACHE_START_SERVERS",[300,477],{},[303,479,480],{},"Default: \"2\"",[293,482,483,484,314],{"align":272},"Sets the number of child server processes created on startup.(",[310,485,313],{"target":251,"href":486},"https://httpd.apache.org/docs/2.4/mod/mpm_common.html#startservers",[293,488,317],{"align":272},[267,490,491,501,507],{},[293,492,493,496,498],{"align":272},[296,494,495],{},"APACHE_THREAD_LIMIT",[300,497],{},[303,499,500],{},"Default: \"64\"",[293,502,503,504,314],{"align":272},"Set the maximum configured value for ThreadsPerChild for the lifetime of the Apache httpd process. (",[310,505,313],{"target":251,"href":506},"https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadlimit",[293,508,317],{"align":272},[267,510,511,521,527],{},[293,512,513,516,518],{"align":272},[296,514,515],{},"APACHE_THREADS_PER_CHILD",[300,517],{},[303,519,520],{},"Default: \"25\"",[293,522,523,524,314],{"align":272},"This directive sets the number of threads created by each child process. (",[310,525,313],{"target":251,"href":526},"https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadsperchild",[293,528,317],{"align":272},[267,530,531,541,555],{},[293,532,533,536,538],{"align":272},[296,534,535],{},"APP_BASE_DIR",[300,537],{},[303,539,540],{},"Default: \"/var/www/html\"",[293,542,543,544,547,548,550,551,554],{"align":272},"Change this only if you mount your application to a different directory within the container. ℹ️ Be sure to change ",[296,545,546],{},"NGINX_WEBROOT",", ",[296,549,298],{},", or ",[296,552,553],{},"CADDY_SERVER_ROOT"," if it applies to your use case as well.",[293,556,557],{"align":272},"all",[267,559,560,570,573],{},[293,561,562,565,567],{"align":272},[296,563,564],{},"AUTORUN_DEBUG",[300,566],{},[303,568,569],{},"Default: \"false\"",[293,571,572],{"align":272},"Enable debug mode for the Laravel automations.",[293,574,557],{"align":272},[267,576,577,586,600],{},[293,578,579,582,584],{"align":272},[296,580,581],{},"AUTORUN_ENABLED",[300,583],{},[303,585,569],{},[293,587,588,589,592,593,595,596,599],{"align":272},"Enable or disable all automations. It's advised to set this to ",[296,590,591],{},"false"," in certain CI environments (especially during a composer install). If this is set to ",[296,594,591],{},", all ",[296,597,598],{},"AUTORUN_*"," behaviors will also be disabled.",[293,601,557],{"align":272},[267,603,604,614,636],{},[293,605,606,609,611],{"align":272},[296,607,608],{},"AUTORUN_LARAVEL_OPTIMIZE",[300,610],{},[303,612,613],{},"Default: \"true\"",[293,615,616,617,620,621,624,625,628,629,631,632,635],{"align":272},"Automatically run \"php artisan optimize\" on container, attempting to ",[296,618,619],{},"--except"," in Laravel > ",[296,622,623],{},"v11.38.0"," (",[310,626,313],{"target":251,"href":627},"https://laravel.com/docs/12.x/deployment#optimization",") ",[300,630],{},"ℹ️ Requires ",[296,633,634],{},"AUTORUN_ENABLED = true"," to run.",[293,637,557],{"align":272},[267,639,640,649,656],{},[293,641,642,645,647],{"align":272},[296,643,644],{},"AUTORUN_LARAVEL_CONFIG_CACHE",[300,646],{},[303,648,613],{},[293,650,651,652,631,654,635],{"align":272},"Automatically run \"php artisan config:cache\" on container start. ",[300,653],{},[296,655,634],{},[293,657,557],{"align":272},[267,659,660,669,676],{},[293,661,662,665,667],{"align":272},[296,663,664],{},"AUTORUN_LARAVEL_EVENT_CACHE",[300,666],{},[303,668,613],{},[293,670,671,672,631,674,635],{"align":272},"Automatically run \"php artisan event:cache\" on container start. ",[300,673],{},[296,675,634],{},[293,677,557],{"align":272},[267,679,680,689,700],{},[293,681,682,685,687],{"align":272},[296,683,684],{},"AUTORUN_LARAVEL_MIGRATION",[300,686],{},[303,688,613],{},[293,690,691,692,695,696,631,698,635],{"align":272},"Automatically run ",[296,693,694],{},"php artisan migrate --force"," on container start.  ",[300,697],{},[296,699,634],{},[293,701,557],{"align":272},[267,703,704,714,725],{},[293,705,706,709,711],{"align":272},[296,707,708],{},"AUTORUN_LARAVEL_MIGRATION_DATABASE",[300,710],{},[303,712,713],{},"Default: null",[293,715,716,717,720,721,631,723,635],{"align":272},"Run migrations on a specific database. In the rare case you need to use multiple databases, you can provide a comma-delimited list of connection names (e.g., \"mysql,pgsql\"). If ",[296,718,719],{},"null",", it will use the default database connection. ",[300,722],{},[296,724,634],{},[293,726,557],{"align":272},[267,728,729,738,752],{},[293,730,731,734,736],{"align":272},[296,732,733],{},"AUTORUN_LARAVEL_MIGRATION_FORCE",[300,735],{},[303,737,613],{},[293,739,740,741,743,744,747,748,631,750,635],{"align":272},"Force migrations to run in production without confirmation. Set to ",[296,742,591],{}," to disable the ",[296,745,746],{},"--force"," flag. ",[300,749],{},[296,751,634],{},[293,753,557],{"align":272},[267,755,756,765,788],{},[293,757,758,761,763],{"align":272},[296,759,760],{},"AUTORUN_LARAVEL_MIGRATION_ISOLATION",[300,762],{},[303,764,569],{},[293,766,767,768,771,772,774,631,776,635,778,780,781,783,784,787],{"align":272},"Requires Laravel v9.38.0 or higher and a database that supports table locks. Automatically run ",[296,769,770],{},"php artisan migrate --force --isolated"," on container start. ",[300,773],{},[300,775],{},[296,777,634],{},[300,779],{},"ℹ️ Does not work with SQLite.",[300,782],{},"ℹ️ Only works with ",[296,785,786],{},"AUTORUN_LARAVEL_MIGRATION_MODE = default",".",[293,789,557],{"align":272},[267,791,792,802,840],{},[293,793,794,797,799],{"align":272},[296,795,796],{},"AUTORUN_LARAVEL_MIGRATION_MODE",[300,798],{},[303,800,801],{},"Default: \"default\"",[293,803,804,805,808,809,812,813,808,816,819,820,808,823,826,827,631,829,635,831,833,834,836,837,839],{"align":272},"Set the migration mode. Valid options: ",[296,806,807],{},"default"," (runs ",[296,810,811],{},"php artisan migrate","), ",[296,814,815],{},"fresh",[296,817,818],{},"php artisan migrate:fresh","), or ",[296,821,822],{},"refresh",[296,824,825],{},"php artisan migrate:refresh","). ",[300,828],{},[296,830,634],{},[300,832],{},"⚠️ WARNING:",[296,835,815],{}," and ",[296,838,822],{}," are destructive and will drop all tables. Only use these in development or testing environments.",[293,841,557],{"align":272},[267,843,844,853,863],{},[293,845,846,849,851],{"align":272},[296,847,848],{},"AUTORUN_LARAVEL_MIGRATION_SEED",[300,850],{},[303,852,569],{},[293,854,855,856,747,859,631,861,635],{"align":272},"Automatically seed the database after migrations by adding the ",[296,857,858],{},"--seed",[300,860],{},[296,862,634],{},[293,864,557],{"align":272},[267,866,867,876,883],{},[293,868,869,872,874],{"align":272},[296,870,871],{},"AUTORUN_LARAVEL_MIGRATION_SKIP_DB_CHECK",[300,873],{},[303,875,569],{},[293,877,878,879,631,881,635],{"align":272},"Skip the database connection check before running migrations. ",[300,880],{},[296,882,634],{},[293,884,557],{"align":272},[267,886,887,897,907],{},[293,888,889,892,894],{"align":272},[296,890,891],{},"AUTORUN_LARAVEL_MIGRATION_TIMEOUT",[300,893],{},[303,895,896],{},"Default: \"30\"",[293,898,899,900,902,903,631,905,635],{"align":272},"The number of seconds to wait for the database to come online before attempting ",[296,901,811],{},".. ",[300,904],{},[296,906,634],{},[293,908,557],{"align":272},[267,910,911,920,927],{},[293,912,913,916,918],{"align":272},[296,914,915],{},"AUTORUN_LARAVEL_ROUTE_CACHE",[300,917],{},[303,919,613],{},[293,921,922,923,631,925,635],{"align":272},"Automatically run \"php artisan route:cache\" on container start. ",[300,924],{},[296,926,634],{},[293,928,557],{"align":272},[267,930,931,940,947],{},[293,932,933,936,938],{"align":272},[296,934,935],{},"AUTORUN_LARAVEL_STORAGE_LINK",[300,937],{},[303,939,613],{},[293,941,942,943,631,945,635],{"align":272},"Automatically run \"php artisan storage:link\" on container start. ",[300,944],{},[296,946,634],{},[293,948,557],{"align":272},[267,950,951,960,967],{},[293,952,953,956,958],{"align":272},[296,954,955],{},"AUTORUN_LARAVEL_VIEW_CACHE",[300,957],{},[303,959,613],{},[293,961,962,963,631,965,635],{"align":272},"Automatically run \"php artisan view:cache\" on container start. ",[300,964],{},[296,966,634],{},[293,968,557],{"align":272},[267,970,971,981,987],{},[293,972,973,976,978],{"align":272},[296,974,975],{},"CADDY_ADMIN",[300,977],{},[303,979,980],{},"Default: \"off\"",[293,982,983,984,314],{"align":272},"Enable Caddy admin interface. (",[310,985,313],{"target":251,"href":986},"https://caddyserver.com/docs/caddyfile/options#admin",[293,988,989],{"align":272},"frankenphp",[267,991,992,1001,1007],{},[293,993,994,997,999],{"align":272},[296,995,996],{},"CADDY_AUTO_HTTPS",[300,998],{},[303,1000,980],{},[293,1002,1003,1004,314],{"align":272},"Enable automatic HTTPS. (",[310,1005,313],{"target":251,"href":1006},"https://caddyserver.com/docs/caddyfile/options#auto-https",[293,1008,989],{"align":272},[267,1010,1011,1021,1027],{},[293,1012,1013,1016,1018],{"align":272},[296,1014,1015],{},"CADDY_GLOBAL_OPTIONS",[300,1017],{},[303,1019,1020],{},"Default: \"\"",[293,1022,1023,1024,314],{"align":272},"Set global options for the Caddy server. (",[310,1025,313],{"target":251,"href":1026},"https://caddyserver.com/docs/caddyfile/options",[293,1028,989],{"align":272},[267,1030,1031,1040,1045],{},[293,1032,1033,1036,1038],{"align":272},[296,1034,1035],{},"CADDY_HTTP_PORT",[300,1037],{},[303,1039,329],{},[293,1041,332,1042,314],{"align":272},[310,1043,313],{"target":251,"href":1044},"https://caddyserver.com/docs/caddyfile/options#http-port",[293,1046,989],{"align":272},[267,1048,1049,1059,1065],{},[293,1050,1051,1054,1056],{"align":272},[296,1052,1053],{},"CADDY_HTTP_SERVER_ADDRESS",[300,1055],{},[303,1057,1058],{},"Default: \"http://\"",[293,1060,1061,1062,314],{"align":272},"Set the server address for HTTP. (",[310,1063,313],{"target":251,"href":1064},"https://caddyserver.com/docs/caddyfile/concepts#addresses",[293,1066,989],{"align":272},[267,1068,1069,1078,1083],{},[293,1070,1071,1074,1076],{"align":272},[296,1072,1073],{},"CADDY_HTTPS_PORT",[300,1075],{},[303,1077,349],{},[293,1079,352,1080,314],{"align":272},[310,1081,313],{"target":251,"href":1082},"https://caddyserver.com/docs/caddyfile/options#https-port",[293,1084,989],{"align":272},[267,1086,1087,1097,1102],{},[293,1088,1089,1092,1094],{"align":272},[296,1090,1091],{},"CADDY_HTTPS_SERVER_ADDRESS",[300,1093],{},[303,1095,1096],{},"Default: \"https://\"",[293,1098,1099,1100,314],{"align":272},"Set the server address for HTTPS. (",[310,1101,313],{"target":251,"href":1064},[293,1103,989],{"align":272},[267,1105,1106,1116,1122],{},[293,1107,1108,1111,1113],{"align":272},[296,1109,1110],{},"CADDY_LOG_FORMAT",[300,1112],{},[303,1114,1115],{},"Default: \"console\"",[293,1117,1118,1119,314],{"align":272},"Set the format for the Caddy log. (",[310,1120,313],{"target":251,"href":1121},"https://caddyserver.com/docs/caddyfile/directives/log#format-modules",[293,1123,989],{"align":272},[267,1125,1126,1136,1142],{},[293,1127,1128,1131,1133],{"align":272},[296,1129,1130],{},"CADDY_LOG_OUTPUT",[300,1132],{},[303,1134,1135],{},"Default: \"stdout\"",[293,1137,1138,1139,314],{"align":272},"Set the output for the Caddy log. (",[310,1140,313],{"target":251,"href":1141},"https://caddyserver.com/docs/caddyfile/directives/log#output-modules",[293,1143,989],{"align":272},[267,1145,1146,1155,1161],{},[293,1147,1148,1151,1153],{"align":272},[296,1149,1150],{},"CADDY_PHP_SERVER_OPTIONS",[300,1152],{},[303,1154,1020],{},[293,1156,1157,1158,314],{"align":272},"Set PHP server options for the Caddy server. (",[310,1159,313],{"target":251,"href":1160},"https://frankenphp.dev/docs/config/#caddyfile-config",[293,1162,989],{"align":272},[267,1164,1165,1174,1180],{},[293,1166,1167,1170,1172],{"align":272},[296,1168,1169],{},"CADDY_SERVER_EXTRA_DIRECTIVES",[300,1171],{},[303,1173,1020],{},[293,1175,1176,1177,314],{"align":272},"Set extra directives for the Caddy server. (",[310,1178,313],{"target":251,"href":1179},"https://caddyserver.com/docs/caddyfile/directives",[293,1181,989],{"align":272},[267,1183,1184,1194,1206],{},[293,1185,1186,1189,1191],{"align":272},[296,1187,1188],{},"CADDY_SERVER_LOG_LEVEL",[300,1190],{},[303,1192,1193],{},"Default: \"warn\"",[293,1195,1196,1197,1200,1201,1203,1204,314],{"align":272},"Set the server log level for the Caddy server. This can also be changed with ",[296,1198,1199],{},"LOG_OUTPUT_LEVEL",", but ",[296,1202,1188],{}," takes precedence. (",[310,1205,313],{"target":251,"href":1121},[293,1207,989],{"align":272},[267,1209,1210,1218,1224],{},[293,1211,1212,1214,1216],{"align":272},[296,1213,553],{},[300,1215],{},[303,1217,305],{},[293,1219,1220,1221,314],{"align":272},"Set the root directory for the Caddy server. (",[310,1222,313],{"target":251,"href":1223},"https://caddyserver.com/docs/caddyfile/directives/root",[293,1225,989],{"align":272},[267,1227,1228,1238,1241],{},[293,1229,1230,1233,1235],{"align":272},[296,1231,1232],{},"COMPOSER_ALLOW_SUPERUSER",[300,1234],{},[303,1236,1237],{},"Default: \"1\"",[293,1239,1240],{"align":272},"Disable warning about running as super-user",[293,1242,557],{"align":272},[267,1244,1245,1255,1258],{},[293,1246,1247,1250,1252],{"align":272},[296,1248,1249],{},"COMPOSER_HOME",[300,1251],{},[303,1253,1254],{},"Default: \"/composer\"",[293,1256,1257],{"align":272},"The COMPOSER_HOME variable allows you to change the Composer home directory. This is a hidden, global (per-user on the machine) directory that is shared between all projects.",[293,1259,557],{"align":272},[267,1261,1262,1272,1275],{},[293,1263,1264,1267,1269],{"align":272},[296,1265,1266],{},"COMPOSER_MAX_PARALLEL_HTTP",[300,1268],{},[303,1270,1271],{},"Default: \"24\"",[293,1273,1274],{"align":272},"Set to an integer to configure how many files can be downloaded in parallel. Composer ships with 12 by default and must be between 1 and 50. If your proxy has issues with concurrency maybe you want to lower this. Increasing it should generally not result in performance gains.",[293,1276,557],{"align":272},[267,1278,1279,1288,1291],{},[293,1280,1281,1284,1286],{"align":272},[296,1282,1283],{},"DISABLE_DEFAULT_CONFIG",[300,1285],{},[303,1287,569],{},[293,1289,1290],{"align":272},"Get full customization of the image and disable all default configurations and automations.",[293,1292,557],{"align":272},[267,1294,1295,1304,1309],{},[293,1296,1297,1300,1302],{"align":272},[296,1298,1299],{},"FRANKENPHP_CONFIG",[300,1301],{},[303,1303,1020],{},[293,1305,1306,1307,314],{"align":272},"Set the configuration for FrankenPHP. (",[310,1308,313],{"target":251,"href":1160},[293,1310,989],{"align":272},[267,1312,1313,1323,1329],{},[293,1314,1315,1318,1320],{"align":272},[296,1316,1317],{},"HEALTHCHECK_PATH",[300,1319],{},[303,1321,1322],{},"Default: \"/healthcheck\"",[293,1324,1325,1326,314],{"align":272},"Set the path for the health check endpoint. (",[310,1327,313],{"target":251,"href":1328},"https://docs.docker.com/engine/reference/builder/#healthcheck",[293,1330,1331,1332,836,1335,314],{"align":272},"all (except ",[296,1333,1334],{},"cli",[296,1336,989],{},[267,1338,1339,1349,1352],{},[293,1340,1341,1344,1346],{"align":272},[296,1342,1343],{},"HEALTHCHECK_SSL_CERTIFICATE_FILE",[300,1345],{},[303,1347,1348],{},"Default: \"/etc/ssl/healthcheck/localhost.crt\"",[293,1350,1351],{"align":272},"Set the path to the SSL certificate for the health check endpoint.",[293,1353,1354],{"align":272},"fpm-apache, fpm-nginx, frankenphp",[267,1356,1357,1367,1370],{},[293,1358,1359,1362,1364],{"align":272},[296,1360,1361],{},"HEALTHCHECK_SSL_PRIVATE_KEY_FILE",[300,1363],{},[303,1365,1366],{},"Default: \"/etc/ssl/healthcheck/localhost.key\"",[293,1368,1369],{"align":272},"Set the path to the SSL private key for the health check endpoint.",[293,1371,1354],{"align":272},[267,1373,1374,1394,1431],{},[293,1375,1376,1378,1380,1383,1384,1383,1386,1383,1389,1383,1391],{"align":272},[296,1377,1199],{},[300,1379],{},[303,1381,1382],{},"Default:"," ",[300,1385],{},[303,1387,1388],{},"\"warn\" (for all)",[300,1390],{},[303,1392,1393],{},"\"info\" (for frankenphp)",[293,1395,1396,1397,547,1400,547,1403,547,1406,547,1409,547,1412,547,1415,547,1418,1421,1422,1424,1425,1427,1428,1430],{"align":272},"Set the verbosity level for container output and service logs. Valid values (least to most verbose): ",[296,1398,1399],{},"emerg",[296,1401,1402],{},"alert",[296,1404,1405],{},"crit",[296,1407,1408],{},"error",[296,1410,1411],{},"warn",[296,1413,1414],{},"notice",[296,1416,1417],{},"info",[296,1419,1420],{},"debug",". Each level is translated to the native log configuration for PHP, PHP-FPM, and the active web server. ",[300,1423],{},"ℹ️ FrankenPHP defaults to ",[296,1426,1417],{}," because Caddy unifies access and error logs — setting ",[296,1429,1411],{}," would suppress HTTP request logs entirely (unlike Apache/NGINX where access logs are a separate directive).",[293,1432,557],{"align":272},[267,1434,1435,1445,1448],{},[293,1436,1437,1440,1442],{"align":272},[296,1438,1439],{},"NGINX_ACCESS_LOG",[300,1441],{},[303,1443,1444],{},"Default: \"/dev/stdout\"",[293,1446,1447],{"align":272},"Set the default output stream for access log.",[293,1449,1450],{"align":272},"fpm-nginx",[267,1452,1453,1463,1466],{},[293,1454,1455,1458,1460],{"align":272},[296,1456,1457],{},"NGINX_ERROR_LOG",[300,1459],{},[303,1461,1462],{},"Default: \"/dev/stderr\"",[293,1464,1465],{"align":272},"Set the default output stream for error log.",[293,1467,1450],{"align":272},[267,1469,1470,1480,1487],{},[293,1471,1472,1475,1477],{"align":272},[296,1473,1474],{},"NGINX_FASTCGI_BUFFERS",[300,1476],{},[303,1478,1479],{},"Default: \"8 8k\"",[293,1481,1482,1483,314],{"align":272},"Sets the number and size of the buffers used for reading a response from a FastCGI server. (",[310,1484,1486],{"target":251,"href":1485},"https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffers","Official Docs",[293,1488,1450],{"align":272},[267,1490,1491,1501,1507],{},[293,1492,1493,1496,1498],{"align":272},[296,1494,1495],{},"NGINX_FASTCGI_BUFFER_SIZE",[300,1497],{},[303,1499,1500],{},"Default: \"8k\"",[293,1502,1503,1504,314],{"align":272},"Sets the size of the buffer used for reading a response from a FastCGI server. (",[310,1505,1486],{"target":251,"href":1506},"https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffer_size",[293,1508,1450],{"align":272},[267,1510,1511,1521,1527],{},[293,1512,1513,1516,1518],{"align":272},[296,1514,1515],{},"NGINX_LISTEN_IP_PROTOCOL",[300,1517],{},[303,1519,1520],{},"Default: \"all\"",[293,1522,1523,1524,314],{"align":272},"Set the IP protocol for NGINX to listen on. Valid values are \"all\", \"ipv4\", and \"ipv6\". (",[310,1525,1486],{"target":251,"href":1526},"https://nginx.org/en/docs/http/ngx_http_core_module.html#listen",[293,1528,1450],{"align":272},[267,1530,1531,1540,1546],{},[293,1532,1533,1536,1538],{"align":272},[296,1534,1535],{},"NGINX_SERVER_TOKENS",[300,1537],{},[303,1539,980],{},[293,1541,1542,1543,314],{"align":272},"Display NGINX version in responses. (",[310,1544,1486],{"target":251,"href":1545},"https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens",[293,1547,1450],{"align":272},[267,1549,1550,1559,1565],{},[293,1551,1552,1554,1556],{"align":272},[296,1553,546],{},[300,1555],{},[303,1557,1558],{},"Default: \"`/var/www/html/public\"",[293,1560,1561,1562,314],{"align":272},"Sets the root directory for requests. (",[310,1563,1486],{"target":251,"href":1564},"https://nginx.org/en/docs/http/ngx_http_core_module.html#root",[293,1566,1450],{"align":272},[267,1568,1569,1579,1585],{},[293,1570,1571,1574,1576],{"align":272},[296,1572,1573],{},"NGINX_CLIENT_MAX_BODY_SIZE",[300,1575],{},[303,1577,1578],{},"Default: \"100M\"",[293,1580,1581,1582,314],{"align":272},"Sets the max body size for requests. (",[310,1583,1486],{"target":251,"href":1584},"https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size",[293,1586,1450],{"align":272},[267,1588,1589,1599,1605],{},[293,1590,1591,1594,1596],{"align":272},[296,1592,1593],{},"PHP_DATE_TIMEZONE",[300,1595],{},[303,1597,1598],{},"Default: \"UTC\"",[293,1600,1601,1602,314],{"align":272},"Control your timezone. (",[310,1603,1486],{"target":251,"href":1604},"https://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone",[293,1606,557],{"align":272},[267,1608,1609,1619,1625],{},[293,1610,1611,1614,1616],{"align":272},[296,1612,1613],{},"PHP_DISPLAY_ERRORS",[300,1615],{},[303,1617,1618],{},"Default: Off",[293,1620,1621,1622,314],{"align":272},"Show PHP errors on screen. (",[310,1623,313],{"target":251,"href":1624},"https://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors",[293,1626,557],{"align":272},[267,1628,1629,1638,1644],{},[293,1630,1631,1634,1636],{"align":272},[296,1632,1633],{},"PHP_DISPLAY_STARTUP_ERRORS",[300,1635],{},[303,1637,1618],{},[293,1639,1640,1641,314],{"align":272},"Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. (",[310,1642,313],{"target":251,"href":1643},"https://www.php.net/manual/en/errorfunc.configuration.php#ini.display-startup-errors",[293,1645,557],{"align":272},[267,1647,1648,1657,1663],{},[293,1649,1650,1653,1655],{"align":272},[296,1651,1652],{},"PHP_ERROR_LOG",[300,1654],{},[303,1656,1462],{},[293,1658,1659,1660,314],{"align":272},"Name of the file where script errors should be logged. . (",[310,1661,313],{"target":251,"href":1662},"https://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log",[293,1664,557],{"align":272},[267,1666,1667,1677,1687],{},[293,1668,1669,1672,1674],{"align":272},[296,1670,1671],{},"PHP_ERROR_REPORTING",[300,1673],{},[303,1675,1676],{},"Default: \"22527\"",[293,1678,1679,1680,624,1684,314],{"align":272},"Set PHP error reporting level. Must be a number. ",[310,1681,1683],{"target":251,"href":1682},"https://maximivanov.github.io/php-error-reporting-calculator/","Use this tool for help.",[310,1685,313],{"target":251,"href":1686},"https://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting",[293,1688,557],{"align":272},[267,1690,1691,1700,1706],{},[293,1692,1693,1696,1698],{"align":272},[296,1694,1695],{},"PHP_FPM_CHILD_PROCESS_USER",[300,1697],{},[303,1699,448],{},[293,1701,1702,1703,314],{"align":272},"⚠️ Only used if container is running as root. Set the user of the PHP-FPM child processes. (",[310,1704,313],{"target":251,"href":1705},"https://www.php.net/manual/en/install.fpm.configuration.php",[293,1707,1708],{"align":272},"fpm*",[267,1710,1711,1720,1725],{},[293,1712,1713,1716,1718],{"align":272},[296,1714,1715],{},"PHP_FPM_CHILD_PROCESS_GROUP",[300,1717],{},[303,1719,448],{},[293,1721,1722,1723,314],{"align":272},"⚠️ Only used if container is running as root. Set the group of the PHP-FPM child processes. (",[310,1724,313],{"target":251,"href":1705},[293,1726,1708],{"align":272},[267,1728,1729,1748,1753],{},[293,1730,1731,1734,1736],{"align":272},[296,1732,1733],{},"PHP_FPM_PM_CONTROL",[300,1735],{},[303,1737,1738,1739,1741,1742,1744,1745,1747],{},"Defaults:",[300,1740],{},"fpm: dynamic",[300,1743],{},"fpm-apache: ondemand",[300,1746],{},"fpm-nginx: ondemand",[293,1749,1750,1751,314],{"align":272},"Choose how the process manager will control the number of child processes. (",[310,1752,313],{"target":251,"href":1705},[293,1754,1708],{"align":272},[267,1756,1757,1767,1772],{},[293,1758,1759,1762,1764],{"align":272},[296,1760,1761],{},"PHP_FPM_PM_MAX_CHILDREN",[300,1763],{},[303,1765,1766],{},"Default: \"20\"",[293,1768,1769,1770,314],{"align":272},"The number of child processes to be created when pm is set to static and the maximum number of child processes to be created when pm is set to dynamic. (",[310,1771,313],{"target":251,"href":1705},[293,1773,1708],{"align":272},[267,1775,1776,1785,1790],{},[293,1777,1778,1781,1783],{"align":272},[296,1779,1780],{},"PHP_FPM_PM_MAX_REQUESTS",[300,1782],{},[303,1784,368],{},[293,1786,1787,1788,314],{"align":272},"The number of requests each child process should execute before respawning. This can be useful to work around memory leaks in 3rd party libraries. (",[310,1789,313],{"target":251,"href":1705},[293,1791,1708],{"align":272},[267,1793,1794,1804,1809],{},[293,1795,1796,1799,1801],{"align":272},[296,1797,1798],{},"PHP_FPM_PM_MAX_SPARE_SERVERS",[300,1800],{},[303,1802,1803],{},"Default: \"3\"",[293,1805,1806,1807,314],{"align":272},"The desired maximum number of idle server processes. Used only when pm is set to dynamic. (",[310,1808,313],{"target":251,"href":1705},[293,1810,1708],{"align":272},[267,1812,1813,1822,1827],{},[293,1814,1815,1818,1820],{"align":272},[296,1816,1817],{},"PHP_FPM_PM_MIN_SPARE_SERVERS",[300,1819],{},[303,1821,1237],{},[293,1823,1824,1825,314],{"align":272},"The desired minimum number of idle server processes. Used only when pm is set to dynamic. (",[310,1826,313],{"target":251,"href":1705},[293,1828,1708],{"align":272},[267,1830,1831,1840,1845],{},[293,1832,1833,1836,1838],{"align":272},[296,1834,1835],{},"PHP_FPM_PM_START_SERVERS",[300,1837],{},[303,1839,480],{},[293,1841,1842,1843,314],{"align":272},"The number of child processes created on startup. Used only when pm is set to dynamic. (",[310,1844,313],{"target":251,"href":1705},[293,1846,1708],{"align":272},[267,1848,1849,1858,1863],{},[293,1850,1851,1854,1856],{"align":272},[296,1852,1853],{},"PHP_FPM_PM_STATUS_PATH",[300,1855],{},[303,1857,1020],{},[293,1859,1860,1861,314],{"align":272},"The path to the PHP-FPM status page. (",[310,1862,313],{"target":251,"href":1705},[293,1864,1708],{"align":272},[267,1866,1867,1877,1880],{},[293,1868,1869,1872,1874],{"align":272},[296,1870,1871],{},"PHP_FPM_POOL_NAME",[300,1873],{},[303,1875,1876],{},"Default: \"www\"",[293,1878,1879],{"align":272},"Set the name of your PHP-FPM pool (helpful when running multiple sites on a single server).",[293,1881,1708],{"align":272},[267,1883,1884,1894,1899],{},[293,1885,1886,1889,1891],{"align":272},[296,1887,1888],{},"PHP_FPM_PROCESS_CONTROL_TIMEOUT",[300,1890],{},[303,1892,1893],{},"Default: \"10s\"",[293,1895,1896,1897,314],{"align":272},"Set the timeout for the process control commands. (",[310,1898,313],{"target":251,"href":1705},[293,1900,1708],{"align":272},[267,1902,1903,1913,1919],{},[293,1904,1905,1908,1910],{"align":272},[296,1906,1907],{},"PHP_MAX_EXECUTION_TIME",[300,1909],{},[303,1911,1912],{},"Default: \"99\"",[293,1914,1915,1916,314],{"align":272},"Set the maximum time in seconds a script is allowed to run before it is terminated by the parser. (",[310,1917,313],{"target":251,"href":1918},"https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time",[293,1920,557],{"align":272},[267,1922,1923,1933,1939],{},[293,1924,1925,1928,1930],{"align":272},[296,1926,1927],{},"PHP_MAX_INPUT_TIME",[300,1929],{},[303,1931,1932],{},"Default: \"-1\"",[293,1934,1935,1936,314],{"align":272},"This sets the maximum time in seconds a script is allowed to parse input data, like POST and GET. Timing begins at the moment PHP is invoked at the server and ends when execution begins. The default setting is -1, which means that max_execution_time is used instead. Set to 0 to allow unlimited time. This directive is hardcoded to -1 for the CLI SAPI by PHP. (",[310,1937,313],{"target":251,"href":1938},"https://php.net/max-input-time",[293,1940,557],{"align":272},[267,1942,1943,1953,1959],{},[293,1944,1945,1948,1950],{"align":272},[296,1946,1947],{},"PHP_MAX_INPUT_VARS",[300,1949],{},[303,1951,1952],{},"Default: \"1000\"",[293,1954,1955,1956,314],{"align":272},"Set the limits for number of input variables (e.g., POST, GET, or COOKIE variables) that PHP will process in a single request. (",[310,1957,313],{"target":251,"href":1958},"https://www.php.net/manual/en/info.configuration.php#ini.max-input-vars",[293,1960,557],{"align":272},[267,1962,1963,1973,1979],{},[293,1964,1965,1968,1970],{"align":272},[296,1966,1967],{},"PHP_MEMORY_LIMIT",[300,1969],{},[303,1971,1972],{},"Default: \"256M\"",[293,1974,1975,1976,314],{"align":272},"Set the maximum amount of memory in bytes that a script is allowed to allocate. (",[310,1977,313],{"target":251,"href":1978},"https://www.php.net/manual/en/ini.core.php#ini.memory-limit",[293,1980,557],{"align":272},[267,1982,1983,1993,2010],{},[293,1984,1985,1988,1990],{"align":272},[296,1986,1987],{},"PHP_OPCACHE_ENABLE",[300,1989],{},[303,1991,1992],{},"Default: \"0\" (to keep developers sane)",[293,1994,1995,1996,1999,2000,836,2003,2006,2007,314],{"align":272},"Enable or disable OPcache. ⚠️ This will set ",[274,1997,1998],{},"both values"," for ",[296,2001,2002],{},"opcache.enable",[296,2004,2005],{},"opcache.enable_cli",". (",[310,2008,313],{"target":251,"href":2009},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.enable",[293,2011,557],{"align":272},[267,2013,2014,2023,2029],{},[293,2015,2016,2019,2021],{"align":272},[296,2017,2018],{},"PHP_OPCACHE_ENABLE_FILE_OVERRIDE",[300,2020],{},[303,2022,368],{},[293,2024,2025,2026,314],{"align":272},"Enable or disable file existence override (file_exists, etc.). (",[310,2027,313],{"target":251,"href":2028},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.enable-file-override",[293,2030,557],{"align":272},[267,2032,2033,2043,2049],{},[293,2034,2035,2038,2040],{"align":272},[296,2036,2037],{},"PHP_OPCACHE_FORCE_RESTART_TIMEOUT",[300,2039],{},[303,2041,2042],{},"Default: \"180\"",[293,2044,2045,2046,314],{"align":272},"The number of seconds to wait for a scheduled restart to begin if the cache isn't active, in seconds. If the timeout is hit, then OPcache assumes that something is wrong and will kill the processes holding locks on the cache to permit a restart.  (",[310,2047,313],{"target":251,"href":2048},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.force-restart-timeout",[293,2050,557],{"align":272},[267,2052,2053,2063,2069],{},[293,2054,2055,2058,2060],{"align":272},[296,2056,2057],{},"PHP_OPCACHE_INTERNED_STRINGS_BUFFER",[300,2059],{},[303,2061,2062],{},"Default: \"8\"",[293,2064,2065,2066,314],{"align":272},"The amount of memory used to store interned strings, in megabytes. (",[310,2067,313],{"target":251,"href":2068},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.interned-strings-buffer",[293,2070,557],{"align":272},[267,2072,2073,2082,2088],{},[293,2074,2075,2078,2080],{"align":272},[296,2076,2077],{},"PHP_OPCACHE_JIT",[300,2079],{},[303,2081,980],{},[293,2083,2084,2085,314],{"align":272},"Enable or disable the JIT compiler. (",[310,2086,313],{"target":251,"href":2087},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.jit",[293,2089,557],{"align":272},[267,2091,2092,2101,2107],{},[293,2093,2094,2097,2099],{"align":272},[296,2095,2096],{},"PHP_OPCACHE_JIT_BUFFER_SIZE",[300,2098],{},[303,2100,368],{},[293,2102,2103,2104,314],{"align":272},"The amount of shared memory to reserve for compiled JIT code. A zero value disables the JIT. (",[310,2105,313],{"target":251,"href":2106},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.jit-buffer-size",[293,2108,557],{"align":272},[267,2110,2111,2121,2127],{},[293,2112,2113,2116,2118],{"align":272},[296,2114,2115],{},"PHP_OPCACHE_MAX_ACCELERATED_FILES",[300,2117],{},[303,2119,2120],{},"Default: \"10000\"",[293,2122,2123,2124,314],{"align":272},"The maximum number of keys (scripts) in the OPcache hash table. (",[310,2125,313],{"target":251,"href":2126},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.max-accelerated-files",[293,2128,557],{"align":272},[267,2130,2131,2141,2147],{},[293,2132,2133,2136,2138],{"align":272},[296,2134,2135],{},"PHP_OPCACHE_MEMORY_CONSUMPTION",[300,2137],{},[303,2139,2140],{},"Default: \"128\"",[293,2142,2143,2144,314],{"align":272},"The amount of memory used by the OPcache engine, in megabytes. (",[310,2145,313],{"target":251,"href":2146},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.memory-consumption",[293,2148,557],{"align":272},[267,2150,2151,2160,2166],{},[293,2152,2153,2156,2158],{"align":272},[296,2154,2155],{},"PHP_OPCACHE_REVALIDATE_FREQ",[300,2157],{},[303,2159,480],{},[293,2161,2162,2163,314],{"align":272},"How often the OPcache checks for updates to cached files (in seconds). (",[310,2164,313],{"target":251,"href":2165},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.revalidate-freq",[293,2167,557],{"align":272},[267,2169,2170,2179,2185],{},[293,2171,2172,2175,2177],{"align":272},[296,2173,2174],{},"PHP_OPCACHE_SAVE_COMMENTS",[300,2176],{},[303,2178,1237],{},[293,2180,2181,2182,314],{"align":272},"Remove comments from OPcache to minify a bit further. Note: any code that depends on PHPDoc annotations can break from this. (",[310,2183,313],{"target":251,"href":2184},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.save-comments",[293,2186,557],{"align":272},[267,2188,2189,2198,2204],{},[293,2190,2191,2194,2196],{"align":272},[296,2192,2193],{},"PHP_OPCACHE_VALIDATE_TIMESTAMPS",[300,2195],{},[303,2197,1237],{},[293,2199,2200,2201,314],{"align":272},"Whether OPcache checks for changes to files, or requires reload of PHP to revalidate OPcache. (",[310,2202,313],{"target":251,"href":2203},"https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.validate-timestamps",[293,2205,557],{"align":272},[267,2207,2208,2218,2228],{},[293,2209,2210,2213,2215],{"align":272},[296,2211,2212],{},"PHP_OPEN_BASEDIR",[300,2214],{},[303,2216,2217],{},"Default: \"None\"",[293,2219,2220,2221,2224,2225,314],{"align":272},"Limit the files that can be accessed by PHP to the specified directory-tree, including the file itself. ",[296,2222,2223],{},"open_basedir"," is just an extra safety net, that is in no way comprehensive, and can therefore not be relied upon when security is needed. (",[310,2226,313],{"target":251,"href":2227},"https://www.php.net/manual/en/ini.core.php#ini.open-basedir",[293,2229,557],{"align":272},[267,2231,2232,2241,2247],{},[293,2233,2234,2237,2239],{"align":272},[296,2235,2236],{},"PHP_POST_MAX_SIZE",[300,2238],{},[303,2240,1578],{},[293,2242,2243,2244,314],{"align":272},"Sets max size of post data allowed. (",[310,2245,313],{"target":251,"href":2246},"https://www.php.net/manual/en/ini.core.php#ini.post-max-size",[293,2248,557],{"align":272},[267,2250,2251,2261,2267],{},[293,2252,2253,2256,2258],{"align":272},[296,2254,2255],{},"PHP_REALPATH_CACHE_TTL",[300,2257],{},[303,2259,2260],{},"Default: \"120\"",[293,2262,2263,2264,314],{"align":272},"The duration of time, in seconds for which to cache realpath information for a given file or directory. (",[310,2265,313],{"target":251,"href":2266},"https://www.php.net/manual/en/ini.core.php#ini.realpath-cache-ttl",[293,2268,557],{"align":272},[267,2270,2271,2281,2287],{},[293,2272,2273,2276,2278],{"align":272},[296,2274,2275],{},"PHP_SESSION_COOKIE_SECURE",[300,2277],{},[303,2279,2280],{},"Default: 1 (true)",[293,2282,2283,2284,314],{"align":272},"Specifies whether cookies should only be sent over secure connections.  (",[310,2285,313],{"target":251,"href":2286},"https://www.php.net/manual/en/session.configuration.php#ini.session.cookie-secure",[293,2288,557],{"align":272},[267,2290,2291,2300,2306],{},[293,2292,2293,2296,2298],{"align":272},[296,2294,2295],{},"PHP_UPLOAD_MAX_FILE_SIZE",[300,2297],{},[303,2299,1578],{},[293,2301,2302,2303,314],{"align":272},"The maximum size of an uploaded file. (",[310,2304,313],{"target":251,"href":2305},"https://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize",[293,2307,557],{"align":272},[267,2309,2310,2319,2325],{},[293,2311,2312,2315,2317],{"align":272},[296,2313,2314],{},"PHP_ZEND_DETECT_UNICODE",[300,2316],{},[303,2318,1020],{},[293,2320,2321,2322,314],{"align":272},"Check for BOM (Byte Order Mark) and see if the file contains valid multibyte characters. This detection is performed before processing of __halt_compiler(). Available only in Zend Multibyte mode. (",[310,2323,313],{"target":251,"href":2324},"https://www.php.net/manual/en/ini.core.php#ini.zend.detect-unicode",[293,2326,557],{"align":272},[267,2328,2329,2339,2345],{},[293,2330,2331,2334,2336],{"align":272},[296,2332,2333],{},"PHP_ZEND_MULTIBYTE",[300,2335],{},[303,2337,2338],{},"Default: \"Off\"",[293,2340,2341,2342,314],{"align":272},"Enable or disable Zend Multibyte. (",[310,2343,313],{"target":251,"href":2344},"https://www.php.net/manual/en/ini.core.php#ini.zend.multibyte",[293,2346,557],{"align":272},[267,2348,2349,2359,2365],{},[293,2350,2351,2354,2356],{"align":272},[296,2352,2353],{},"S6_BEHAVIOUR_IF_STAGE2_FAILS",[300,2355],{},[303,2357,2358],{},"Default: \"2\" (stop the container)",[293,2360,2361,2362,314],{"align":272},"Determines what the container should do if one of the service scripts fails (",[310,2363,313],{"target":251,"href":2364},"https://github.com/just-containers/s6-overlay#customizing-s6-overlay-behaviour",[293,2366,2367,2368,317],{"align":272},"fpm-nginx,",[300,2369],{},[267,2371,2372,2381,2386],{},[293,2373,2374,2377,2379],{"align":272},[296,2375,2376],{},"S6_CMD_WAIT_FOR_SERVICES_MAXTIME",[300,2378],{},[303,2380,368],{},[293,2382,2383,2384,314],{"align":272},"The maximum time (in milliseconds) the services could take to bring up before proceeding to CMD executing (",[310,2385,313],{"target":251,"href":2364},[293,2387,2367,2388,317],{"align":272},[300,2389],{},[267,2391,2392,2401,2407],{},[293,2393,2394,2397,2399],{"align":272},[296,2395,2396],{},"S6_VERBOSITY",[300,2398],{},[303,2400,1237],{},[293,2402,2403,2404,314],{"align":272},"Set the verbosity of \"S6 Overlay\" (the init system these images are based on). The default is \"1\" (print warnings and errors). The scale goes from 1 to 5, but the output will quickly become very noisy. If you're having issues, start here. You can also customize many other variables. (",[310,2405,313],{"target":251,"href":2406},"https://github.com/just-containers/s6-overlay#customizing-s6-behaviour",[293,2408,2367,2409,317],{"align":272},[300,2410],{},[267,2412,2413,2422,2425],{},[293,2414,2415,2418,2420],{"align":272},[296,2416,2417],{},"SHOW_WELCOME_MESSAGE",[300,2419],{},[303,2421,613],{},[293,2423,2424],{"align":272},"Show a helpful welcome message showing container information when the container starts.",[293,2426,557],{"align":272},[267,2428,2429,2439,2442],{},[293,2430,2431,2434,2436],{"align":272},[296,2432,2433],{},"SSL_CERTIFICATE_FILE",[300,2435],{},[303,2437,2438],{},"Default: \"/etc/ssl/private/self-signed-web.crt\"",[293,2440,2441],{"align":272},"Path to public certificate file for HTTPS. You must provide this file otherwise a self-signed key pair will be generated for you.",[293,2443,2367,2444,317],{"align":272},[300,2445],{},[267,2447,2448,2457,2462],{},[293,2449,2450,2453,2455],{"align":272},[296,2451,2452],{},"SSL_MODE",[300,2454],{},[303,2456,980],{},[293,2458,2459,2460,787],{"align":272},"Configure how you would like to handle SSL. This can be \"off\" (HTTP only), \"mixed\" (HTTP + HTTPS), or \"full\" (HTTPS only). If you use HTTP, you may need to also change ",[296,2461,2275],{},[293,2463,2367,2464,2466,2467,989],{"align":272},[300,2465],{},"fpm-apache,",[300,2468],{},[267,2470,2471,2481,2484],{},[293,2472,2473,2476,2478],{"align":272},[296,2474,2475],{},"SSL_PRIVATE_KEY_FILE",[300,2477],{},[303,2479,2480],{},"Default: \"/etc/ssl/private/self-signed-web.key\"",[293,2482,2483],{"align":272},"Path to private key file for HTTPS. You must provide this file otherwise a self-signed key pair will be generated for you.",[293,2485,2367,2486,2488,2489,989],{"align":272},[300,2487],{},"fpm-apache, ",[300,2490],{},[267,2492,2493,2503,2522],{},[293,2494,2495,2498,2500],{"align":272},[296,2496,2497],{},"TRUSTED_PROXY",[300,2499],{},[303,2501,2502],{},"Default: \"cloudflare\"",[293,2504,2505,2506,547,2509,547,2512,550,2515,2518,2519,2521],{"align":272},"Configure which proxy IPs are trusted to pass the real client IP address. Valid options: ",[296,2507,2508],{},"cloudflare",[296,2510,2511],{},"sucuri",[296,2513,2514],{},"local",[296,2516,2517],{},"off",". See ",[310,2520,175],{"href":176}," for details.",[293,2523,2367,2524,2488,2526,989],{"align":272},[300,2525],{},[300,2527],{},{"title":10,"searchDepth":2529,"depth":2529,"links":2530},2,[2531],{"id":258,"depth":2529,"text":259},"View the complete reference for environment variables available in the Docker PHP images.",null,{"head":2535,"layout":7},{"title":2536},"Environment Variable Specifications - Docker PHP - Server Side Up",true,{"title":214,"description":2532},"xjOmBN5hMIRAcY7woTrSdE0GVnNru_GJ_dc43hlFh70",[2541,2543],{"title":205,"path":206,"stem":207,"description":2542,"children":-1},"Find the support you need - from free community resources to professional consulting services.",{"title":218,"path":219,"stem":220,"description":2544,"children":-1},"Learn about all the commands available within the serversideup/php image to improve your developer experience.",1776367056293]