Installazione di Codeigniter 3.1 aggiornato per PHP 8.x
Istruzioni di base per l'installazione del framework PHP Codeigniter 3.1.13 con modifiche per renderlo compatibile con PHP 8.x
Negli ultimi anni molti sviluppatori hanno continuato a utilizzare CodeIgniter 3 per progetti esistenti grazie alla sua leggerezza, semplicità e velocità. Tuttavia, la versione originale di CodeIgniter 3.1 è stata progettata quando PHP 8 non esisteva ancora, e l'esecuzione su versioni moderne del linguaggio può generare errori, avvisi e incompatibilità.
In questa guida vedremo come installare e aggiornare correttamente CodeIgniter 3.1 per renderlo compatibile con PHP 8.x, mantenendo la stabilità del progetto e sfruttando ambienti server più recenti.
Perché aggiornare CodeIgniter 3 per PHP 8?
L'utilizzo di PHP 8 offre diversi vantaggi:
- Maggiori prestazioni
- Migliore gestione della memoria
- Sicurezza aggiornata
- Supporto alle versioni recenti dei sistemi operativi
- Compatibilità con software e pannelli moderni
Se si utilizza una versione standard di CodeIgniter 3 senza modifiche, è possibile riscontrare problemi come:
- warning su parametri null
- errori di tipo
- funzioni deprecate
- incompatibilità con librerie esterne
Per questo motivo è consigliabile utilizzare una versione aggiornata o applicare una serie di patch correttive.
Prerequisiti
Prima di iniziare è consigliabile avere:
- PHP 8.0, 8.1, 8.2 o superiore
- Server Apache oppure Nginx
- MySQL o MariaDB
- Estensioni PHP abilitate:
- mysqli
- mbstring
- openssl
- json
- curl
- intl
- zip
Per verificare la versione di PHP installata:
php -v
L'output dovrebbe essere simile a:
PHP 8.2.6 (cli)
Scaricare CodeIgniter 3.1
Scarichiamo l'ultima versione stabile di CodeIgniter 3:
wget https://github.com/bcit-ci/CodeIgniter/archive/refs/tags/3.1.13.zip
Oppure tramite Git:
git clone https://github.com/bcit-ci/CodeIgniter.git
Estrarre quindi i file:
unzip 3.1.13.zip
Rinominare la cartella:
mv CodeIgniter-3.1.13 mio-progetto
Entrare nella directory:
cd mio-progetto
Configurare l'applicazione
Aprire il file:
application/config/config.php
Configurare il percorso base:
$config['base_url'] = 'https://tuodominio.it/';
Aprire il file:
application/config/database.php
Inserire i parametri del database:
$db['default'] = array(
'hostname' => 'localhost',
'username' => 'utente_db',
'password' => 'password_db',
'database' => 'nome_database',
'dbdriver' => 'mysqli'
);
Correzioni per la compatibilità PHP 8
Con PHP 8 possono verificarsi errori dovuti alla gestione più rigida dei parametri e dei tipi.
Uno degli interventi più comuni riguarda file del core come:
system/core/Common.php
oppure:
system/database/DB_driver.php
In alcune installazioni potrebbero essere necessari controlli aggiuntivi sui valori null:
Esempio:
Prima:
strlen($str)
Dopo:
strlen((string)$str)
Oppure:
Prima:
count($data)
Dopo:
count((array)$data)
Questo evita errori come:
TypeError:
count(): Argument #1 must be Countable|array
Se non si vuole qapportare personalmente le modifiche esiste già un fork di Codeigniter 3.1.13 adattato per PHP8.x, scaricabile da github, leggi la'rticolo:
https://www.athesis.com/codeigniter-31x-compatibilita-con-php-84
Impostare i permessi corretti
Su sistemi Linux è buona pratica assegnare i permessi corretti:
sudo chown -R www-data:www-data mio-progetto
sudo chmod -R 755 mio-progetto
Per cartelle che richiedono scrittura:
chmod -R 775 application/cache
chmod -R 775 application/logs
Configurazione Nginx
Esempio di virtual host:
server {
listen 80;
server_name tuodominio.it www.tuodominio.it;
root /var/www/mio-progetto;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Riavviare Nginx:
sudo systemctl restart nginx
Test dell'installazione
Aprire il browser:
https://tuodominio.it
Se tutto è stato configurato correttamente verrà mostrata la pagina iniziale di CodeIgniter.
È consigliabile inoltre attivare temporaneamente gli errori durante i test:
Nel file index.php modificare:
define('ENVIRONMENT', 'development');
Considerazioni finali
Sebbene CodeIgniter 3 sia un framework maturo, continua a essere utilizzato in numerosi progetti esistenti. Con alcuni aggiornamenti e piccole correzioni è possibile farlo funzionare senza problemi anche con PHP 8.x.
Per nuovi progetti può essere utile valutare framework più recenti, ma per migrazioni e manutenzione di applicazioni già operative, mantenere CodeIgniter 3 aggiornato rappresenta ancora una soluzione pratica e affidabile.
Se utilizzi pannelli come HestiaCP, Docker o ambienti VPS moderni, questa procedura permette di continuare a utilizzare applicazioni legacy senza dover riscrivere l'intero progetto.
Share
What's Your Reaction?
Like
0
Cancella like
0
Amore
0
Buffo
0
arrabbiato
0
Sad
0
Wow
0