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

Installazione di Codeigniter 3.1 aggiornato per 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 Like 0
Cancella like Cancella like 0
Amore Amore 0
Buffo Buffo 0
arrabbiato arrabbiato 0
Sad Sad 0
Wow Wow 0