# php_admin_value: ibblokka l-issettjar kontra sostituzzjoni

> php_admin_value u php_admin_flag spjegati: kif tibblokka valuri ta' PHP fil-pool FPM u f'Apache kontra ini_set(), .htaccess u .user.ini u tivverifikah.

Sors: https://phpsos.de/mt/blog/php-admin-value-sperren/  
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:** `php_admin_value` u `php_admin_flag` jissettjaw l-issettjar ta' PHP fil-pool PHP-FPM jew fil-konfigurazzjoni ta' Apache b'mod li l-applikazzjonijiet ma jistgħux jibdluh la b'`ini_set()` u lanqas b'`.htaccess`. php.net jitlob eżattament dan għall-miżuri tranżitorji ta' PHP2Shell, pereżempju għal `memory_limit=-1`. Wara li jiġi ssettjat, is-servizz irid jerġa' jibda, u l-valur għandu jiġi vverifikat fil-kuntest tal-web.

## Għaliex „issettjat” ma jfissirx „imblukkat”

Fil-jiem wara l-21 ta' Ottubru 2026 ħafna amministraturi kitbu l-miżuri tranżitorji ta' php.net fil-php.ini tagħhom. Dettall tar-rakkomandazzjoni spiss intilef: `memory_limit=-1` għandu jkun issettjat b'mod li l-applikazzjonijiet ma jistgħux jegħlbuh. php.net isemmi għal dan espliċitament `php_admin_value` fil-pool FPM jew fil-konfigurazzjoni ta' Apache.

Ir-raġuni hija sempliċi. Ħafna CMS, ħwienet u frameworks jissettjaw valuri proprji, pereżempju limitu ogħla tal-memorja għall-importazzjonijiet. Jekk il-valur jinsab biss fil-php.ini, l-applikazzjoni tegħlbu fis-sejħa li jmiss. Il-miżura ta' protezzjoni teżisti allura fuq il-karta, imma mhux fil-proċess li jaħdem.

Dan ma jolqotx biss PHP2Shell. Kull tisħiħ, minn output ta' żbalji mitfi sa limiti tal-upload, huwa b'saħħtu daqs l-aktar livell dgħajjef tiegħu.

## Min jista' jibdel l-issettjar ta' PHP

PHP jaf erba' modalitajiet ta' bidla. Kull issettjar għandu waħda minnhom, u tiddetermina f'liema postijiet jista' jiġi ssettjat. Is-sinifikati joriġinaw mill-manwal ta' PHP.

| Modalità | Fejn jista' jiġi ssettjat il-valur | Eżempji |
|---|---|---|
| `INI_USER` | fl-iskript b'`ini_set()` u f'`.user.ini` | ftit valuri tar-runtime |
| `INI_PERDIR` | php.ini, `.htaccess`, `httpd.conf`, `.user.ini` | `post_max_size`, `session.upload_progress.enabled` |
| `INI_SYSTEM` | biss php.ini jew `httpd.conf` | `file_uploads`, `disable_functions` |
| `INI_ALL` | kullimkien, anke b'`ini_set()` | `memory_limit`, `display_errors`, `open_basedir` |

Perikolużi huma l-aktar valuri `INI_ALL`: jistgħu jinbidlu minn kull skript. Valuri `INI_PERDIR` ma jistgħux jinbidlu b'`ini_set()`, imma iva permezz ta' `.htaccess` ma' mod_php jew `.user.ini` ma' PHP-FPM. Min għandu drittijiet tal-kitba fil-webroot, jiġifieri anke kodiċi introdott, jista' joħloq fajls bħal dawn.

## php_admin_value fil-pool FPM u f'Apache

Ma' PHP-FPM il-valuri jinsabu fil-fajl tal-pool. Il-manwal ta' PHP jistabbilixxi: valuri ssettjati b'`php_admin_value` u `php_admin_flag` ma jistgħux jiġu megħlubin b'`ini_set()`. Għal valuri on-off uża `php_admin_flag`, għall-oħrajn kollha `php_admin_value`.

```ini
; /etc/php/8.3/fpm/pool.d/seite1.conf (silta)
[seite1]
user = seite1
group = seite1
listen = /run/php/seite1.sock

php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 32M
php_admin_value[upload_max_filesize] = 24M
php_admin_flag[session.upload_progress.enabled] = off
php_admin_flag[display_errors] = off
php_admin_value[error_log] = /var/log/php/seite1-fehler.log
php_admin_value[open_basedir] = /var/www/seite1/:/tmp/seite1/
```

`memory_limit=-1` skont php.net jappartjeni fil-konfigurazzjoni biss flimkien ma' limitu tal-memorja permezz ta' container jew cgroup. Kif dan jirnexxi b'systemd jinsab fl-artikolu [Issettja limiti tal-memorja b'systemd u cgroups](https://phpsos.de/mt/blog/speichergrenzen-systemd-cgroups/).

Ma' Apache b'mod_php id-direttivi jappartjenu fil-konfigurazzjoni tas-server jew fil-VirtualHost. Skont il-manwal ta' PHP mhumiex permessi f'`.htaccess`, u ladarba jiġu ssettjati, la `.htaccess` u lanqas `ini_set()` ma jistgħu jibdluhom.

```apache
<VirtualHost *:443>
    ServerName www.example.de
    DocumentRoot /var/www/seite1/public
    <IfModule php_module>
        php_admin_value memory_limit -1
        php_admin_value post_max_size 32M
        php_admin_value upload_max_filesize 24M
        php_admin_flag session.upload_progress.enabled off
        php_admin_flag display_errors off
    </IfModule>
</VirtualHost>
```

Żewġ dettalji mill-manwal: biex tħassar valur issettjat qabel, uża `none` bħala valur. U kostanti ta' PHP bħal `E_ALL` m'għandhomx tifsira fil-konfigurazzjoni ta' Apache; għal `error_reporting` hemm trid tindika l-valur numeriku.

## Liema valuri għandek tibblokka

Mhux kull issettjar jrid jiġi mblukkat. Huwa sensibbli għal kull ma jolqot is-sigurtà jew iservi bħala miżura tranżitorja:

1. Il-valuri tranżitorji ta' PHP2Shell minn php.net: `memory_limit`, `post_max_size`, `upload_max_filesize`, `session.upload_progress.enabled` u fuq PHP 8.5 `fatal_error_backtraces`.
2. Output ta' żbalji u rreġistrar: `display_errors`, `display_startup_errors`, `log_errors`, `error_log`.
3. Aċċess għall-fajls u iżolament: `open_basedir`, `upload_tmp_dir`, `session.save_path`.
4. Aċċessi tan-netwerk minn PHP: `allow_url_include` u, jekk l-applikazzjoni ma teħtiġx, `allow_url_fopen`.
5. Funzjonijiet imblukkati permezz ta' `disable_functions`, li fil-pool skont il-manwal jikkomplementaw il-lista tal-php.ini u ma jissostitwuhiex. Dettalji fil-gwida [Uża disable_functions sew](https://phpsos.de/mt/ratgeber/disable-functions/).

Ma' `session.upload_progress.enabled` il-blokk huwa partikolarment importanti, għax inkella l-valur jista' jerġa' jinxtegħel permezz ta' `.user.ini`. Aktar dwar dan taħt [session.upload_progress: itfi sew u b'mod permanenti](https://phpsos.de/mt/blog/session-upload-progress-abschalten/).

## Ivverifika li l-blokk jaħdem

Wara kull bidla erġa' ibda s-servizz u ivverifika l-valur fil-kuntest tal-web. Fajl qasir ta' verifika, imħassar minnufih, juri jekk il-pool iżommx il-valur, anke meta l-applikazzjoni tipprova tibdlu:

```php
<?php
// Fajl ta' verifika: poġġih għal ftit, iftaħ darba mid-dominju, ħassru minnufih
header('Content-Type: text/plain');
$vorher = ini_get('memory_limit');
$versuch = @ini_set('memory_limit', '256M');
echo "memory_limit: $vorher\n";
echo 'Änderung per ini_set() ', ($versuch === false ? 'blockiert' : 'MÖGLICH'), "\n";
```

Jiġi mistenni `-1` u „blockiert”. Jekk l-output jgħid „MÖGLICH”, il-valur mhuwiex issettjat b'`php_admin_value` jew is-servizz għadu ma tqabbadx mill-ġdid. Irrepeti l-verifika għal kull pool u kull verżjoni ta' PHP.

> **Suġġeriment:**
> Żomm il-valuri mblukkati ċentralment, pereżempju f'mudell tal-pool jew fil-ġestjoni tal-konfigurazzjoni tiegħek. Panels tal-hosting kultant jikitbu fuq fajls tal-pool mibdula bl-id fil-ħażna li jmiss; hemmhekk il-valuri jappartjenu fl-oqsma previsti mill-panel.

Kif PHP jorganizza globalment il-livelli tal-konfigurazzjoni jispjegah [Il-php.ini spjegat: struttura, livelli u preċedenza](https://phpsos.de/mt/php/php-ini-erklaert/). Il-miżuri tranżitorji sħaħ jinsabu taħt [Miżuri immedjati meta ma tistax tippatchja għadek](https://phpsos.de/mt/php2shell/sofortmassnahmen-ohne-patch/).

## Konklużjoni: biss imblukkat huwa verament issettjat

Il-miżuri tranżitorji ta' php.net għal PHP2Shell tellgħu fil-kuxjenza distinzjoni li qabel spiss kienet injorata: valur fil-php.ini huwa għal ħafna issettjar biss suġġeriment, valur f'`php_admin_value` huwa regola. Għal valuri ta' kumdità bħaż-żona tal-ħin id-differenza mhijiex importanti. Għal issettjar tas-sigurtà u miżuri tranżitorji tiddeċiedi jekk il-miżura taħdimx fil-fatt fl-operat li għaddej.

L-isforz huwa raġonevoli: ftit linji għal kull pool jew VirtualHost, restart, verifika qasira. Żomm il-lista tal-valuri mblukkati żgħira u mmotivata, biex l-iżviluppaturi jifhmu għaliex l-applikazzjoni tagħhom ma tistax tibdel valur. U żomm il-lista fil-mudelli tiegħek, biex websajts ġodda jirtuha awtomatikament.

## Kif tgħin PHP SOS b'mod konkret?

- **Naqraw il-livelli:** niddeterminaw għal kull websajt liema valuri mill-php.ini, mill-pool, minn Apache, minn `.htaccess` jew minn `.user.ini` japplikaw fil-fatt.
- **Nissettjaw il-blokki:** insibu l-valuri rilevanti għas-sigurtà u l-miżuri tranżitorji ta' PHP2Shell bħala `php_admin_value` jew `php_admin_flag` u nerġgħu nibdew is-servizzi.
- **Nittestjaw l-applikazzjoni:** nivverifikaw li l-applikazzjoni taħdem mingħajr żbalji bil-valuri mblukkati u nevalwaw il-log tal-iżbalji.
- **Inżommu l-mudelli:** bħala parti mit-[Tisħiħ tas-server](https://phpsos.de/mt/leistungen/server-haertung/) nieħdu l-valuri f'mudelli tal-pools u fid-dokumentazzjoni.


## Mistoqsijiet frekwenti

**X'inhi d-differenza bejn php_value u php_admin_value?**  
It-tnejn jissettjaw issettjar ta' PHP. Valuri minn php_value l-applikazzjoni tista' terġa' tibdilhom aktar tard, pereżempju b'ini_set() jew .htaccess. Valuri minn php_admin_value u php_admin_flag huma, skont il-manwal ta' PHP, imblukkati għal ini_set(), ma' Apache anke għal .htaccess.

**Nista' nikteb php_admin_value f'fajl .htaccess?**  
Le. Skont il-manwal ta' PHP, php_admin_value mhuwiex permess f'fajls .htaccess. Jappartjeni fil-konfigurazzjoni tas-server ta' Apache jew fil-VirtualHost, ma' PHP-FPM fil-fajl tal-pool.

**X'jiġri meta applikazzjoni tipprova tibdel valur imblukkat?**  
Is-sejħa ta' ini_set() tfalli u tirritorna false, il-valur imblukkat jibqa'. Applikazzjonijiet miktuba tajjeb jaħdmu miegħu. Madankollu ivverifika l-log tal-iżbalji u l-funzjonijiet l-aktar importanti wara l-bidla.

**Għandi nerġa' nibda wara bidla fil-pool?**  
Iva. PHP-FPM jaqra l-fajls tal-pool mal-bidu jew mar-reload tas-servizz. Ma' Apache b'mod_php l-istess japplika għall-konfigurazzjoni tas-server. Mingħajr restart il-valur il-qadim ikompli jaħdem.

**disable_functions jista' jiġi estiż fil-pool?**  
Iva, b'karatteristika waħda: skont il-manwal ta' PHP, disable_functions fil-pool FPM ma jegħlebx il-valuri mill-php.ini, imma jikkomplementahom. Il-pool jista' għalhekk jibblokka funzjonijiet addizzjonali, imma ma jistax jerġa' jippermetti.

## Sorsi

- [Manwal ta' PHP: konfigurazzjoni ta' FPM](https://www.php.net/manual/en/install.fpm.configuration.php)
- [Manwal ta' PHP: bidla tal-konfigurazzjoni](https://www.php.net/manual/en/configuration.changes.php)
- [Manwal ta' PHP: modalitajiet ta' bidla tal-issettjar](https://www.php.net/manual/en/configuration.changes.modes.php)
- [php.net: avviżi tas-sigurtà](https://www.php.net/)
