Siduction Forum
Siduction Forum => Software - Support => Topic started by: harley-peter on 2017/04/19, 15:23:55
-
Hallo,
seit einiger Zeit bekomme ich beim Start von phpmyadmin die Meldung dass mysqli fehlt. Ich habe vor längerer Zeit mal Apache durch nginx ersetzt. Vielleicht ist es seitdem das weiß ich aber nicht sicher weil ich damals nur meine Startseite gecheckt habe um zu sehen ob nginx läuft. Wo bekomme ich die Erweiterung her bzw. wie kann ich sie aktivieren wenn sie in einem Paket "versteckt" ist?
Folgendes ist installiert:
dpkg -l | grep mysql
ii dbconfig-mysql 2.0.8 all dbconfig-common MySQL/MariaDB support
rc libmysqlclient16 5.1.62-1 amd64 MySQL database client library
ii mysql-client 5.7.17-1 all MySQL database client (metapackage depending on the latest version)
ii mysql-client-5.7 5.7.17-1 amd64 MySQL database client binaries
ii mysql-client-core-5.7 5.7.17-1 amd64 MySQL database core client binaries
ii mysql-common 5.8+1.0.2 all MySQL database common files, e.g. /etc/mysql/my.cnf
ii mysql-server 5.7.17-1 all MySQL database server (metapackage depending on the latest version)
rc mysql-server-5.6 5.6.30-1 amd64 MySQL database server binaries and system database setup
ii mysql-server-5.7 5.7.17-1 amd64 MySQL database server binaries and system database setup
ii mysql-server-core-5.7 5.7.17-1 amd64 MySQL database server binaries
ii mysql-utilities 1.6.4-1 all collection of scripts for managing MySQL servers
ii php-mysql 1:7.0+51 all MySQL module for PHP [default]
rc php5-mysqlnd 5.6.24+dfsg-1+b3 amd64 MySQL module for php5 (Native Driver)
ii php7.0-mysql 7.0.16-3 amd64 MySQL module for PHP
ii python-mysql.connector 2.1.5-1 all pure Python implementation of MySQL Client/Server protocol
dpkg -l | grep php
ii php 1:7.0+51 all server-side, HTML-embedded scripting language (default)
ii php-cli 1:7.0+51 all command-line interpreter for the PHP scripting language (default)
ii php-common 1:51 all Common files for PHP packages
ii php-curl 1:7.0+51 all CURL module for PHP [default]
ii php-gettext 1.0.12-0.1 all transitional dummy package for php-php-gettext
ii php-mbstring 1:7.0+51 all MBSTRING module for PHP [default]
ii php-mysql 1:7.0+51 all MySQL module for PHP [default]
ii php-pear 1:1.10.1+submodules+notgz-9 all PEAR Base System
ii php-php-gettext 1.0.12-0.1 all read gettext MO files directly, without requiring anything other than PHP
ii php-phpseclib 2.0.4-1 all implementations of an arbitrary-precision integer arithmetic library
ii php-tcpdf 6.2.12+dfsg2-1 all PHP class for generating PDF files on-the-fly
ii php-xml 1:7.0+51 all DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]
ii php-xml-parser 1.3.6-1 all XML parsing class based on PHP's bundled expat
ii php5 5.6.26+dfsg-1 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cgi 5.6.26+dfsg-1 amd64 server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.6.26+dfsg-1 amd64 command-line interpreter for the php5 scripting language
ii php5-common 5.6.26+dfsg-1 amd64 Common files for packages built from the php5 source
ii php5-fpm 5.6.26+dfsg-1 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php5-gd 5.6.26+dfsg-1 amd64 GD module for php5
ii php5-intl 5.6.26+dfsg-1 amd64 internationalisation module for php5
ii php5-json 1.3.9-1 amd64 JSON module for PHP 5
ii php5-mcrypt 5.6.26+dfsg-1 amd64 MCrypt module for php5
rc php5-mysqlnd 5.6.24+dfsg-1+b3 amd64 MySQL module for php5 (Native Driver)
ii php7.0 7.0.16-3 all server-side, HTML-embedded scripting language (metapackage)
ii php7.0-cli 7.0.16-3 amd64 command-line interpreter for the PHP scripting language
ii php7.0-common 7.0.16-3 amd64 documentation, examples and common module for PHP
ii php7.0-curl 7.0.16-3 amd64 CURL module for PHP
ii php7.0-fpm 7.0.16-3 amd64 server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php7.0-json 7.0.16-3 amd64 JSON module for PHP
ii php7.0-mbstring 7.0.16-3 amd64 MBSTRING module for PHP
ii php7.0-mysql 7.0.16-3 amd64 MySQL module for PHP
ii php7.0-opcache 7.0.16-3 amd64 Zend OpCache module for PHP
ii php7.0-readline 7.0.16-3 amd64 readline module for PHP
ii php7.0-xml 7.0.16-3 amd64 DOM, SimpleXML, WDDX, XML, and XSL module for PHP
ii phpmyadmin 4:4.6.6-4 all MySQL web administration tool
-
Hi Peter,
die Meldung sollte eigentlich nicht kommen, denn msqli sollte in den Paketen php7.[0,1]-mysql enthalten sein.
Was für eine Fehlermeldung kommt denn genau?
$ apt-cache search mysqli
php7.0-mysql - MySQL-Modul für PHP
php7.1-mysql - MySQL-Modul für PHP
mysql-utilities - collection of scripts for managing MySQL servers
php-db - Database Abstraction Layer
$ apt-file list php7.1-mysql
php7.1-mysql: /usr/lib/php/20160303/mysqli.so
php7.1-mysql: /usr/lib/php/20160303/mysqlnd.so
php7.1-mysql: /usr/lib/php/20160303/pdo_mysql.so
php7.1-mysql: /usr/share/bug/php7.1-mysql/control
php7.1-mysql: /usr/share/bug/php7.1-mysql/script
php7.1-mysql: /usr/share/doc/php7.1-mysql
php7.1-mysql: /usr/share/lintian/overrides/php7.1-mysql
php7.1-mysql: /usr/share/php7.1-mysql/mysql/mysqli.ini
php7.1-mysql: /usr/share/php7.1-mysql/mysql/mysqlnd.ini
php7.1-mysql: /usr/share/php7.1-mysql/mysql/pdo_mysql.ini
$ apt-file list php7.0-mysql
php7.0-mysql: /usr/lib/php/20151012/mysqli.so
php7.0-mysql: /usr/lib/php/20151012/mysqlnd.so
php7.0-mysql: /usr/lib/php/20151012/pdo_mysql.so
php7.0-mysql: /usr/share/bug/php7.0-mysql/control
php7.0-mysql: /usr/share/bug/php7.0-mysql/script
php7.0-mysql: /usr/share/doc/php7.0-mysql
php7.0-mysql: /usr/share/lintian/overrides/php7.0-mysql
php7.0-mysql: /usr/share/php7.0-mysql/mysql/mysqli.ini
php7.0-mysql: /usr/share/php7.0-mysql/mysql/mysqlnd.ini
php7.0-mysql: /usr/share/php7.0-mysql/mysql/pdo_mysql.ini
-
Hi Michael,
die Meldung ist relativ simpel:
Die Erweiterung mysqli fehlt. Bitte die PHP-Konfiguration überprüfen. Siehe unsere Dokumentation für mehr Informationen.
oder wenn ich was anderes aufrufe:
Database connection error (1): The MySQL adapter 'mysqli' is not available.Database connection error (1): The MySQL adapter 'mysqli' is not available.
Vielleicht sollte ich php mal komplett eliminieren und neu installieren.
-
vielleicht hilft ja die einfache installation des richtigen pakets php*-mysqlnd passend zur laufenden php-Version. ich hab gehört, das soll helfen. erm - um genauer zu sein - das sollte zur Version des fpm-pakets passen, aber damit renn ich ja wahrscheinlich offene Türen ein.
-
@melmarker:
Da habe ich als dummer Nutzer mal eine grundsätzliche Frage: bei mir ist sowohl php5-fpm als auch php7.0-fpm installiert warum auch immer. Werden beide benötigt? (z. B. wegen Kompatibilitätsproblemen)
Für php7.0 gibt es laut apt search kein Paket mit Namen php7.0-mysqlnd und das für php5 lässt sich nicht installieren weil die Versionsnummer nicht zu php5-common passt (siehe meinen ersten post). Also was tun?
-
* aptitude search php7 | grep mysql
* aptitude search php | grep fpm | grep -v i386
Nur als Anmerkung, die PHP-Situtation in debian ist recht bescheiden, obwohl der Maintainer (Ondrey S.) wirklich nen richtig tollen Job macht. PHP 5 brauchst Du nur noch, wenn Du wirklich Applikationen hast, die zwingend PHP 5 benötigen - normalerweise heisst das in hohem Bogen in die Tonne damit. Zwischen PHP 7.0 und 7.1 kannst Du eventuell auch nicht ganz frei wählen, das kommt wirklich auf die benötigten PHP-Pakete an. php7.*-mysql hat als provide pdo und nd. Ich glaub, mit meinem Kram bin ich aufgrund der Nichtverfügbarkeit von ein paar benötigten Sachen bei 7.0 geblieben.
Anmerkung zu nginx - sach mal, willst Du Dir das wirklich antun, ich bin mit der kompletten Siduction-Installation zurück zum Indianer gegangen, ist wesentlich stressfreier. Grade wenn man etwas ungewöhnlichere Installationen damit vor hat. Und für nen lokalen Zugriff auf mysql per php würd ich den Indiander mit php7.0-fpm nehmen, da ist die Einbindung des FastProcessMangers mit der Aktivierung von 2 oder 3 Modulen erledigt - und einer Zeile im Virtual-Host. Wobei ich bei ner lokalen Installation auch wirklich ernsthaft darüber nachdenken würde, mir auch dieses Geraffel zu sparen und gleich mod-php zu nehmen :D
Und noch einen zu nginx - der hatte für uns (und auch für mich auf kleinen Maschinen eine echte Daseinsberechtigung, weil der Apache < 2.4 einfach nur klobig, hässlich, langsam und alles andere war. Mit > 2.4 hat sich das wenigstens teilweise geändert, der ist auch auf kleinen Maschinen recht entspannt zu konfigurieren. Und das Beten und Patchen und wegen jedem Mist neu bauen fällt wech.
-
@melmarker:
Danke für die ausführlichen Hinweise und Tips. Habe php5 mitsamt nginx entsorgt und den Indianer installiert und das Problem ist weg. Es hat also anscheinend tatsächlich an nginx gelegen.
-
Nö, nginx ist nicht schuld, der folgt nur seiner eigenen Philosophie - und die ist nicht ganz einfach zu verstehen - die ist also im Handling fast aller Sachen wesentlich anders als der Indianer. Und die Dokumentation versteht man manchmal wahrscheinlich wirklich nur, wenn man selbst an dem Ding entwickelt. Ansonsten ist nginx vom Fachlichen sehr abgehoben und stellt Anforderungen an das Verständnis seiner inneren Wirkungsweise, denen ich nicht mehr nachkommen will. Dafür ist das Teil aber auch recht geil zu konfigurieren, wenn man es denn kann - und vor allem, wenn man wirklichen Bedarf daran hat. Anders: Wenn Deine einzige Chance, ein Problem zu bewältigen, nginx heisst, dann hast Du ein Riesenproblem und voll in die braune Masse gegriffen. Dann hilft auch kein Wimmern mehr, dann musst Du da durch - für alle anderen Probleme gibt es Software, die sich mit wesentlich weniger Aufwand installieren und warten lässt 8)