# display_errors off: itfi l-output tal-iżbalji fil-produzzjoni

> display_errors Off u aktar: liema issettjar ta' PHP iżomm messaġġi ta' żball 'il bogħod mill-websajt live, x'iżidu l-frameworks u kif tivverifika.

Sors: https://phpsos.de/mt/blog/display-errors-produktion/  
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:** Fuq websajt live `display_errors = Off` jappartjeni fil-php.ini, flimkien ma' `display_startup_errors = Off`, `log_errors = On` u log tal-iżbalji barra mill-webroot. Barra minn hekk is-CMS u l-frameworks iridu jaħdmu fil-modalità tal-produzzjoni, inkella l-paġni ta' żball proprji tagħhom juru d-dettalji. Imblukkati b'`php_admin_flag` u vverifikati wara kull aġġornament, l-iżbalji jibqgħu fil-log minflok fil-browser.

## X'jiżvela messaġġ wieħed ta' żball

Twissija fin-naħa ta' fuq tal-paġna, „Fatal error” minflok is-sommarju tal-ordni: output bħal dan jidher bla ħsara. Għal attakkant huwa mappa. Juri mogħdijiet sħaħ ta' fajls, ismijiet ta' databases u tabelli, libreriji użati u ħafna drabi l-verżjoni ta' PHP.

Eżattament f'sitwazzjonijiet bħal PHP2Shell, fejn ikun għaddej tiftix massiv għal servers vulnerabbli, server għandu jiżvela kemm jista' jkun inqas dwar nnifsu. Dan ma jagħlaqx vulnerabbiltà fl-interpretatur ta' PHP, imma jagħmel kull pass ulterjuri wara dħul aktar diffiċli u jagħmel attakki immirati fuq l-applikazzjoni tiegħek aktar tqal.

Hemm ukoll il-protezzjoni tad-data. Messaġġi ta' żball jistgħu jkun fihom partijiet minn talbiet, pereżempju indirizzi tal-email minn formoli. Dak li jidher fil-browser ta' viżitatur m'huwiex aktar taħt il-kontroll tiegħek.

## Il-valuri standard mhumiex maħsuba għall-produzzjoni

Ħafna jassumu li PHP jaħbi l-iżbalji waħdu. Il-manwal ta' PHP jgħid xi ħaġa oħra: il-valur standard integrat ta' `display_errors` huwa 1, u `display_startup_errors` minn PHP 8.0 huwa wkoll mixgħul b'mod standard. Biss il-mudell mogħti `php.ini-production` jissettja t-tnejn fuq Off. Il-manwal isejjaħ `display_errors` espliċitament funzjoni tal-iżvilupp li qatt m'għandha tintuża fuq sistemi fuq l-internet.

Jekk is-server tiegħek juża l-mudell tal-produzzjoni, mhuwiex ovvju. Images tal-containers kultant jibdew mingħajr php.ini, panels tal-hosting jissettjaw valuri proprji, u wara trasferiment spiss jiġi kkupjat il-mudell tal-iżvilupp.

## display_errors off: l-issettjar b'ħarsa ġenerali

Il-valuri li ġejjin huma sensibbli għal servers tal-produzzjoni. Il-kostanti bħal `E_ALL` jaħdmu biss fil-php.ini; fil-konfigurazzjoni ta' Apache, skont il-manwal ta' PHP, m'għandhom l-ebda tifsira u jridu jingħataw bħala numru.

| Issettjar | Produzzjoni | Skop |
|---|---|---|
| `display_errors` | `Off` | l-ebda żbalji fil-browser |
| `display_startup_errors` | `Off` | l-ebda żbalji fl-output mal-bidu ta' PHP |
| `log_errors` | `On` | ikteb l-iżbalji fil-protokoll |
| `error_log` | mogħdija barra mill-webroot | fajl tal-log proprju għal kull websajt jew pool |
| `error_reporting` | `E_ALL` | irreġistra l-iżbalji kollha, ma turix |
| `html_errors` | `Off` | test sempliċi minflok HTML fil-protokolli |
| `zend.exception_ignore_args` | `On` | l-ebda argumenti ta' funzjoni fl-stacktraces |
| `fatal_error_backtraces` | `0` sal-aġġornament (biss PHP 8.5) | miżura tranżitorja skont php.net |

`zend.exception_ignore_args` huwa partikolarment prezzjuż. Mingħajr dan l-issettjar, stacktraces fil-logs u fuq paġni ta' żball jistgħu jkun fihom l-argumenti ta' sejħiet ta' funzjonijiet, jiġifieri anke passwords jew tokens li kienu għadhom qed jiġu pproċessati.

```ini
; php.ini tas-SAPI tal-web
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php/website-fehler.log
error_reporting = E_ALL
html_errors = Off
zend.exception_ignore_args = On
; biss PHP 8.5, miżura tranżitorja sal-aġġornament għal 8.5.12:
; fatal_error_backtraces = 0
```

Fil-pool FPM ibblokka addizzjonalment il-valuri l-aktar importanti, biex l-ebda applikazzjoni ma terġa' tixgħelhom b'`ini_set()`:

```ini
; pereżempju /etc/php/8.3/fpm/pool.d/seite1.conf
php_admin_flag[display_errors] = off
php_admin_flag[display_startup_errors] = off
php_admin_flag[log_errors] = on
php_admin_value[error_log] = /var/log/php/seite1-fehler.log
```

Wara erġa' ibda s-servizz rispettiv ta' PHP. Kif jaħdem eżattament il-blokk jispjegah l-artikolu [php_admin_value: ibblokka l-issettjar kontra sostituzzjoni](https://phpsos.de/mt/blog/php-admin-value-sperren/). Konfigurazzjoni bażika kompluta ssibha taħt [Ikkonfigura php.ini b'mod sigur](https://phpsos.de/mt/ratgeber/php-ini-sicher-konfigurieren/).

## It-tieni switch: il-modalità debug tal-applikazzjoni

PHP huwa biss nofs il-paga. Frameworks moderni jaqbdu l-iżbalji stess u juru paġni ta' żball proprji, ħafna drabi dettaljati ħafna. Fil-modalità debug fihom siltiet tal-kodiċi sors, valuri ta' konfigurazzjoni u kultant varjabbli tal-ambjent. Dawn il-paġni jidhru wkoll meta `display_errors` f'PHP ikun mitfi.

Għalhekk ivverifika għal kull applikazzjoni l-switch proprju. F'WordPress dawn huma `WP_DEBUG` u `WP_DEBUG_DISPLAY` fil-`wp-config.php`, f'Laravel u Symfony `APP_DEBUG` u l-ambjent fil-fajl `.env`, f'sistemi oħra l-modalità tal-produzzjoni skont id-dokumentazzjoni tal-manifattur. Fuq sistema live l-modalità debug tappartjeni mitfija b'mod permanenti, anke „biss għal ftit biex nittestjaw” hija riskju.

Kif l-iżbalji jiġu ttrattati sew fl-applikazzjoni, minflok ma jiġu mrażżna, tiddeskrivih [Żbalji u exceptions f'PHP](https://phpsos.de/mt/php/fehler-und-exceptions/).

## Hekk issib output ta' żbalji qabel ma jsibuh l-oħrajn

Li tissettja darba ma jkunx biżżejjed. L-output ta' żbalji jirritorna wara aġġornamenti, trasferimenti jew bidliet fil-panel. Proċess qasir ta' verifika jgħin:

1. Ivverifika l-valuri effettivi fil-kuntest tal-web, mhux biss fuq il-linja tal-kmand, pereżempju b'fajl ta' verifika poġġut għal ftit u mneħħi minnufih.
2. Ikkontrolla l-modalità debug ta' kull applikazzjoni fil-fajl ta' konfigurazzjoni tagħha.
3. Fittex fil-paġni mwassla testi tipiċi ta' żbalji, kif fil-blokk tal-kodiċi hawn taħt.
4. Fil-magna tat-tiftix, b'query `site:` fuq id-dominju tiegħek, fittex termini bħal „Fatal error” jew „Warning”.
5. Ivverifika li l-log tal-iżbalji jinkiteb u mhux fil-webroot.

```bash
# Fittex fil-paġni mwassla testi ta' żbalji ta' PHP (biss id-dominji tiegħek)
for url in https://www.example.de/ https://www.example.de/kontakt/; do
  curl -s "$url" | grep -E -o "(Fatal error|Warning|Notice|Deprecated|Stack trace)[^<]{0,80}" | head -3
done
# Il-log tal-iżbalji jinkiteb?
ls -l /var/log/php/
```

> **Importanti:**
> Li taħbi l-iżbalji mhuwiex sostitut biex issewwihom. Log mimli twissijiet huwa sinjal ta' bżonn ta' manutenzjoni, u wara dħul spiss huwa traċċa importanti. X'tirreġistra u x'ma tirreġistrax jiddeskrivih [Irreġistra b'mod sigur: iżbalji mingħajr tnixxija ta' data](https://phpsos.de/mt/blog/sicher-loggen-php/).

## Konklużjoni: kwiet fil-browser, ċajtier fil-log

Ir-regola għal servers tal-produzzjoni hija sempliċi: l-iżbalji jappartjenu fil-protokoll, mhux fuq il-websajt. Fil-prattika tfalli minħabba valuri standard li mhumiex maħsuba għall-produzzjoni, switches tad-debug fl-applikazzjonijiet u konfigurazzjonijiet li jirritornaw wara aġġornamenti jew trasferimenti.

Min jitfi `display_errors` u `display_startup_errors`, jibblokka l-valuri fil-pool, jikkontrolla l-modalità debug tal-applikazzjoni u jivverifika r-riżultat regolarment jagħlaq waħda mill-aktar sorsi komuni ta' żvelar bla bżonn ta' informazzjoni. L-isforz huwa żgħir, l-effett idum sakemm il-verifika tibqa' parti minn kull aġġornament.

Punt wieħed m'għandux jinsa: il-log tal-iżbalji mhuwiex borma tal-iskart. Min jaqrah regolarment jagħraf aġġornamenti difettużi, funzjonijiet skaduti u kultant ukoll l-ewwel traċċi ta' attakk, ħafna qabel ma l-klijenti jinnotaw xi ħaġa.

## Kif tgħin PHP SOS b'mod konkret?

- **Nivverifikaw:** naqraw l-issettjar effettiv tal-iżbalji għal kull websajt u pool u nfittxu fil-paġni mwassla output ta' żbalji.
- **Nbiddlu:** nissettjaw l-issettjar ta' PHP u tal-applikazzjoni għall-operat tal-produzzjoni u nibblokkawh kontra sostituzzjoni.
- **Nistabbilixxu l-protokolli:** il-logs tal-iżbalji jinsabu barra mill-webroot, jiġu rrotati u huma aċċessibbli għall-iżviluppaturi tiegħek.
- **Nżommuh permanenti:** fil-[Kuntratt ta' manutenzjoni tas-sigurtà](https://phpsos.de/mt/leistungen/security-wartungsvertrag/) nivverifikaw l-issettjar mill-ġdid wara kull aġġornament.


## Mistoqsijiet frekwenti

**display_errors f'PHP mhuwiex diġà mitfi xorta waħda?**  
Mhux awtomatikament. Skont il-manwal ta' PHP, il-valur standard integrat ta' display_errors huwa 1. Biss il-mudell mogħti php.ini-production jissettja Off. Jekk is-server tiegħek juża dan il-mudell jiddependi mid-distribuzzjoni, mill-panel jew mill-image tal-container u għandu jiġi vverifikat.

**display_errors = Off huwa biżżejjed jekk WordPress jew Laravel jaħdmu fil-modalità debug?**  
Le. Ħafna CMS u frameworks għandhom paġni ta' żball proprji li jistgħu juru dettalji indipendentement minn PHP. Għalhekk itfi wkoll il-modalità debug tal-applikazzjoni, pereżempju WP_DEBUG_DISPLAY f'WordPress jew APP_DEBUG f'Laravel u Symfony.

**Fejn imorru l-iżbalji meta ma jidhrux aktar?**  
B'log_errors = On, PHP jiktibhom fil-fajl imsemmi minn error_log, jew fil-protokoll tal-modalità tat-tħaddim rispettiva, pereżempju l-log tal-iżbalji ta' Apache jew PHP-FPM. Il-fajl għandu jkun barra mill-webroot u jiġi rrotat regolarment.

**X'għandu x'jaqsam fatal_error_backtraces ma' PHP2Shell?**  
L-issettjar jeżisti minn PHP 8.5 u huwa attiv b'mod standard. php.net isemmi fatal_error_backtraces=0 bir-restart wara bħala waħda mill-miżuri tranżitorji għal PHP 8.5, sakemm l-aġġornament għal 8.5.12 għadu pendenti. Ma jissostitwixxix l-aġġornament.

## Sorsi

- [Manwal ta' PHP: ġestjoni tal-iżbalji u rreġistrar](https://www.php.net/manual/en/errorfunc.configuration.php)
- [Manwal ta' PHP: bidla tal-konfigurazzjoni (php_admin_flag)](https://www.php.net/manual/en/configuration.changes.php)
- [php.net: avviżi tas-sigurtà](https://www.php.net/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
