Go achomair: Is é php.ini príomhchomhad cumraíochta PHP. Léann PHP é ag an tús, aon uair amháin le modúil freastalaí, le gach glao le CGI agus CLI. Chomh maith leis sin tá comhaid bhreise as eolaire scanta, socruithe sa linn FPM nó in Apache, .htaccess nó .user.ini agus ini_set() sa chód. Cinneann a mhodh athraithe cén leibhéal a fhéadfaidh luach a athrú, mar shampla INI_SYSTEM nó INI_PERDIR. Ní féidir leis an bhfeidhmchlár luachanna trí php_admin_value a fhorscríobh a thuilleadh.
Cad is php.ini ann?
Is comhad téacs é php.ini le hiontrálacha de réir an phatrúin name = wert. Socraíonn sé conas a iompraíonn PHP: cé mhéad cuimhne a fhéadfaidh script a úsáid, an dtaispeántar earráidí sa bhrabhsálaí, conas a oibríonn seisiúin agus cé na heisínteachtaí a luchtaítear. Tosaíonn tuairimí le leathstad.
De réir lámhleabhar PHP, léitear an comhad nuair a thosaíonn PHP. Le modúil freastalaí ar nós mod_php tarlaíonn sé sin aon uair amháin, nuair a thosaíonn an freastalaí gréasáin, le CGI agus CLI le gach glao. Léann PHP-FPM a chumraíocht ag an tús agus nuair a athluchtaítear an tseirbhís. Mar sin de ghnáth ní bhíonn éifeacht ag athrú gan atosú nó athluchtú.
Ó PHP 8.3 i leith, de réir an lámhleabhair, is féidir le hiontráil tagairt a dhéanamh d'athróg timpeallachta le luach ionaid:
memory_limit = ${PHP_MEMORY_LIMIT}
max_execution_time = ${PHP_MAX_EXECUTION_TIME:-30}
Cá gcuardaíonn PHP an php.ini?
Déanann an lámhleabhar cur síos ar ord seasta. Ar dtús tá cosán a socraíodh go sainráite i bhfeidhm, mar shampla PHPIniDir in Apache nó an rogha -c le CGI agus CLI. Ar shlí eile tógann PHP cosán cuardaigh as:
- an athróg timpeallachta
PHPRC, - faoi Windows, an iontráil chlárlainne
IniFilePath, - an eolaire oibre reatha, ach amháin i SAPInna a mhúchann é sin, mar shampla an CLI,
- eolaire an chomhaid dhénártha PHP nó an mhodúil,
- an cosán
--with-config-file-patha socraíodh le linn tiomsaithe.
Sa chosán cuardaigh seo, cuardaíonn PHP comhad php-SAPI.ini ar dtús, mar shampla php-cli.ini, agus ansin php.ini amháin. Ina dhiaidh sin léann PHP gach comhad .ini as an eolaire scanta, a shocraítear trí PHP_INI_SCAN_DIR nó le linn tiomsaithe trí --with-config-file-scan-dir, in ord aibítre. Taispeánann php --ini nó an fheidhm php_ini_scanned_files() cé na comhaid a luchtaíodh.
php --ini
php -r 'var_dump(php_ini_loaded_file(), php_ini_scanned_files());'
Taispeánann an dá ordú staid na líne ordaithe. Don suíomh gréasáin, féadfaidh comhad eile a bheith i bhfeidhm, mar is féidir cumraíocht dá chuid féin a bheith ag gach SAPI; tuilleadh ag SAPI mínithe.
Modhanna athraithe: cé a fhéadfaidh cén luach a leagan síos?
Ní féidir gach socrú a leagan síos i ngach áit. Sanntar mód athraithe do gach treoir sa lámhleabhar:
| Mód | Cá bhféadfar an luach a leagan síos |
|---|---|
INI_USER |
i scripteanna trí ini_set(), sa chlárlann Windows agus i .user.ini |
INI_PERDIR |
in php.ini, .htaccess, httpd.conf nó .user.ini |
INI_SYSTEM |
in php.ini nó httpd.conf amháin |
INI_ALL |
i ngach áit |
Samplaí ón lámhleabhar: tá memory_limit sa mhód INI_ALL agus an réamhshocrú 128M, tá post_max_size sa mhód INI_PERDIR agus an réamhshocrú 8M, tá upload_max_filesize sa mhód INI_PERDIR agus an réamhshocrú 2M. Ní fhéadfaidh expose_php a bheith ach in php.ini.
De réir an lámhleabhair, ní léann ach SAPInna CGI agus FastCGI comhaid .user.ini, mar sin PHP-FPM freisin. Cuardaíonn PHP iad ó eolaire an script suas go dtí an Document Root agus léann sé arís iad uair amháin gach 300 soicind ar a mhéad de réir réamhshocraithe (user_ini.cache_ttl). Faoi mod_php glacann .htaccess an ról seo.
Cén luach atá i bhfeidhm ar deireadh? Na leibhéil de réir tosaíochta
Go simplí: dá déanaí a théann leibhéal i bhfeidhm, is dóichí a rachaidh a luach i gcrích, ach amháin má cheadaíonn an mód athraithe é.
- php.ini den SAPI ábhartha
- Comhaid bhreise as an eolaire scanta, in ord aibítre
- Cumraíocht an fhreastalaí: linn FPM le
php_valuenóphp_admin_value, VirtualHost Apache - Leibhéal eolaire:
.htaccessle mod_php,.user.inile FPM agus CGI - Am rite:
ini_set()i gcód an fheidhmchláir
Tá an eisceacht ríthábhachtach: ní féidir luachanna trí php_admin_value nó php_admin_flag a fhorscríobh trí ini_set(), de réir an lámhleabhair. Leis sin cuireann riarthóirí socruithe a bhaineann le slándáil faoi ghlas in aghaidh an fheidhmchláir. Tá cur síos mionsonraithe air ag php_admin_value: socruithe a chur faoi ghlas i gcoinne forscríobh.
An php.ini tar éis PHP2Shell: cad atá athraithe
Is socruithe INI beagnach iad bearta idirthréimhseacha php.net i gcoinne PHP2Shell: memory_limit=-1 faoi ghlas i gcoinne forscríobh, post_max_size teoranta, session.upload_progress.enabled=0 agus ar PHP 8.5 fatal_error_backtraces=0. Cuireann php.net i bhfios nár cheart session.upload_progress.enabled a leagan síos trí ini_set() ná .user.ini, ach in php.ini, i linn FPM nó i gcumraíocht an fhreastalaí, le hatosú gach oibrí ina dhiaidh sin. Tá an liosta iomlán ag Bearta láithreacha mura féidir leat paistiú fós.
Leis na leaganacha ceartaithe 8.5.12, 8.4.27, 8.3.36 agus 8.2.35, d'athraigh memory_limit freisin, de réir an lámhleabhair: is teorainn bhog é anois. Socraíonn an socrú nua memory_hard_limit_percent teorainn chrua. Gan luach dá chuid féin, is é dhá oiread memory_limit é, i gcás níos mó ná 1G an luach móide 1G. Má sháraítear é, críochnaíonn an próiseas láithreach le stádas scoir 137. Míníonn memory_limit a leagan síos i gceart conas an dá theorainn a roghnú go ciallmhar.
De réir an lámhleabhair: mura n-aithníonn leagan PHP memory_hard_limit_percent, bíonn tionchar ag CVE-2026-109618 agus CVE-2026-109619 air. I gcás dáiltí le backports, cruthaíonn changelog an phacáiste an staid freisin.
Conas a chabhraíonn PHP SOS go praiticiúil?
- Luachanna éifeachtacha a fháil amach: Léimid amach do gach SAPI cé na comhaid a luchtaítear agus cén luach atá i bhfeidhm ar deireadh.
- Leibhéil a ghlanadh: Baineann muid iontrálacha contrártha as painéil, linnte,
.htaccessagus.user.ini. - Glais a leagan síos: Mar chuid de chruatú freastalaí socraímid luachanna a bhaineann le slándáil trí
php_admin_value. - Cruthúnas: Déanaimid socruithe agus atosú a dhoiciméadú ionas gur féidir an staid a chruthú ar ball.
Ceisteanna coitianta
Cá bhfuil an php.ini?
Braitheann sé ar an gcóras oibriúcháin, ar an bpacáiste agus ar an SAPI. Faoi Debian agus Ubuntu tá fillteáin dá gcuid féin ann do gach leagan agus SAPI, mar shampla /etc/php/8.3/fpm/php.ini agus /etc/php/8.3/cli/php.ini. Ar an líne ordaithe taispeánann php --ini na comhaid luchtaithe; don suíomh gréasáin cabhraíonn php_ini_loaded_file() i gcomhad seiceála sealadach.
In ordú cén sraith a léitear na comhaid san fhillteán conf.d?
De réir lámhleabhar PHP, léann PHP gach comhad leis an iarmhír .ini sa eolaire scanta in ord aibítre. Forscríobhann comhaid níos déanaí luachanna na gcinn níos luaithe. Dá bhrí sin, bíonn uimhreacha ar nós 20- nó 99- in ainm a lán comhad.
Cén fáth nach bhfuil éifeacht ag m'athrú ar php.ini?
Cúiseanna coitianta: athraíodh comhad SAPI eile, níor atosaíodh an tseirbhís, forscríobhann luach i linn FPM, i gcumraíocht Apache nó i .user.ini é, nó athscríobhann painéal óstála an comhad an chéad uair eile a shábháiltear.
Cad é memory_hard_limit_percent?
Socrú nua a tugadh isteach, de réir lámhleabhar PHP, le heisiúintí slándála an 21.10.2026. Leagann sé teorainn chrua cuimhne síos mar chéatadán de memory_limit. Tugann an lámhleabhar le fios go mbíonn tionchar ag leochaileachtaí PHP2Shell ar leagan PHP nach n-aithníonn an socrú seo.