Internal Server Error 500: cause e soluzioni su Apache e cPanel : cpanel

Un Internal Server Error, spesso mostrato come errore HTTP 500, indica che il server non è riuscito a completare la richiesta. Il messaggio è generico: non identifica da solo la causa e non significa necessariamente che il server sia guasto. Su Apache e cPanel il problema può dipendere da un file .htaccess non valido, da permessi o proprietà errati, da un errore PHP, da un plugin WordPress, dalla versione di PHP oppure dal superamento di un limite di risorse.

La soluzione più sicura non è modificare file a tentativi, ma leggere prima il log degli errori, individuare l’evento relativo all’ora e all’URL interessati e intervenire solo sull’elemento indicato. Prima di ogni modifica è inoltre opportuno creare un backup dei file e del database.

Che cos’è un Internal Server Error 500

Il codice HTTP 500 Internal Server Error viene restituito quando il server incontra una condizione imprevista che gli impedisce di generare correttamente la pagina. Il browser vede soltanto il codice generico, mentre il dettaglio tecnico viene normalmente scritto nei log del server o dell’applicazione.

L’errore può interessare tutto il sito oppure una singola pagina. Se compare dopo un aggiornamento, una modifica al file .htaccess, il cambio della versione PHP o l’installazione di un plugin, l’ultima operazione eseguita è il primo elemento da verificare. Se invece appare senza modifiche evidenti, occorre controllare log, risorse e integrità dei file.

Prima verifica: leggere il log degli errori in cPanel

In cPanel apri Metriche → Errori. La pagina mostra gli eventi recenti registrati per il dominio e può indicare il file, la riga o la direttiva che ha causato il problema. In alcuni account è disponibile anche un file error_log nella cartella del sito, ad esempio dentro public_html o nella directory dell’applicazione.

Riproduci l’errore una sola volta, annota l’ora esatta e aggiorna il log. Cerca una riga con lo stesso orario e con il percorso della pagina coinvolta. Messaggi come PHP Fatal error, Allowed memory size exhausted, Invalid command, Permission denied o End of script output before headers portano a diagnosi differenti.

Non pubblicare integralmente i log: possono contenere percorsi del server, indirizzi IP o altri dati tecnici. Quando chiedi assistenza, invia soltanto le righe pertinenti insieme all’ora dell’errore e all’URL interessato.

Cause più comuni dell’errore 500 su Apache e cPanel

1. File .htaccess errato o non compatibile

Una direttiva scritta male, non consentita dalla configurazione del server oppure rimasta da una vecchia versione di PHP può produrre immediatamente un Internal Server Error. Anche regole di riscrittura che si richiamano tra loro possono creare un ciclo e impedire il caricamento della pagina.

Dal File Manager di cPanel attiva la visualizzazione dei file nascosti, crea una copia di sicurezza di .htaccess e rinominalo temporaneamente, per esempio in .htaccess-old. Se il sito torna raggiungibile, la causa è contenuta nel file. Non lasciare però il sito senza regole: ricrea un file pulito e reinserisci le direttive una alla volta.

Le vecchie righe come AddType application/x-httpd-php5 .php non devono essere copiate in configurazioni moderne. La versione PHP va selezionata dagli strumenti previsti dal proprio hosting, come MultiPHP Manager o Select PHP Version, senza riutilizzare handler obsoleti.

Su WordPress puoi rigenerare le regole standard aprendo Impostazioni → Permalink e salvando nuovamente la struttura, dopo aver verificato che l’area amministrativa sia accessibile. Conserva eventuali regole personalizzate e ripristinale soltanto dopo averle controllate.

2. Permessi o proprietà di file e cartelle

In una configurazione hosting tipica, le cartelle utilizzano permessi 755 e i file 644. Gli script che devono essere realmente eseguibili possono richiedere impostazioni differenti, ma non è corretto assegnare indiscriminatamente 755 a tutti i file. I permessi 777 sono generalmente inutili e rischiosi.

ElementoPermesso tipicoNota
Cartelle755Il proprietario può scrivere; gli altri possono leggere e attraversare.
File644Il proprietario può scrivere; gli altri possono leggere.
Script CGI eseguibili755Solo quando l’esecuzione è effettivamente richiesta.

Controlla i valori dal File Manager o tramite FTP. Se sembrano corretti ma il log continua a mostrare Permission denied, il problema potrebbe essere il proprietario del file e non il numero dei permessi. In questo caso evita correzioni ricorsive alla cieca e chiedi al provider di verificare ownership e gruppo.

3. Errore PHP o limite di memoria

Un errore fatale PHP interrompe l’esecuzione e può essere visualizzato come errore 500. Il log indica normalmente il file e la riga coinvolti. Le cause frequenti includono funzioni mancanti, codice non compatibile con la versione PHP attiva, estensioni assenti e memoria insufficiente.

Se trovi Allowed memory size exhausted, verifica il consumo dell’applicazione prima di aumentare il limite. Un plugin difettoso o una query anomala possono esaurire anche un valore elevato. Quando il piano lo consente, i limiti PHP possono essere modificati in cPanel da Select PHP Version → Options oppure da MultiPHP INI Editor. Consulta anche la guida su Allowed memory size exhausted in PHP.

Dopo un cambio di versione PHP controlla che tutte le estensioni necessarie siano abilitate e che CMS, tema e plugin siano compatibili. Non passare a una versione PHP obsoleta come soluzione permanente: usa il downgrade soltanto come test temporaneo e pianifica l’aggiornamento del componente incompatibile.

4. Plugin o tema WordPress incompatibile

Se l’errore è comparso subito dopo l’attivazione o l’aggiornamento di un plugin, disattivalo dall’area amministrativa. Se WordPress non è accessibile, rinomina via File Manager la cartella del singolo plugin dentro wp-content/plugins. Per una diagnosi generale puoi rinominare temporaneamente la cartella plugins, verificare il sito e poi ripristinare il nome originale.

Con WP-CLI, quando disponibile, puoi controllare lo stato dei plugin e disattivare quello sospetto:

wp plugin list
wp plugin deactivate nome-plugin

Per escludere il tema, attiva temporaneamente un tema WordPress predefinito soltanto dopo aver effettuato un backup e verificato che sia installato. Non sostituire intere cartelle wp-admin o wp-includes senza aver prima identificato la causa e controllato la versione esatta del core.

5. Limiti di risorse o processi interrotti

CPU, memoria, processi simultanei e timeout possono essere superati durante importazioni, backup, scansioni, operazioni WooCommerce o picchi di traffico. In cPanel verifica le statistiche disponibili e confronta l’orario del limite con quello dell’errore. Aumentare un valore può aiutare solo se il carico è legittimo e temporaneo; in presenza di un processo anomalo è necessario correggere la causa.

6. File danneggiati o caricamenti incompleti

Un aggiornamento interrotto può lasciare file mancanti o parziali. Confronta i file con una copia integra della stessa versione dell’applicazione e controlla lo spazio disponibile. Per WordPress, WP-CLI permette di verificare i checksum del core senza modificare i contenuti:

wp core verify-checksums

Se la verifica segnala differenze, crea un backup e reinstalla soltanto i file del core della medesima versione. Le cartelle wp-content e i file di configurazione non devono essere sovrascritti indiscriminatamente.

Come attivare il debug di WordPress senza mostrare errori ai visitatori

Quando il log del server non basta, WordPress può registrare gli errori nel file wp-content/debug.log. Inserisci temporaneamente nel file wp-config.php, prima della riga finale di stop, queste costanti:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

In questo modo gli errori vengono registrati senza essere mostrati pubblicamente. Riproduci il problema, scarica le sole righe utili e poi disattiva il debug. Il file di log può contenere informazioni sensibili e non deve essere lasciato accessibile o crescere senza controllo. La procedura completa è descritta anche nella documentazione ufficiale WordPress.

Procedura rapida per risolvere un errore 500

  1. Annota URL, ora esatta e operazione che ha preceduto l’errore.
  2. Crea un backup di file e database.
  3. Consulta cPanel → Metriche → Errori e gli eventuali file error_log.
  4. Se il log indica .htaccess, provalo con un nome temporaneo e ricrea regole pulite.
  5. Controlla permessi, proprietà e spazio disponibile.
  6. Verifica versione, estensioni e limiti PHP.
  7. Su WordPress disattiva il componente indicato e, se necessario, attiva il debug nel log.
  8. Svuota la cache dell’applicazione e del server, quindi riprova in una finestra anonima.
  9. Riattiva un componente alla volta e controlla nuovamente i log.

Cosa comunicare all’assistenza hosting

Se l’Internal Server Error continua, apri una richiesta indicando il dominio, l’URL esatto, l’orario con fuso orario, le operazioni già eseguite e poche righe pertinenti del log. Specifica se il problema riguarda tutte le pagine, soltanto l’amministrazione o un singolo percorso. Queste informazioni permettono di distinguere rapidamente un errore dell’applicazione da un limite o da una configurazione lato server.

Evita di inviare password, chiavi API, cookie, backup completi o log non filtrati. Il supporto può verificare configurazione, proprietà dei file e registri non accessibili dall’account; lo sviluppatore del sito può invece intervenire sul codice indicato dal messaggio PHP.

Domande frequenti sull’Internal Server Error

L’errore 500 significa che il server è offline?

No. Il server può essere perfettamente raggiungibile e non riuscire a completare soltanto una specifica richiesta. Il log degli errori è necessario per conoscere la causa reale.

Posso impostare file e cartelle a 777?

È sconsigliato. In genere le cartelle usano 755 e i file 644. Se questi valori non funzionano, occorre verificare proprietà e configurazione invece di concedere permessi indiscriminati.

Rinominare .htaccess è sufficiente?

È un test diagnostico, non sempre la soluzione definitiva. Se il sito riparte, crea un file valido e reinserisci con cautela le sole regole necessarie.

L’aumento della memoria PHP risolve sempre?

No. Può risolvere un limite adeguato male, ma non corregge un plugin difettoso, un ciclo o una query inefficiente. Prima identifica dal log quale processo consuma memoria.

Quando devo contattare il provider?

Quando non puoi accedere ai log necessari, quando ownership e configurazione del server richiedono privilegi amministrativi oppure quando l’errore persiste dopo aver escluso file .htaccess, applicazione e limiti visibili dall’account.

Una guida cPanel deve partire dalle attività più comuni: gestione dei file, domini, caselle email, database, backup, SSL e statistiche. Le voci possono cambiare in base alla versione, al tema e alle funzioni abilitate dal provider. Prima di modificare DNS, database o file di configurazione è opportuno creare una copia di sicurezza.

Nota di aggiornamento: Le schermate e i nomi delle funzioni variano tra versioni e configurazioni del provider.

Come orientarsi nel pannello cPanel

Guida cPanel aggiornata il giorno 3 Settembre 2019 – Puoi imparare ad utilizzare cPanel seguendo le guide che abbiamo creato per te, è possibile visualizzare i tutorial di cPanel in questa pagina: Guida a cPanel

Guida a cPanel: funzioni principali e gestione hosting

 


Questa è una Guida a cPanel, Pannello di Gestione Hosting presente in tutti i nostri Piani Hosting. La guida in particolare descrive gli elementi del Piano Hosting Premium.

Preferenze
Preferenze

Cambia Password: Questa funzione cambia la password principale del tuo account.

Aggiorna Info Contatto: Questo indirizzo email sarà il contatto per le comunicazioni del tuo dominio.

Wizard Impostazioni Iniziali: Questo wizard ti guiderà attraverso le seguenti modalità di configurazione.

Scorciatoia accesso cPanel: I collegamenti a cPanel sono collegamenti che puoi aggiungere nel browser ai tuoi preferiti. Sono un modo facile per accedere al tuo cPanel.

 

Gestione eMail

Guida a cPanel: funzioni principali e gestione hosting

Aggiungi / Rimuovi Indirizzi: In questa sezione, puoi gestire le caselle di posta elettronica associate al tuo dominio.

Leggi Webmail: Webmail consente la verifica della posta direttamente da un web browser proprio come con un applicativo desktop tipo Outlook Express o Thunderbird. Questo significa che potrai leggere la tua posta da qualunque web browser.

Gestione Webmail: Le caratteristiche mostrate nell’interfaccia webmail possono essere configurate per ogni account email. Se non assegni un profilo all’account email, userà quello predefinito.

Indirizzo eMail Predefinito: L’indirizzo email predefinito o di default “catturerà” tutte le mail ricevute dal dominio con indirizzo non valido o inesistente. Tutte le mail inviate ad un indirizzo inesistente andranno all’indirizzo predefinito.

Autorisponditori: Gli autorisponditori consentono di inviare messaggi di cortesia in modo automatico ad una mail inviata ad un casella postale del dominio. E’ utile ad esempio nelle occasioni in cui sei non reperibile o in vacanza, o se vuoi inviare un messaggio generico da un indirizzo email utilizzato come supporto clienti per confermare di aver ricevuto il messaggio.

Inoltro eMail: I forwarder permettono di trasmettere una copia di tutta la posta da un indirizzo email ad un altro. Per esempio, se avete due caselle differenti joe@domain.com e joseph@domain.com, potreste spedire joe@domain.com a joseph@domain.com in modo da non dover controllare entrambi gli account. Ricordare che comunque la posta spedita al secondo indirizzo sarà comunque ricevuta anche dalla casella cui è destinata.

Importa Account eMail / Forwarder: Potrai usare 2 tipi file per creare molti indirizzi mail o inoltri email per il tuo dominio con una sola azione d’importazione. Per importare i dati puoi utilizzare indipendentemente un file Excel (.xls) o in tabella formato con separazione comma [ , ], oppure un file CSV (.csv). Un file CSV è in formato testo ‘[en] plain text’ e avrà estensione .csv.

Mailing List: Le Mailing list possono essere utilizzate per spedire messaggi frequentemente ad un gran numero di destinatari per informazioni quali newsletter, aggiornamento prodotti e altro. cPanel ti permette di aggiornare e configurare le tue mailing list per spedire facilmente informazioni ad un gran numero di persone.

SpamAssassin: SpamAssassin è un sistema automatizzato di filtri email che cerca di identificare i messaggi di spam valutando i contenuti degli header e del corpo delle mail.

Modifica Mail Exchanger (Record MX: Una entry MX (mail exchanger) comunica al mondo a quale server è delegata la raccolta della posta spedita ad un dominio.

Filtri livello Utente: In questa area puoi gestire i filtri per ogni utente. Ciascun filtro viene elaborato dopo i filtri dell’ account primario.

 

Analisi e File Log

Analisi e File Log

Ultimi Visitatori: Questa funzione mostra le ultime 300 persone che sono entrate nel sito.

Statistiche Awstats: Awstats produce una visualizzazione statistica completa sui visitatori del tuo sito.

Log di Errore: Questa funzione mostra gli ultimi 300 errori per il tuo sito. La funzione è molto utile per capire quali link sono errati nel sito, o quali non esistono. Fai una verifica frequente e aiuterai il sito ad esssere più leggibile.

 

Documenti

Documenti

Copie di Sicurezza: Copia di Sicurezza (Backup) ti permette di scaricare sul tuo pc una copia di sicurezza in formato zip o di tutto il tuo intero sito (cartella home, database, intera configurazione email inclusi inoltri e filtri) oppure di una delle configurazioni del tuo sito. Queste copie sono fatte manualmente.

Wizard Copie di Sicurezza: Questo wizard ti guiderà per effettuare Copie di Sicurezza per il tuo Sito in modo semplice.

Gestione File: Gestione Files delle cartelle: Home, Radice Web (public_html), radice dell’FTP pubblico (public_ftp).

Gestione Documenti: Gestione Documenti delle cartelle: Home, Radice Web (public_html), radice dell’FTP pubblico (public_ftp).

Spazio Disco Utilizzato: Lo strumento Visualizzazione Disco Utilizzato ti consente di vedere dove si trovano i file del tuo sito web che occupano spazio. Puoi usare lo strumento per vedere tutti i file del tuo sito e sapere esattamente quanto spazio occupa ciascuno di loro. Tieni presente che il valore totale mostrato non include i file esterni alla tua cartella home e pertanto il valore mostrato è diverso da quanto riportato dalle informazioni generali dell’account nella home page.

Account Ftp: L’account FTP ti consente di accedere ai documenti del tuo sito con un protocollo chiamato appunto FTP.E’ necessario possedere un software a parte per accedere ai tuoi documenti.Puoi accedere a un server FTP inserendo DNS come tuo host FTP e nome utente e password dell’utente con cui vuoi accedere.

Accesso Ftp: Verifica l’abilitazione di Ftp.

Controllo Sessione Ftp: Puoi usare questa funzione per vedere chi è collegato in questo momento al tuo sito in sessione FTP. Puoi anche terminare qualunque connessione che non desideri. Questo può essere utile per prevenire l’accesso a documenti senza una tua autorizzazione.

Web Disk: I Web Disk consentono di caricare documenti sul tuo web host con un semplice drag & drop. Puoi creare un accesso e lo script di accesso da caricare sul tuo computere in quest’area. Non appena configurato, il Web Disk ti consentira di eseguire drag & drop di documenti sul disco come se fosse un disco locale. Allo stesso modo, potrai navigare nei documenti del server come se fossero sul tuo computer.

 

Domini

Domini

Statistiche Sottodominio: Mostra le statistiche dei sottodomini creati.

Sottodomini: I sottodomini sono URL a differenti sezioni del vostro sito web. Usano il nome di dominio ed un prefisso. Per esempio se il il vostro dominio è test.it un sottodominio del vostro dominio può essere supporto.test.it. Da quest’area è possibile creare i Sottodomini desiderati.

Domini Aggiuntivi: Un Dominio Aggiuntivo consente di raggiungere un sottodominio quando inserirai il nome del Dominio Aggiuntivo in un browser. Questo ti permetterà di avere altri domini sul tuo account, se consentito dal tuo Piano Hosting.

Domini in Parcheggio: I puntatori ti consentono di “puntare” o “parcheggiare” nomi di dominio al tuo account hosting esistente. Questo significa che consentono, agli utenti che inseriscono nel loro browser il nome di dominio parcheggiato o puntato, di raggiungere il tuo sito web.

Gestione Reindirizzamenti: I reindirizzamenti consentono di scegliere di reindirizzare una specifica pagina web verso un’altra pagina mostrando i contenuti della nuova pagina. E’ ad esempio il modo di sostituire una URL complessa e molto lunga con un’altra corta e semplice da ricordare.

 

Database

Database

Wizard Database MySql: Questo wizard ti guiderà per la creazione di Database mySql per il tuo Sito in modo semplice.

Database Mysql: I database mySQL ti consentono di registrare una enorme quantità di informazioni in modo semplice da leggere. I database di per sé non sono facilmente leggibili nella loro forma originale. I database MySQL sono ormai comunemente utilizzati nelle applicazioni web, inclusi forum, sistemi di gestione di contenuti e molte altre. In quest’area puoi creare Database e Utenti.

Gestione Accesso Remoto MySql: Puoi consentire a server web esterni di accedere ai tuoi database MySQL aggiungendo il loro dominio nella lista di host che hanno permessi di accesso ai database del tuo spazio web. Localhost indica il server dove risiede il tuo account.

phpMyAdmin: phpMyAdmin è un’applicazione PHP che consente di amministrare in modo semplificato i database MySQL.

 

Sicurezza

Sicurezza

Protezione HotLink: La Protezione HotLink impedisce ad altri siti web di linkare direttamente ai file sul tuo sito (come specificato qui in calce). Gli altri siti saranno comunque in grado di linkare a qualunque file non specificato in calce (come ad esempio i file html). Un esempio di hotlink potrebbe essere ad esempio l’ uso di un Guida a cPanel: funzioni principali e gestione hosting tag per mostrare un immagine dal tuo sito da parte di un altro sito. Il risultato è che l’ altro sito ti “ruberebbe” il traffico compreso nel tuo account. Dovresti assicurarti che tutti i siti a cui vuoi concedere link diretti compaiano nella lista in calce. Il sistema cerca di aggiungere tutti i siti che sa essere tuoi, ad ogni modo potresti avere bisogno di aggiungerne altri.

Gestione Blocco IP: Questa funzione ti consente di bloccare qualsiasi blocco di indirizzi IP affinchè non accedano al tuo sito.Puoi anche inserire un dominio Internet attivo, e lo strumento di Blocco IP tenterà di risolvere automaticamente il corrispondente indirizzo IP.

Protezione AntiLeech: La Protezione Anti-Leech ti permette di prevenire che i tuoi utenti diffondano o postino pubblicamente la loro password di accesso ad una area riservata del tuo sito. Questa funzione reindirizzerà (e sospenderà se selezionato) gli account ormai compromessi su una url a tua scelta.

Protezione delle Cartelle: Questa opzione ti consente di imporre un nome utente ed una password per l’accesso ad una cartella del tuo sito. E’ molto utile per limitare l’accesso ad alcune parti del tuo sito.

 

Software

Software

Galleria CGI: I seguenti script CGI sono preinstallati e pronti all’uso:
Cgi Wrapper: Il CGI Wrapper permette di eseguire gli script .cgi col tuo nome utente (invece che l’utente ‘nobody’, gruppo ‘nobody’).
HTML casuale: Questo è un generatore di HTML casuale, che preleva una stringa da una lista e la inserisce in una pagina web abilitata all’ SSI. Questa funzione è utile per generare “La frase del giorno” e altre cose simili.
Libro Visite Semplice: Usa questa funzione per offrire ai visitatori del tuo sito un Libro delle Visite da vedere e firmare.
Contatore: Puoi creare un contatore per sapere quanti visitatori hanno visto il tuo sito.
Orologio: Questa funzione ti consente di creare un orologio in Java per il tuo sito.
Conto alla rovescia: Puoi creare un conto alla rovescia per una specifica data da te scelta.
Email CGI Cgiemail: prende i dati raccolti da un modulo e li converte in una email di formato ordinato.
Clone di FormMail: Questo è un clone del celebre FormMail di Matt Wright.
Ricerca con Entropy: Configura il Motore di Ricerca Ricostruisci l’indice di ricerca Annunci con Entropy

Modulo Perl: I moduli Perl sono una serie di funzioni che ti permettono di eseguire operazioni in Perl.

RubyGems: Ruby Gems è una serie di funzioni che ti permettono di eseguire funzioni in Ruby.

Ruby on Rails: Le applicazioni Ruby on Rails si basano sul framework Rails. Le applicazioni Rails devono essere eseguite come una qualsiasi altra applicazione. Dopo aver creato la tua applicazione, dovrai inserire il tuo codice e quindi scegliere di eseguire o fermare la tua applicazione.

RvSiteBuilder: RvSiteBuilder è un Software avanzato che permette di creare con facilità siti web. Puoi entrare ed uscire da RVSiteBuilder quando vuoi. Le modifiche ai progetti saranno sempre tenuti sul nostro database sempre se non cancellate esplicitamente il progetto. La prossima volta che volete lavorare sul vostro sito, basta semplicemente scegliere il nome del progetto nella lista Nome di progetto.

Softaculous: Softaculous è un programma di installazione automatica, può essere utilizzato per installare script e software, senza bisogno di caricare i file. Non è necessario creare alcun database per gli script e passare attraverso le complesse procedure di installazione dei pacchetti software.

 

Strumenti Avanzati

Strumenti Avanzati

Cron Job: I Cron job ti permettono di automatizzare alcuni comandi o script sul tuo server per completare azioni ripetitive automaticamente. Un cron job ti permette di eseguire un certo comando secondo i tempi impostati nel cron job stesso. Ad esempio, potresti impostare un cron job per cancellare i file temporanei ogni settimana così che il tuo spazio disco non si possa riempire.

Gestione Indici: La Gestione Indici ti consente di personalizzare il modo in cui sarà mostrata una cartella sul web. Puoi scegliere fra uno stile predefinito, niente indici, o due diverse modalità indice. Se non desideri far vedere i file nella tua cartella, scegli Niente Indici.

Pagine di Errore: Questi strumenti ti consentono di personalizzare le tue pagine di errore, quando un utente ha inserito una url errata o obsoleta, o quando non è autorizzato all’accesso di una specifica cartella. La pagina d’Errore informa i visitatori quando si presenta un errore di accesso al sito. Per ogni tipo di errore esiste un codice. Per esempio, se un visitatore inserisce una URL non esistente nel sito vedrà una pagina che gli indica ERRORE 404, mentre se un utente non autorizzato tenta di accedere ad una pagina protetta da chiave di accesso vedrà un ERRORE 401. Le pagine d’errore sono automaticamente fornite dal WebServer (Apache). Puoi comunque creare pagine d’errore personalizzate con codice HTTP iniziante per i valori di stato 4 o 5.

Estensioni di Frontpage: Le estensioni di Frontpage ti consentono di pubblicare il tuo sito direttamente dall’applicazione Frontpage. Questo ti consente di non dover caricare i tuoi documenti in FTP o tramite altri metodi.

Ottimizza il Sito: Ottimizza la performance del tuo sito web migliorando il modo con cui Apache gestisce le richieste. Apache 2.0 e 2.2 ti consentono di comprimere il contenuto prima di spedirlo al browser del visitatore. I tipi di contenuto da comprimere sono specificati dai tipi di MIME.

Per visualizzare i nostri Piani Hosting clicca qui.

 

Approfondimenti correlati

Fonte ufficiale: Documentazione ufficiale cPanel.

Domande frequenti

Perché alcune funzioni non compaiono?

Il provider può disabilitare strumenti non inclusi nel piano oppure usare una versione e un tema differenti. In caso di dubbio va consultata l’assistenza.

cPanel e WHM sono la stessa cosa?

No. cPanel gestisce il singolo account hosting, mentre WHM amministra account, pacchetti e funzioni server o reseller.

Dove si gestiscono i file del sito?

Nel File Manager, individuando la document root corretta del dominio. Nei piani multidominio ogni sito può avere una cartella diversa.

PHP gestisce la logica dell’applicazione, mentre MySQL conserva dati strutturati. Un’applicazione moderna dovrebbe usare estensioni supportate come PDO o MySQLi, query preparate, gestione degli errori e credenziali con privilegi minimi. Il codice di esempio va adattato alla versione PHP e testato in un ambiente non pubblico.

Nota di aggiornamento: Gli esempi devono essere verificati con la versione PHP e MySQL/MariaDB realmente installata.

Come lavorano insieme PHP e MySQL

PHP è il linguaggio di scripting più importante per lo sviluppo web. E ‘gratuito, open source e server-side (il codice viene eseguito sul server). MySQL è un Relational Database Management System (RDBMS) che utilizza Structured Query Language (SQL), anch’esso è gratuito e open source. La combinazione di PHP e MySQL consente di creare praticamente qualsiasi tipo di sito web, dal modulo di contatto al portale aziendale.

 

Che cosa è PHP?

PHP è stato inizialmente creato come piattaforma di scripting, chiamato “Personal Home Page”. Oggi PHP (l’abbreviazione di Hypertext Preprocessor) è un’alternativa alle pagine di Microsoft ASP (Active Server Pages).

PHP è un linguaggio lato server (open source) che viene utilizzato per creare pagine web dinamiche, solitamente è usato in combinazione con un database MySQL su un server Linux / UNIX  e può essere anche integrato nell’HTML.

Una spiegazione completa di tutti i tag PHP, manuale d’uso e molti tutorial si trovano sulla pagina ufficiale di PHP .

 

Che cosa è MySQL?

MySQL è un Relational Database Management System (RDBMS) che utilizza Structured Query Language (SQL), anch’esso è gratuito e open source.

SQL è il linguaggio più popolare per l’aggiunta, l’accesso e la gestione dei contenuti in un database. E ‘ noto per la sua rapida elaborazione, affidabilità, facilità e flessibilità di utilizzo. MySQL è una parte essenziale di quasi tutte le applicazioni open source PHP, alcuni esempi per PHP / MySQL sono: phpBB, osCommerce,  Joomla e WordPress .

 

Creazione dell’utente e del database MySQL

Per creare un database MySQL, entriamo in cPanel (incluso nei nostri Piani Hosting) e clicchiamo su Database MySQL.

Come usare PHP e MySQL: guida introduttiva

 

 

 

 

Per creare un nuovo database è necessario immettere il nome desiderato per il database e cliccare su Crea Database.
Come usare PHP e MySQL: guida introduttiva

 

 

 

 

 

 

Verrà visualizzata una schermata di conferma, informando che il database è stato creato correttamente.

Come usare PHP e MySQL: guida introduttiva

 

 

 

 

 

 

NB: Il database MySQL è stato creato con il nome utente (Account) come prefisso: nomeutente_nomedatabase, questo è il nome che si deve utilizzare per le applicazioni.

 

Ora è possibile continuare con la creazione di un utente che dovrebbe essere in grado di connettersi al database appena creato. Clicchiamo su Passa agli Utenti mySQL: per creare un utente è sufficiente inserire il nome utente, la password desiderata e cliccare su Crea Utente.

Come usare PHP e MySQL: guida introduttiva

 

 

 

 

 

NB: Si dovrebbe sempre tenere a mente che il nome utente (Account cPanel) verrà aggiunto come prefisso a tutti i database e i nomi degli utenti creati.

 

Una volta che il database e il nome utente sono stati creati è possibile aggiungere alcuni privilegi per l’utente al database. Clicchiamo su Aggiungi un utente al database e su Invia.

Come usare PHP e MySQL: guida introduttiva

 

 

 

 

Sarete reindirizzati ad una schermata in cui vi sarà chiesto di scegliere i privilegi desiderati. Si consiglia di selezionare tutti i privilegi.

 

Gestire il Database mySQL con phpMyAdmin

phpMyAdmin supporta la maggior parte delle funzioni di MySQL come sfogliare, creare, copiare e modificare i database, le tabelle, i campi e gli indici, eseguire query MySQL, gestire procedure e funzioni. Inoltre è possibile Importare dati da file CSV e SQL o esportare i dati in vari formati: CSV, SQL, XML, PDF, Word, Excel, LATEX e altri. La lista completa delle caratteristiche di PhpMyAdmin si trova nel sito ufficiale .

Per gestire il database appena creato clicchiamo su phpMyAdmin

Come usare PHP e MySQL: guida introduttiva

 

 

 

 

Si aprirà una nuova pagina del Browser con phpMyAdmin caricato.

Come usare PHP e MySQL: guida introduttiva

 

 

 

 

 

 

 

Selezionando il database sarà possibile effettuare molte operazioni: eseguire query MySQL, ottimizzare, riparare, gestire il backup o il ripristino del database e molto altro.

 

Creare una tabella in un Database 

Prima di tutto è necessario creare un tabella e impostare i campi corrispondenti in essa.

La creazione di una tabella in phpMyAdmin è semplice, basta cliccare su Crea Tabella, digitare il nome, selezionare il numero di campi e cliccare su Esegui.

Come usare PHP e MySQL: guida introduttiva

 

 

 

 

 

Compiliamo i campi per il database e salviamo.

 

In alternativa, è possibile eseguire una query MySQL, che creerà la tabella.

Il formato è il seguente:

CREATE TABLE tablename (

Fields

)

I campi sono definiti come segue:

fieldname type(length) extra info,

I campi sono separati da virgola.

Per esempio, se si desidera creare una tabella chiamata Utenti con 3 campi in esso – Nome, Cognome e Età è necessario eseguire la seguente query:

CREATE TABLE Members
(
FirstName varchar(15),
LastName varchar(15),
Age int
);

 

Come connettersi al Database

Ora, stabiliamo una connessione al database MySQL. Questo è un passo estremamente importante, perché se lo script non riesce a connettersi al suo database, le query al database fallisce.

Una buona pratica quando si utilizzano i database è quello di impostare il nome utente, la password e i valori del database all’inizio del codice dello script.

$username=”nome_username”;
$password=”nome_password”;
$database=”nome_database”;

Sostituiamo “nome_utente”, “nome_password” e “nome_database” con il nome utente MySQL, password e database che verrà utilizzato dallo script.

Vi starete chiedendo se mantenere la password nel file è un rischio per la sicurezza. Non c’è bisogno di preoccuparsi perché il codice sorgente PHP viene elaborato dal server prima di essere inviato al browser, quindi il visitatore non vedrà il codice dello script nel codice sorgente della pagina.

Colleghiamo lo script PHP al database. Questo può essere fatto con la funzione PHP mysql_connect :

mysql_connect(localhost,$username,$password)

Questa linea dice a PHP di connettersi al server di database MySQL a ‘ localhost ‘ (localhost è il server MySQL, che di solito va sullo stesso server fisico come lo script).

Quando la connessione viene stabilita si deve selezionare il database che si desidera utilizzare, questo dovrebbe essere un database in cui il nome utente ha accesso. Questo passo può essere completato attraverso il seguente comando:

@mysql_select_db($database) or die( “Unable to select database”);

Se lo script non riesce a connettersi si fermerà l’esecuzione e verrà visualizzato il messaggio di errore:

Unable to select database

Una funzione PHP importante è la seguente:

mysql_close();

Questa è una funzione molto importante in quanto chiude la connessione al server. Lo script rimarrà in esecuzione se non si include questa funzione. Troppe connessioni MySQL aperte possono causare problemi per l’account.

 

Come interrogare il Database

Ci sono due modi per interrogare un database. Uno è quello di inserire un comando in PHP.

Un altro modo è di definire il comando come una variabile .

In questa parte della guida vi mostriamo il primo modo. Il comando sarà simile a questo:

mysql_query($query);

Cambiando la variabile, il comando può essere ripetuto più volte nel codice sorgente.

Questo è il codice completo che dovrebbe essere utilizzato per creare una tabella MySQL in PHP:

<?php
$user=”username”;
$password=”password”;
$database=”database”;
mysql_connect(localhost,$user,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”CREATE TABLE tablename(id int(6) NOT NULL auto_increment,first varchar(15) NOT NULL,last varchar(15) NOT NULL,field1-name varchar(20) NOT NULL,field2-name varchar(20) NOT NULL,field3-name varchar(20) NOT NULL,field4-name varchar(30) NOT NULL,field5-name varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))”;
mysql_query($query);
mysql_close();
?>

Inseriamo il database MySQL, username e password di MySQL nelle posizioni corrette sulle prime tre righe.

La query seguente compila la tabella. Ecco un esempio:

$query = “INSERT INTO tablename VALUES
(”,’$field1-name’,’$field2-name’,’$field3-name’,’$field4-name’,’$field5-name’)”;

Non è possibile inserire più valori rispetto al numero di campi che avete creato con la prima query.

 

Connessione tra mySQL e PHP

Dopo aver creato una tabella ed inserito i dati, si dovrà visualizzarla, ciò può essere fatto utilizzando un codice HTML che richiama lo script PHP.

Inizieremo l’esempio dall’inizio:

Il seguente codice HTML raccoglie i dati dalle caselle di testo e li passa allo script PHP:

 <form action=”insert.php” method=”post”>
Value1: <input type=”text” name=”field1-name”><br>
Value2: <input type=”text” name=”field2-name”><br>
Value3: <input type=”text” name=”field3-name”><br>
Value4: <input type=”text” name=”field4-name”><br>
Value5: <input type=”text” name=”field5-name”><br>
<input type=”Submit”>
</form>

Ora vi serve un nuovo script PHP per inserire i dati nel database.

<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

$field1-name=$_POST[‘Value1’];
$field2-name=$_POST[‘Value2’];
$field3-name=$_POST[‘Value3’];
$field4-name=$_POST[‘Value4’];
$field5-name=$_POST[‘Value5’];

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);

$query = “INSERT INTO tablename VALUES
(”,’$field1-name’,’$field2-name’,’$field3-name’,’$field4-name’,’$field5-name’);
mysql_query($query);
mysql_close();
?>

Questo script deve essere salvato come insert.php in modo che possa essere chiamato dal modulo HTML.

Ora che avete almeno un record nel database, può essere utile sapere come utilizzare PHP con questi dati.

Il primo comando necessario sarà SELECT FROM MySQL:

 SELECT * FROM tablename

Si tratta di una query MySQL di base che dice allo script di selezionare tutti i record della tabella. Dopo l’esecuzione della query il risultato verrà assegnato ad una variabile:

$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

L’intero contenuto della tabella è ora incluso in un array PHP. Prima dell’uscita, in questi dati è necessario cambiare ogni pezzo in una variabile indipendente. Ci sono due fasi.

La prima è il conteggio delle righe. Prima di poter passare attraverso i dati nella variabile è necessario conoscere il numero delle righe del database. Si potrebbe, digitare questo nel codice, ma non è una buona soluzione, siccome il codice dello script dovrà essere cambiato ogni volta che viene aggiunta una nuova riga. Invece è possibile utilizzare il comando:

$num=mysql_numrows($result);

Il valore di $num sarà il numero di righe memorizzato in $result. Questo sarà utilizzato in un ciclo per ottenere tutti i dati e visualizzarli sullo schermo.

La seconda fase è quella di creare il ciclo. Ci vorrà ogni riga del risultato e stampare i dati memorizzati. Nel codice riportato di seguito, $ i è il numero di volte che il ciclo viene eseguito. In questo modo tutti i record vengono visualizzati.

 $i=0;
while ($i < $num) {
CODE
$i++;
}

Si tratta di un ciclo di base di PHP ed eseguirà il codice corretto un numero di volte, o gni volta che $i sarà incrementato di uno.

La parte finale dello script è quella di assegnare a ciascuna porzione di dati la sua variabile:

 $variable=mysql_result($result,$i,”fieldname”);

Quindi, per prendere ogni singolo pezzo di dati nel nostro database potremmo utilizzare il seguente:

$field1-name=mysql_result($result,$i,”field1-name”);
$field2-name=mysql_result($result,$i,”field2-name”);
$field3-name=mysql_result($result,$i,”field3-name”);
$field4-name=mysql_result($result,$i,”field4-name”);
$field5-name=mysql_result($result,$i,”field5-name”);

Non è necessario ottenere il campo ID, perché non c’è per l’utilizzo nella pagina di output.

Ora è possibile scrivere uno script completo per l’output dei dati. In questo script i dati non sono formattati quando viene stampato:

<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo “<b><center>Database Output</center></b><br><br>”;

$i=0;
while ($i < $num) {

$field1-name=mysql_result($result,$i,”field1-name”);
$field2-name=mysql_result($result,$i,”field2-name”);
$field3-name=mysql_result($result,$i,”field3-name”);
$field4-name=mysql_result($result,$i,”field4-name”);
$field5-name=mysql_result($result,$i,”field5-name”);

echo “<b>$field1-name
$field2-name2</b><br>$field3-name<br>$field4-name<br>$field5-name<hr><br>”;

$i++;
}

?>

Questo output elenca tutti i valori memorizzati nel database. Questo vi darà un output di base. Fare la formattazione non è complicato. Tutto quello che dovete fare è usare l’HTML per stampare il risultato, includendo le variabili negli spazi corretti. Il modo più semplice per farlo è chiudendo il tag PHP e HTML. Quando si raggiunge una posizione variabile:

<? echo $variablename; ?>

nella posizione corretta del codice.

È anche possibile utilizzare il ciclo di PHP per ripetere il codice appropriato e includerlo come parte di una tabella più grande. Il risultato finale è il seguente:

<html>
<body>
<?php
$username=”username”;
$password=”password”;
$database=”your_database”;

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( “Unable to select database”);
$query=”SELECT * FROM tablename”;
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();
?>
<table border=”0″ cellspacing=”2″ cellpadding=”2″>
<tr>
<th><font face=”Arial, Helvetica, sans-serif”>Value1</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value2</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value3</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value4</font></th>
<th><font face=”Arial, Helvetica, sans-serif”>Value5</font></th>
</tr>

<?php
$i=0;
while ($i < $num) {

$f1=mysql_result($result,$i,”field1″);
$f2=mysql_result($result,$i,”field2″);
$f3=mysql_result($result,$i,”field3″);
$f4=mysql_result($result,$i,”field4″);
$f5=mysql_result($result,$i,”field5″);
?>

<tr>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f1; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f2; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f3; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f4; ?></font></td>
<td><font face=”Arial, Helvetica, sans-serif”><?php echo $f5; ?></font></td>
</tr>

<?php
$i++;
}
?>
</body>
</html>

 

Alla Prossima

 

Approfondimenti correlati

Fonte ufficiale: Manuale PHP PDO.

Domande frequenti

Meglio PDO o MySQLi?

Entrambe supportano query preparate. PDO offre un’interfaccia utilizzabile con più database, mentre MySQLi è specifica per MySQL e MariaDB.

Perché usare query preparate?

Separano dati e struttura della query, riducendo il rischio di SQL injection quando vengono utilizzate correttamente.

Dove conservare le credenziali?

In configurazioni non esposte pubblicamente, con permessi restrittivi e possibilmente variabili d’ambiente o sistemi di gestione dei segreti.

Questo script utilizza i CronJob di cPanel per effettuare dei Backup automatici tramite uno script PHP per poi caricarlo su un server FTP specificato.

Cosa sono i CronJob?

I Cron job ti permettono di automatizzare alcuni comandi o script sul tuo server per completare azioni ripetitive automaticamente. Un cron job ti permette di eseguire un certo comando secondo i tempi impostati nel cron job stesso. Ad esempio, potresti impostare un cron job per cancellare i file temporanei ogni settimana così che il tuo spazio disco non si possa riempire o come in questo caso, effettuare dei backup completi automatici.

Lo Script

Lo script originale è stato creato da Justin Cook, mentre questa versione è stata modificata opportunamente per lavorare con le versioni più recenti di cPanel.

La prima cosa che bisogna fare è aprire Notepad o un qualsiasi editor di testo e copiare il codice seguente:

<?php// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server.
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE! (place it in your home dir, not /www/)

// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********

// Info required for cPanel access
$cpuser = “username”; // Username used to login to CPanel
$cppass = “password”; // Password used to login to CPanel
$domain = “domain”; // Domain name where CPanel is run

// Info required for FTP host
$ftpuser = “username@domain.com”; // Username for FTP account
$ftppass = “password”; // Password for FTP account
$ftphost = “ftp.domain.com”; // Full hostname or IP address for FTP host
$ftpmode = “ftp”; // FTP mode (“ftp” for active, “passiveftp” for passive)
$ftpport = “21”;
$rdir = “/”;

// Notification information
$notifyemail = “your@email”; // Email address to send results

// Secure or non-secure mode
$secure = 0; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP

// Set to 1 to have web page result appear in your cron log
$debug = 0;

// *********** NO CONFIGURATION ITEMS BELOW THIS LINE *********

if ($secure) {
$url = “ssl://”.$domain;
$port = 2083;
} else {
$url = $domain;
$port = 2082;
}

$socket = fsockopen($url,$port);
if (!$socket) { echo “Failed to open socket connection… Bailing out!\n”; exit; }

// Encode authentication string
$authstr = $cpuser.”:”.$cppass;
$pass = base64_encode($authstr);

$params = “dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$rdir&submit=Generate a full backup”;

// Make POST to cPanel
fputs($socket,”POST /frontend/x3/backup/dofullbackup.html?”.$params.” HTTP/1.0\r\n”);
fputs($socket,”Host: $domain\r\n”);
fputs($socket,”Authorization: Basic $pass\r\n”);
fputs($socket,”Connection: Close\r\n”);
fputs($socket,”\r\n”);

// Grab response even if we don’t do anything with it.
while (!feof($socket)) {
$response = fgets($socket,4096);
if ($debug) echo $response;
}

fclose($socket);

?>

Compilare i dettagli elencati spiegati nei commenti (cPanel Access etc.), tranne le impostazioni e la porta FTP. Salvare il file come backup.php e poi caricarlo nella directory principale del server. Attenzione: non caricare questo file nella directory public_html del vostro sito, in quanto contiene nome utente e password che concedono l’accesso a cPanel.

 

Creare un nuovo processo cron andando in cPanel> Cron Job e utilizzare queste impostazioni:

 

Consigliamo di impostare il tempo di esecuzione : una volta al giorno e di usare il seguente comando:

/usr/local/bin/php /home/username/backup.php

L’impostazione “username” è il vostro nome utente.

Se tutto va bene, il cron verrà eseguito a mezzanotte con le impostazioni che abbiamo usato nell’immagine e il backup sarà caricato come archivio tar.gz nel server remoto. In seguito, per ripristinare il backup effettuato, contattate l’amministratore del server.

 



Da oggi grazie ad un aggiornamento di cPanel, il WebHost Manager (WHM) è disponibile anche in lingua Italiana, questo faciliterà di molto la gestione tecnica del vostro Web hosting.

whm

whm1

Avete mai desiderato di iniziare il vostro business web hosting?  L’acquisto, la gestione e la manutenzione del proprio server può essere molto costosa e può richiedere molto tempo. Per fortuna c’è un modo più semplice per iniziare, i nostri piani Reseller Hosting.

Ci occupiamo della manutenzione dei server, comprese le installazioni di software, backup, sicurezza e molto altro ancora. In ogni account può essere fornita una licenza WHMCS (Opzionale) che consente di gestire facilmente la fatturazione dei vostri clienti.

Di seguito vi illustriamo i nostri Piani Reseller:

R-100 – 149 Euro (Anno)

Spazio Disco : 15GB
Traffico Mensile : 100GB
Domini Ospitabili : 20
Indirizzo IP Dedicato (SSL compreso)

R-200 – 199 Euro (Anno)

Spazio Disco : 25GB
Traffico Mensile : 200GB
Domini Ospitabili : 25
Indirizzo IP Dedicato (SSL compreso)

R-300 – 249 Euro (Anno)

Spazio Disco : 35GB
Traffico Mensile : 300GB
Domini Ospitabili : 30
Indirizzo IP Dedicato (SSL compreso)

R-400 – 299 Euro (Anno)

Spazio Disco : 50GB
Traffico Mensile : 400GB
Domini Ospitabili : 35
Indirizzo IP Dedicato (SSL compreso)

In tutti i Piani è compreso un Dominio a scelta tra .it .eu .com .net .org .biz .info

– Possibilità di creare molti account cPanel.

La configurazione dei NameServer può essere personalizzata, permettendo a voi e ai vostri clienti di utilizzare ns1.vostrosito.com, ns2.vostrosito.com

In tutti i Piani Reseller è presente il pannello di controllo cPanel e WHM: un’interfaccia di amministrazione che permette di controllare ogni aspetto del vostro account, in Italiano.

 In tutti i Piani Reseller è compreso un indirizzo IP dedicato più un certificato SSL.

Tutti gli Account sono protetti con i filtri di SpamAssassin per bloccare qualsiasi email di spam in entrata.

In tutti i Piani Reseller è compreso R1soft, uno dei migliori software dedicati al backup disponibili sul mercato, esegue in automatico il backup giornaliero di tutti i vostri dati e dei vostri clienti su un Hard Disk esterno.

In tutti i Piani Reseller è compreso RvSkin multilingua.

In tutti i Piani Reseller è compreso Softaculous.

In tutti i Piani Reseller è compreso RvsiteBuilder.

 

Per ulteriori informazioni.

Visita i nostri Piani Reseller.

Scrivi al nostro Supporto.

 

Alla Prossima.

 

Da oggi sono disponibili sui server UK i nuovi temi RvNeo in cPanel, di seguito vi illustriamo alcune immagini dei nuovi temi.