# Il-php.ini spjegata: struttura, livelli u prijorità

> Il-php.ini spjegata: fejn PHP tfittex il-konfigurazzjoni tagħha, liema livelli hemm, x'jfissru INI_SYSTEM u INI_PERDIR u liema valur jgħodd fl-aħħar.

Sors: https://phpsos.de/mt/php/php-ini-erklaert/  
Stat: 25/10/2026  
Fornitur: PHP SOS, Għajnuna ta' emerġenza għal PHP u sigurtà tas-server. Għajnuna immedjata fuq WhatsApp: https://wa.me/491736494914?text=Bongu%20PHP%20SOS%2C%20g%C4%A7andna%20b%C5%BConn%20g%C4%A7ajnuna%20bis-server%20tal-PHP%20tag%C4%A7na.%20Kumpanija%3A%20%E2%80%A6%20Websajt%3A%20%E2%80%A6

**Fil-qosor:** Il-php.ini hija l-fajl ċentrali tal-konfigurazzjoni ta' PHP. PHP taqrah meta tibda, ma' moduli tas-server darba, ma' CGI u CLI ma' kull sejħa. Minbarra dan hemm fajls addizzjonali minn direttorju tal-iskanjar, settings fil-pool ta' FPM jew f'Apache, `.htaccess` jew `.user.ini` u `ini_set()` fil-kodiċi. Liema livell jista' jibdel valur jiddeċiedi l-modalità tal-bidla tiegħu, pereżempju `INI_SYSTEM` jew `INI_PERDIR`. Valuri permezz ta' `php_admin_value` l-applikazzjoni ma tistax tissorpassahom aktar.

## X'inhi l-php.ini?

Il-php.ini hija fajl tat-test b'entrati fuq il-mudell `name = wert`. Tistabbilixxi kif taġixxi PHP: kemm jista' jinqeda skrip bil-memorja, jekk l-iżbalji jidhrux fil-browser, kif jaħdmu s-sessjonijiet u liema estensjonijiet jitgħabbew. Kummenti jibdew b'punt u virgola.

Skont il-manwal ta' PHP, il-fajl jinqara meta tibda PHP. Ma' moduli tas-server bħal mod_php dan isir darba biss, meta jinbeda s-server tal-web, ma' CGI u CLI ma' kull sejħa. PHP-FPM taqra l-konfigurazzjoni tagħha meta tibda u meta s-servizz jerġa' jitgħabba. Tibdil mingħajr restart jew reload għalhekk normalment ma jaħdimx.

Minn PHP 8.3, skont il-manwal, entrata tista' tirreferi għal varjabbli tal-ambjent b'valur alternattiv:

```ini
memory_limit = ${PHP_MEMORY_LIMIT}
max_execution_time = ${PHP_MAX_EXECUTION_TIME:-30}
```

## Fejn tfittex PHP il-php.ini?

Il-manwal jiddeskrivi ordni fissa. L-ewwel jgħodd mogħdija stabbilita espliċitament, pereżempju `PHPIniDir` f'Apache jew l-għażla `-c` ma' CGI u CLI. Inkella PHP tibni mogħdija tat-tiftix minn:

1. il-varjabbli tal-ambjent `PHPRC`,
2. taħt Windows, l-entrata tar-registry `IniFilePath`,
3. id-direttorju tax-xogħol kurrenti, ħlief għal SAPIs li jitfuh, bħas-CLI,
4. id-direttorju tal-fajl binarju ta' PHP jew tal-modulu,
5. il-mogħdija stabbilita waqt il-kompilazzjoni `--with-config-file-path`.

F'din il-mogħdija tat-tiftix PHP tfittex l-ewwel fajl `php-SAPI.ini`, pereżempju `php-cli.ini`, u biss wara `php.ini`. Imbagħad PHP taqra l-fajls `.ini` kollha mid-direttorju tal-iskanjar, stabbilit permezz ta' `PHP_INI_SCAN_DIR` jew waqt il-kompilazzjoni permezz ta' `--with-config-file-scan-dir`, f'ordni alfabetika. Liema fajls ġew mgħobbija juri `php --ini` jew il-funzjoni `php_ini_scanned_files()`.

```bash
php --ini
php -r 'var_dump(php_ini_loaded_file(), php_ini_scanned_files());'
```

It-tnejn jagħtu l-istat tal-linja tal-kmand. Għall-websajt jista' japplika fajl ieħor, għax kull SAPI tista' jkollha l-konfigurazzjoni proprja tagħha; aktar dwar dan taħt [SAPI spjegata](https://phpsos.de/mt/php/sapi-erklaert/).

## Modalitajiet tal-bidla: min jista' jissettja liema valur?

Mhux kull setting jista' jiġi ssettjat kullimkien. Il-manwal jassenja lil kull direttiva modalità tal-bidla:

| Modalità | Fejn jista' jiġi ssettjat il-valur |
|---|---|
| `INI_USER` | fl-iskripts permezz ta' `ini_set()`, fir-registry ta' Windows u f'`.user.ini` |
| `INI_PERDIR` | f'php.ini, `.htaccess`, `httpd.conf` jew `.user.ini` |
| `INI_SYSTEM` | biss f'php.ini jew `httpd.conf` |
| `INI_ALL` | kullimkien |

Eżempji mill-manwal: `memory_limit` għandu l-modalità `INI_ALL` u l-istandard `128M`, `post_max_size` għandu `INI_PERDIR` u l-istandard `8M`, `upload_max_filesize` għandu `INI_PERDIR` u l-istandard `2M`. `expose_php` jista' jkun biss fil-php.ini.

Fajls `.user.ini` jinqraw, skont il-manwal, biss mill-SAPIs CGI u FastCGI, jiġifieri wkoll minn PHP-FPM. PHP tfittixhom mid-direttorju tal-iskrip 'il fuq sad-Document Root u terġa' taqrahom, b'mod predefinit, l-iktar kull 300 sekonda (`user_ini.cache_ttl`). Taħt mod_php `.htaccess` jieħu dan ir-rwol.

## Liema valur jgħodd fl-aħħar? Il-livelli fil-prijorità

B'mod simplifikat: aktar tard livell japplika, aktar il-valur tiegħu jirbaħ, sakemm il-modalità tal-bidla tippermettih.

1. **php.ini** tas-SAPI rispettiva
2. **Fajls addizzjonali** mid-direttorju tal-iskanjar, alfabetikament
3. **Konfigurazzjoni tas-server:** pool ta' FPM b'`php_value` jew `php_admin_value`, VirtualHost ta' Apache
4. **Livell tad-direttorju:** `.htaccess` ma' mod_php, `.user.ini` ma' FPM u CGI
5. **Waqt it-tħaddim:** `ini_set()` fil-kodiċi tal-applikazzjoni

L-eċċezzjoni hija deċiżiva: valuri permezz ta' `php_admin_value` jew `php_admin_flag` ma jistgħux, skont il-manwal, jiġu sorpassati b'`ini_set()`. B'hekk l-amministraturi jsakkru settings rilevanti għas-sigurtà kontra l-applikazzjoni. Dan huwa deskritt fid-dettall taħt [php_admin_value: ssakkru settings kontra s-sorpass](https://phpsos.de/mt/blog/php-admin-value-sperren/).

## Il-php.ini wara PHP2Shell: x'inbidel

Il-miżuri temporanji minn php.net dwar PHP2Shell huma kważi kollha settings INI: `memory_limit=-1` imsakkar kontra s-sorpass, `post_max_size` limitat, `session.upload_progress.enabled=0` u fuq PHP 8.5 `fatal_error_backtraces=0`. php.net jenfasizza li `session.upload_progress.enabled` m'għandux jiġi ssettjat permezz ta' `ini_set()` jew `.user.ini`, imma f'php.ini, pool ta' FPM jew konfigurazzjoni tas-server, segwit minn restart tal-workers kollha. Il-lista kompleta tinsab taħt [Miżuri immedjati jekk għadkom ma tistgħux tippatchjaw](https://phpsos.de/mt/php2shell/sofortmassnahmen-ohne-patch/).

Mal-verżjonijiet irranġati 8.5.12, 8.4.27, 8.3.36 u 8.2.35, skont il-manwal, inbidel ukoll `memory_limit`: issa huwa limitu artab. Is-setting il-ġdid `memory_hard_limit_percent` jistabbilixxi limitu iebes. Mingħajr valur proprju huwa d-doppju ta' `memory_limit`, meta dan ikun akbar minn `1G`, il-valur flimkien ma' `1G`. Jekk jinqabeż, il-proċess jintemm immedjatament b'exit status 137. Kif tagħżlu ż-żewġ limiti b'mod raġonevoli jispjega [Kif tissettjaw memory_limit sew](https://phpsos.de/mt/blog/memory-limit-richtig-setzen/).

> **Suġġeriment:**
> Skont il-manwal japplika: jekk verżjoni ta' PHP ma tagħrafx `memory_hard_limit_percent`, hija affettwata minn CVE-2026-109618 u CVE-2026-109619. Fid-distribuzzjonijiet b'backports, il-changelog tal-pakkett jipprova wkoll l-istat.

## Kif jgħin PHP SOS konkretament?

- **Niddeterminaw il-valuri effettivi:** Naqraw għal kull SAPI liema fajls jitgħabbew u liema valur jgħodd fl-aħħar.
- **Ninnaddfu l-livelli:** Nneħħu entrati kontradittorji minn panels, pools, `.htaccess` u `.user.ini`.
- **Nissakkru valuri:** Fil-qafas tal-[tisħiħ tas-server](https://phpsos.de/mt/leistungen/server-haertung/) nistabbilixxu valuri rilevanti għas-sigurtà permezz ta' `php_admin_value`.
- **Niddokumentaw:** Niddokumentaw is-settings u r-restart, biex l-istat ikun jista' jiġi pprovat aktar tard.


## Mistoqsijiet frekwenti

**Fejn tinsab il-php.ini?**  
Dan jiddependi mis-sistema operattiva, mill-pakkett u mis-SAPI. Taħt Debian u Ubuntu hemm folders proprji għal kull verżjoni u SAPI, pereżempju /etc/php/8.3/fpm/php.ini u /etc/php/8.3/cli/php.ini. Fuq il-linja tal-kmand php --ini juri l-fajls mgħobbija, għall-websajt jgħin php_ini_loaded_file() f'fajl ta' verifika għal żmien qasir.

**F'liema ordni jinqraw il-fajls fil-folder conf.d?**  
Skont il-manwal ta' PHP, PHP taqra l-fajls kollha bl-estensjoni .ini fid-direttorju tal-iskanjar f'ordni alfabetika. Fajls aktar tard jissorpassaw il-valuri ta' dawk ta' qabel. Għalhekk ħafna fajls għandhom numri bħal 20- jew 99- f'ismijiethom.

**Għaliex it-tibdil tiegħi fil-php.ini ma jaħdimx?**  
Raġunijiet komuni: inbidel il-fajl ta' SAPI oħra, is-servizz ma reġax inbeda, valur fil-pool ta' FPM, fil-konfigurazzjoni ta' Apache jew f'.user.ini jissorpassah, jew panel tal-hosting jikteb mill-ġdid il-fajl mal-ewwel salvataġġ li jmiss.

**X'inhu memory_hard_limit_percent?**  
Setting ġdid li, skont il-manwal ta' PHP, ġie introdott mal-verżjonijiet tas-sigurtà tal-21/10/2026. Jistabbilixxi limitu iebes tal-memorja bħala perċentwali ta' memory_limit. Il-manwal jindika li verżjoni ta' PHP li ma tafx dan is-setting hija affettwata mill-vulnerabbiltajiet ta' PHP2Shell.

## Sorsi

- [Manwal ta' PHP: Il-fajl tal-konfigurazzjoni](https://www.php.net/manual/en/configuration.file.php)
- [Manwal ta' PHP: Modalitajiet tal-bidla tal-INI](https://www.php.net/manual/en/configuration.changes.modes.php)
- [Manwal ta' PHP: Fajls .user.ini](https://www.php.net/manual/en/configuration.file.per-user.php)
- [Manwal ta' PHP: Settings tal-qalba](https://www.php.net/manual/en/ini.core.php)
