Wenn im ErrorLog des Apache2 WebServers ("tail /var/log/apache2/error.log") u.a. folgende Zeile zu finden ist, kann PHP die Extension (Erweiterung) nicht finden und laden:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/extensions/mysql.so' - /usr/lib/php5/extensions/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
Häufig wird dann angefangen, wild an der Konfiguration zu ändern und basteln. Dabei wird meist das naheliegendste übersehen:
Gibt es das angegebene Verzeichnis überhaupt ?
Erst recht, wenn mehrere (oder gar viele) Extensions nicht geladen werden können.
Wenn dann der Befehl
dir -l /usr/lib/php5/extensions/
die folgende Fehlermeldung anzeigt, sollte alles klar sein:
dir: Zugriff auf /usr/lib/php5/extensions/ nicht möglich: Datei oder Verzeichnis nicht gefunden
Lösung
Den Pfad für die Extensions in der "php.ini" anpassen. Diese kann, falls der Pfad nicht bekannt ist, mithilfe des folgenden Befehls gefunden werden.
find / -name php.ini
Dieser Befehl zeigt Ihnen ggf. auch andere "php.ini" Dateien auf ihrem System an. Manchmal konfiguriert man ein einer "php.ini" und wundert sich, dass keine Änderung eintritt. Wenn man zufällig die falsche Datei in den Händen hat, dann kann man auch lange auf ein Ergebnis warten 😉
Häufig fällt dieses Problem nach einer (Neu)Installation erst auf, wenn die mySQL / mySQLi Unterstützung fehlt. Grund ist dann (meist), dass die mysql.so Extension in PHP nicht geladen werden kann.