"PHP Warning: Module 'mysqlnd' already loaded in Unknown on line 0" nach i-MSCP-Upgrade auf 1.2.0

  • Hallo,


    Ich habe i-MSCP auf die neue stable Version 1.2.0 aktualisiert. Das Upgrade verlief völlig problemfrei. Web- und Mailserver arbeiten weiterhin korrekt.
    Per Systemmail erhalte ich jedoch (NGINX?)-Warnungen.

    Code
    1. Cron <root@srv> [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)PHP Warning: Module 'mysqlnd' already loaded in Unknown on line 0PHP Warning: Module 'PDO' already loaded in Unknown on line 0PHP Warning: Module 'mysqlnd' already loaded in Unknown on line 0PHP Warning: Module 'PDO' already loaded in Unknown on line 0


    Die nginx error.log Datei zeigt dazu folgende Ausgabe:

    Code
    1. 2014/12/30 11:07:46 [emerg] 2107#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
    2. 2014/12/30 11:07:46 [emerg] 2107#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
    3. 2014/12/30 11:07:46 [emerg] 2107#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
    4. 2014/12/30 11:07:46 [emerg] 2107#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
    5. 2014/12/30 11:07:46 [emerg] 2107#0: bind() to 0.0.0.0:80 failed (98: Address already in use)
    6. 2014/12/30 11:07:46 [emerg] 2107#0: still could not bind()


    Offensichtlich geht es hier um Module die NGINX laden möchte, die jedoch schon geladen sind (durch Apache?).
    Liegt hier ein Bug vor oder habe ich in der Upgradeanleitung bzw. Errata etwas übersehen?


    Mein Rootserver:
    Debian 7.7
    php5 5.4.35-0+deb7u2
    Apache 2 ITK MPM 2.2.22-13+deb7u3
    i-MSCP 1.2.0


    Gruß, Curio

  • Hallo zusammen,


    auch ich habe das gleiche Problem nach dem Update gersten Abend:



    ( [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime))


    PHP Warning: Module 'mysqlnd' already loaded in Unknown on line 0
    PHP Warning: Module 'PDO' already loaded in Unknown on line 0
    PHP Warning: Module 'mysqlnd' already loaded in Unknown on line 0
    PHP Warning: Module 'PDO' already loaded in Unknown on line 0


    Und

    (/usr/bin/php /var/www/virtual/domain.tld/htdocs/ow_cron/run.php)


    PHP Warning: Module 'mysqlnd' already loaded in Unknown on line 0
    PHP Warning: Module 'PDO' already loaded in Unknown on line 0


    Ich habe das gleiche System:
    Debian 7.7
    php5 5.4.35-0+deb7u2
    Apache 2 ITK MPM 2.2.22-13+deb7u3
    i-MSCP 1.2.0


    Viele Grüße
    Alex

  • Hallo,


    schaut mal in das Verzeichnis /etc/php5/conf.d/ .
    Dort sind vermutlich mehrfach Symlinks auf die ../mods-available/mysqlnd.ini bzw. auf die ../mods-available/pdo.ini .
    Bei mir waren das z.B. einmal mit @10-mysqlnd.ini und dann nochmals mit @20-mysqlnd.ini. Ich habe die @20- weggelöscht, da Apache beim mehrfachen laden der Module die oben genannten Fehlermeldungen anzeigt.


    Ihr könnt überprüfen ob es geklappt hat indem ihr den Befehl
    php -i | grep Configure
    auf der Kommandozeile nutzt.


    Hoffe es hilft weiter.


    Gruß Tobias

  • Hallo Tobias,


    herzlichen Dank für Deine Antwort. Es war so, wie Du es beschrieben hast. Jetzt scheint alles zu passen.
    :thumbsup:


    Viele Grüße
    Alex

  • Auch von mir vielen Dank für die Hilfe, Tobias.


    Aber ich hätte gerne noch was über die Hintergründe gewusst. Müsste hier nicht etwas am i-MSCP Setup geändert werden, damit das Problem gar nicht erst auftritt?


    Gruß, Curio

  • Hallo,


    also der Fehler kommt auch, wenn man iMSCP komplett neu auf ein leeres System installiert. Dabei wird dann das Setup vorzeitig beendet.


  • Hallo Curio,


    ich habe mir die Install-Skripte jetzt nochmal angeschaut. In der neuen Version ist im Autoinstaller/Adapter/DebianAdapter.pm eine Funktion postBuild hinzugefügt worden. Hier wird nochmals sichergestellt das die PHP5-Module auch aktiviert sind. Da die Funktion ein php5enmod durchführt vermute ich das bei einem Update hier die Symlink mit @10.. nicht berücksichtigt werden und die Module entsprechend nochmals mit @20.. enabled werden.
    Somit hast du eine doppelte Aktivierung der PHP5-Module. Ist genauer gesagt auch kein Fehler sondern eine Warnung der darauf hinweist (siehe Logauszug in deinem Post). Bei einer Neuinstalltion dürfte an dieser Stelle kein Problem auftreten. Hat papagei9 widerlegt.
    Eventuell wäre es als Workaround sogar sinnvoll die Symlink mit @10.. zu löschen und die @20... bestehen zu lassen.


    Ich bin mir allerdings sicher das Nuxwin an der Funktion noch etwas optimiert, da er das Thema auch verfolgt.


    Hoffe das reicht als Hintergrund. :)


    papagei9: Habe gerade deinen Post gesehen. Dann würde die Funktion auch bei einer Neuinstallation zuschlagen und es sollte sich Nuxwin oder einer der anderen Entwickler das ansehen.


    Gruß Tobias

  • @papagei9,


    den gleichen Fehler hatte ich eben auch auf einen Server mit i-mscp bei upgrade von 1.1.20 auf 1.2.0.


    Ubuntu 14.04.1 LTS
    i-MSCP 1.1.20
    Apache/2.4.7 (Ubuntu)
    PHP 5.5.9-1ubuntu4.5
    MySQL 5.5.40


    Hab jetzt das Backup wieder zurückgeladen und warte erst mal ab.

  • Danke für die Infos dazu. Das gleiche "Problem" hatte ich auch nach dem Upgrade auf 1.1.21. Hatte auf einen Fix gehofft und wollte mir die eigene Suche erstmal sparen. Die stündlichen Log Mails haben mich schon langsam genervt...

  • ...selbiges hier (1.2.0). Danke für die Infos!


    Ich hatte die zwei @10* Einträge gelöscht. Daraufhin kamen weitere Fehler

    Code
    1. # php -i | grep ConfigurePHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mysql.so' - /usr/lib/php5/20100525/mysql.so: undefined symbol: mysqlnd_connect in Unknown on line 0PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mysqli.so' - /usr/lib/php5/20100525/mysqli.so: undefined symbol: mysqlnd_connect in Unknown on line 0# grep -Hrv ";" /etc/php5 | grep -i "extension="/etc/php5/mods-available/pdo.ini:extension=pdo.so/etc/php5/mods-available/imap.ini:extension=imap.so/etc/php5/mods-available/intl.ini:extension=intl.so/etc/php5/mods-available/mysqlnd.ini:extension=mysqlnd.so/etc/php5/mods-available/mcrypt.ini:extension=mcrypt.so/etc/php5/mods-available/mysqli.ini:extension=mysqli.so/etc/php5/mods-available/pdo_mysql.ini:extension=pdo_mysql.so/etc/php5/mods-available/mysql.ini:extension=mysql.so/etc/php5/mods-available/curl.ini:extension=curl.so/etc/php5/mods-available/gd.ini:extension=gd.so


    Ein

    Code
    1. # aptitude reinstall php5-mysqlnd


    legte dann wiederrum automatisch den @10* Eintrag an

    Code
    1. # l /etc/php5/conf.d/lrwxrwxrwx 1 root root 29 Jan 21 15:25 10-mysqlnd.ini -> ../mods-available/mysqlnd.ini....


    Also noch manuell den @20* Eintrag davon gelöscht

    Code
    1. # rm /etc/php5/conf.d/20-mysqlnd.ini


    ...und nun bleibt die Ausgabe von "php -i | grep Configure" auch leer (gut)!