CodeIgniter 3.1 unter PHP 8.x installieren: Wartungsanleitung
Eine bestehende CodeIgniter-3-Anwendung mit gepflegtem Fork, Grundkonfiguration und Prüfungen unter PHP 8.x betreiben.
CodeIgniter 3 ist für bestehende Anwendungen weiterhin relevant. Die ursprüngliche Version 3.1.13 stammt jedoch aus der Zeit vor neueren PHP-Versionen. Unter PHP 8.2 und später können veraltete Aufrufe und Typfehler auftreten. Planen Sie eine getestete Migration, statt Framework-Dateien wahllos zu ändern.
Voraussetzungen
Verwenden Sie eine vom gewählten Fork unterstützte PHP-Version, Apache oder Nginx sowie Datenbank und PHP-Erweiterungen Ihrer Anwendung. Für MySQL ist mysqli erforderlich. Prüfen Sie PHP-Version und Erweiterungen für Webserver und CLI getrennt; sie können voneinander abweichen.
php -v
php -m
Quellcode beziehen
Eine historische Originalkopie 3.1.13 erhalten Sie als Archiv des Tags. Für gepflegte Anwendungen auf aktuellen PHP-Versionen prüfen Sie den CodeIgniter-3-Fork von pocketarc und seine Releases. Er soll das Verhalten von CI3 erhalten und neue PHP-Versionen unterstützen. Lesen Sie Änderungen und Lizenz und testen Sie den eigenen 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
Anwendung konfigurieren
Setzen Sie base_url in application/config/config.php und die Datenbankdaten in application/config/database.php. Bewahren Sie Geheimnisse außerhalb des Repositories auf. Nutzen Sie eine passende Produktionskonfiguration und beschränkte Datenbankrechte.
$config['base_url'] = 'https://example.com/';$db['default'] = array(
'hostname' => 'localhost',
'username' => 'db_user',
'password' => 'YOUR_SECRET',
'database' => 'db_name',
'dbdriver' => 'mysqli'
);
Kompatibilität mit PHP 8
Warnungen zu null-Werten oder nicht zählbaren Typen müssen an der jeweiligen Aufrufstelle untersucht werden. Ein pauschales Ersetzen von strlen($str) durch strlen((string)$str) oder count($data) durch count((array)$data) kann das Verhalten verändern und Fehler verdecken. Bevorzugen Sie einen getesteten Wartungs-Fork und korrigieren Sie Anwendungscode sowie Bibliotheken gezielt.
Dateiberechtigungen
Nur application/cache und application/logs müssen bei entsprechender Nutzung beschreibbar sein. Geben Sie dem Webserver dort Zugriff; vermeiden Sie Schreibrechte für den gesamten Projektbaum oder pauschal großzügige rekursive Rechte.
sudo chown -R www-data:www-data application/cache application/logs
sudo chmod -R u+rwX,g+rX application/cache application/logs
Nginx-Beispiel
Liegt der Document Root im Projektverzeichnis, sperren Sie den direkten Zugriff auf application, system, versteckte Dateien und beliebige PHP-Skripte. Leiten Sie Anfragen an index.php weiter und passen Sie den PHP-FPM-Socket an. Ergänzen Sie HTTPS, weitere Härtung und Protokolle für Produktion.
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;
}
}
Prüfen und bereitstellen
Testen Sie Routen, Datenbankzugriffe und Protokolle unter der vorgesehenen PHP-Version. Verwenden Sie den Entwicklungsmodus nur lokal; in Produktion dürfen Fehler nicht öffentlich angezeigt werden. Sichern Sie Anwendung und Datenbank vor einem Austausch der Framework-Dateien.
define('ENVIRONMENT', 'production');
Weitere Informationen
Wartungs-Fork: https://github.com/pocketarc/codeigniter ; Originalanleitung zu 3.1.13: https://codeigniter.com/userguide3/installation/index.html. Für neue Anwendungen kommt CodeIgniter 4 in Betracht.
Teilen
Was ist Ihre Reaktion?
Gefällt mir
0
Gefällt mir nicht
0
Liebe
0
Lustig
0
Wütend
0
Traurig
0
Wow
0