Installer CodeIgniter 3.1 avec PHP 8.x : guide de maintenance

Configurer une application CodeIgniter 3 existante sous PHP 8.x avec un fork maintenu et vérifier son déploiement.

Installer CodeIgniter 3.1 avec PHP 8.x : guide de maintenance

CodeIgniter 3 reste utile aux applications existantes, mais la version originale 3.1.13 précède les versions récentes de PHP. Sous PHP 8.2 et au-delà, du code ancien peut produire dépréciations et erreurs de type. Préparez une migration testée plutôt que des remplacements arbitraires dans le framework.

Prérequis

Utilisez une version de PHP prise en charge par le fork choisi, Apache ou Nginx, ainsi que les bases de données et extensions exigées par votre application. Pour MySQL, activez mysqli. Vérifiez séparément les versions et modules PHP côté web et en ligne de commande : ils peuvent différer.

php -v
php -m

Obtenir les fichiers

L’archive du tag 3.1.13 fournit une copie historique. Pour une application entretenue avec un PHP récent, examinez le fork CodeIgniter 3 de pocketarc et ses versions. Il vise à conserver le fonctionnement de CI3 tout en prenant en charge de nouveaux PHP. Vérifiez les changements, la licence et votre propre code.

wget https://github.com/bcit-ci/CodeIgniter/archive/refs/tags/3.1.13.zip
unzip 3.1.13.zip
mv CodeIgniter-3.1.13 my-project
cd my-project

Configurer l’application

Réglez base_url dans application/config/config.php et la connexion dans application/config/database.php. Gardez les secrets hors du dépôt. Utilisez une configuration propre à la production et des droits de base de données limités.

$config['base_url'] = 'https://example.com/';
$db['default'] = array(
    'hostname' => 'localhost',
    'username' => 'db_user',
    'password' => 'YOUR_SECRET',
    'database' => 'db_name',
    'dbdriver' => 'mysqli'
);

Compatibilité avec PHP 8

Les avertissements sur null ou les types non dénombrables nécessitent une analyse au point d’appel. Remplacer partout strlen($str) par strlen((string)$str), ou count($data) par count((array)$data), peut modifier le comportement et masquer des défauts. Préférez un fork maintenu et testé ; corrigez précisément votre code et ses dépendances.

Permissions

Seuls application/cache et application/logs doivent être accessibles en écriture lorsque ces fonctions sont utilisées. Autorisez le serveur web sur ces dossiers, sans rendre tout le projet modifiable ni appliquer des droits récursifs trop larges.

sudo chown -R www-data:www-data application/cache application/logs
sudo chmod -R u+rwX,g+rX application/cache application/logs

Exemple Nginx

Si la racine web est celle du projet, interdisez l’accès direct à application, system, aux fichiers cachés et aux scripts PHP arbitraires. Dirigez les requêtes vers index.php et adaptez le socket PHP-FPM. Ajoutez HTTPS, journalisation et protections adaptées avant la production.

server {
    listen 80;
    server_name example.com;
    root /var/www/my-project;
    index index.php;
    location / { try_files $uri $uri/ /index.php?$query_string; }
    location ~ ^/(application|system)/ { deny all; }
    location ~ /\. { deny all; }
    location ~ \.php$ { return 404; }
    location = /index.php {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}

Vérification et mise en service

Testez routes, accès aux données et journaux avec la version cible de PHP. Réservez le mode développement aux essais locaux ; en production, masquez les erreurs affichées publiquement. Sauvegardez application et base avant de remplacer les fichiers du framework.

define('ENVIRONMENT', 'production');

Documentation

Fork maintenu : https://github.com/pocketarc/codeigniter ; installation originale 3.1.13 : https://codeigniter.com/userguide3/installation/index.html. Pour une nouvelle application, envisagez CodeIgniter 4.

Partager

Quelle est votre réaction ?

Aimer Aimer 0
Je n'aime pas Je n'aime pas 0
Amour Amour 0
Drôle Drôle 0
En colère En colère 0
Triste Triste 0
Waouh Waouh 0