Errore 500 in modalità suPHP: permessi di file e cartelle (chmod)
Capire l'«Internal Server Error» in modalità suPHP e come impostare correttamente i permessi.
500 Internal Server Error è un codice di stato HTTP che indica che il server è in esecuzione, ma ha incontrato un errore critico che gli impedisce di elaborare la richiesta.
A cosa serve suPHP
Nella modalità standard mod_php, Apache viene sempre eseguito con un unico utente condiviso — nobody. Questo è tutt'altro che ideale: permessi configurati in modo errato possono consentire ad altri utenti dello stesso server di leggere o addirittura modificare i tuoi file. Inoltre, quando gli script creano o modificano file sotto nobody, quei file diventano impossibili da eliminare o modificare via FTP.
suPHP risolve entrambi i problemi eseguendo ogni processo con il reale proprietario dell'account. I tuoi file rimangono tuoi.
Impostazioni corrette dei permessi
| Permesso | Si applica a | Significato |
|---|---|---|
644 |
File | Il proprietario può scrivere; gli altri possono solo leggere (predefinito) |
444 |
File | Sola lettura per tutti, inclusi i tuoi script |
755 |
Cartelle | Accesso standard alle cartelle (predefinito, nessuna modifica necessaria) |
Alcune regole importanti:
755deve essere impostato sulla cartella/public_html/your_domain- Non modificare mai i permessi di cartelle e file di sistema come
stats,logs,.htpasswdo la directory/domains - Tutte le modifiche ai permessi devono riguardare solo
/public_html/your_domaine il suo contenuto - Non impostare mai
666o777su file o cartelle — gli script non verranno eseguiti con questi permessi e l'intero account sarà a rischio
Suggerimento
Con i permessi 644, solo gli script in esecuzione nel tuo account possono scrivere sui file. Nessun altro può farlo. Per un livello di sicurezza aggiuntivo, puoi passare a 444 — in questo caso nemmeno i tuoi script potranno scrivere, anche se si tratta di una scelta del tutto opzionale.
I nostri prodotti e servizi
Cause comuni dell'errore 500 Internal Server Error
In modalità suPHP, un errore 500 significa quasi sempre che il server ha bloccato uno script per uno di questi motivi:
- Un file ha permessi diversi da
644o444— ad esempio666 - Una cartella ha permessi diversi da
755— ad esempio777 - Il tuo
.htaccesscontiene direttive non supportate da suPHP
Direttive .htaccess non supportate in modalità suPHP
suPHP non supporta le direttive di ambiente PHP all'interno di .htaccess, tra cui php_flag, php_admin_flag, php_value e simili. Se il tuo .htaccess contiene qualcosa come:
php_flag register_globals On
o anche solo:
display_errors Off
Il server restituirà immediatamente un 500 Internal Server Error. Rimuovi queste righe e configura le impostazioni PHP tramite un file php.ini personalizzato.
Aiuto
Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!