Configurazione del file PHP.INI: una guida per principianti
Ciao a tutti, futuri maghi di PHP! Oggi ci imbarcheremo in un viaggio emozionante nel mondo della configurazione di PHP. Non preoccupatevi se non avete mai scritto una riga di codice prima - sarò il vostro guida amichevole in questa avventura. Alla fine di questo tutorial, configurerete PHP come un professionista!
Cos'è PHP.INI?
Prima di immergerci, parliamo di cosa sia effettivamente PHP.INI. Immagina di configurare un nuovo smartphone. Probabilmente vorresti regolare alcune impostazioni per farlo funzionare proprio come piace a te, vero? Beh, PHP.INI è come il menu delle impostazioni per PHP. È un file di configurazione che dice a PHP come comportarsi.
File di configurazione caricato
Prima di tutto, scopriamo quale file PHP.INI il tuo sistema sta effettivamente utilizzando. PHP può utilizzare diversi file di configurazione a seconda di come è configurato. Ecco un modo semplice per verificarlo:
<?php
phpinfo();
?>
Salvate questo come un file PHP ( diciamo info.php
) e eseguitelo nel vostro browser web. Cercate la voce "Loaded Configuration File". Questo è il vostro file PHP.INI attivo!
Impostazioni comuni in PHP.INI
Ora esploriamo alcune delle impostazioni più importanti in PHP.INI. Spiegherò cosa fa ognuna di esse e vi darò esempi su come utilizzarle.
short_open_tag = Off
Questa impostazione determina se PHP dovrebbe permettere la forma abbreviata del tag di apertura di PHP (<?
). Quando è disattivata, dovete utilizzare il tag di apertura completo di PHP (<?php
).
<?php
echo "Ciao, Mondo!";
?>
Con short_open_tag = On
, potresti scrivere:
<? echo "Ciao, Mondo!"; ?>
Ma è generalmente raccomandato tenerla disattivata per una migliore compatibilità.
safe_mode = Off
La safe mode era una funzione di sicurezza nelle vecchie versioni di PHP. Ora è deprecata e rimossa da PHP 5.4.0 in poi. Se utilizzi una versione moderna di PHP, non vedrai questa impostazione.
disable_functions = [funzione1, funzione2...]
Questa è una funzione di sicurezza potente. Ti permette di disabilitare specifiche funzioni PHP che ritieni rischiose. Ad esempio:
disable_functions = exec,passthru,shell_exec,system
Questo impedirebbe a PHP di eseguire comandi di sistema, che potrebbe essere un rischio per la sicurezza.
max_execution_time = 30
Questa impostazione stabilisce il tempo massimo in secondi che uno script è permesso eseguire prima di essere interrotto. È come impostare un timer per i tuoi script.
<?php
// Questo script eseguirà per un massimo di 30 secondi
for ($i = 0; $i < 1000000; $i++) {
echo $i . "<br>";
}
?>
error_reporting = E_ALL & ~E_NOTICE
Questa impostazione controlla quali errori vengono riportati. E_ALL
significa riportare tutti gli errori, e ~E_NOTICE
significa tranne i notices.
<?php
// Con E_ALL & ~E_NOTICE, questo non mostrerà un errore
echo $undefinedVariable;
?>
register_globals = Off
Questa è una vecchia e non sicura funzione. È stata deprecata e rimossa in PHP 5.4.0. Mantienila sempre disattivata nelle vecchie versioni.
magic_quotes_gpc = On
Questa impostazione escaping automaticamente i dati di input per renderli sicuri da SQL injection. Tuttavia, è stata deprecata e rimossa in PHP 5.4.0. Nelle versioni moderne di PHP, dovresti utilizzare le prepared statements al loro posto.
file_uploads = [on/off]
Questa controlla se i caricamenti di file sono permessi.
<?php
if ($_FILES) {
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File è valido, e è stato caricato con successo.\n";
} else {
echo "Caricamento fallito.\n";
}
}
?>
session.save-handler = files
Questa impostazione determina come i dati di sessione vengono memorizzati. La impostazione predefinita è 'files', che significa che i dati di sessione vengono memorizzati in file sul server.
<?php
session_start();
$_SESSION['user'] = 'John Doe';
echo "Dati di sessione salvati!";
?>
ignore_user_abort = [On/Off]
Questa determina se uno script dovrebbe continuare a eseguire dopo che l'utente ha chiuso la connessione.
<?php
ignore_user_abort(true);
set_time_limit(0);
// Questo script continuerà a eseguire anche se l'utente chiude il browser
while (true) {
file_put_contents('log.txt', date('Y-m-d H:i:s') . "\n", FILE_APPEND);
sleep(1);
}
?>
Impostazioni MySQL
PHP.INI include anche impostazioni per le connessioni MySQL:
Impostazione | Descrizione | Esempio |
---|---|---|
mysql.default_host | Server MySQL predefinito | mysql.default_host = localhost |
mysql.default_user | Username MySQL predefinito | mysql.default_user = root |
mysql.default_password | Password MySQL predefinita | mysql.default_password = password123 |
Ricorda, è generalmente meglio impostare queste nel tuo script piuttosto che in PHP.INI per motivi di sicurezza.
<?php
$conn = mysqli_connect('localhost', 'root', 'password123');
if (!$conn) {
die("Connessione fallita: " . mysqli_connect_error());
}
echo "Connessione eseguita con successo";
?>
Eccoci, ragazzi! Avete appena compiuto i vostri primi passi nel mondo della configurazione di PHP. Ricorda, ognuna di queste impostazioni può influenzare significativamente il comportamento dei tuoi script PHP, quindi usale con saggezza. Continuando il tuo viaggio con PHP, diventerai sempre più familiare con queste impostazioni e come utilizzarle a tuo vantaggio.
Buon coding, e possa i tuoi script PHP sempre funzionare senza problemi!
Credits: Image by storyset