Ugh, I'm running into some real trouble with my Amazon micro instance. I'm just now implementing a PHP <-> MYSQL interface. The instance seems to be reporting that the MYSQLI plugin is not installed, however, all other indications are contrary. I've exhausted my patience with searching and will now appeal to the higher intellect of the internet as a whole. Thanks for looking!
My Code:
<?php
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On');
$mysql = mysqli_connect( 'localhost', 'EulerPhpUser', '*********' );
// more code
error message: Fatal error: Call to undefined function mysqli_connect() in /var/www/html/euler/login.php on line 27
$ cat /etc/*-release
Amazon Linux AMI release 2013.03
Here's the portion of my php.ini file
; Maximum number of links. -1 means no limit.
; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.max-links
mysqli.max_links = -1
; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-port
mysqli.default_port = 3306
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-socket
mysqli.default_socket =
; Default host for mysql_connect() (doesn't apply in safe mode).
; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-host
mysqli.default_host =
; Default user for mysql_connect() (doesn't apply in safe mode).
; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-user
mysqli.default_user =
; Default password for mysqli_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default-pw
mysqli.default_pw =
; Allow or prevent reconnect
mysqli.reconnect = Off
This is the only section of the phpifo() where my search for mysqli yielded results
Configure Command
'./configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-amazon-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--without-pear' '--with-bz2' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--enable-gd-native-ttf' '--with-t1lib=/usr' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--with-kerberos' '--enable-ucd-snmp-hack' '--enable-shmop' '--enable-calendar' '--without-sqlite' '--with-libxml-dir=/usr' '--enable-xml' '--with-system-tzdata' '--with-mhash' '--with-apxs2=/usr/sbin/apxs' '--libdir=/usr/lib64/php' '--enable-pdo=shared' '--with-mysql=shared,/usr' '--with-mysqli=shared,/usr/lib64/mysql/mysql_config' '--with-pdo-mysql=shared,/usr/lib64/mysql/mysql_config' '--with-pdo-sqlite=shared,/usr' '--without-gd' '--disable-dom' '--disable-dba' '--without-unixODBC' '--disable-xmlreader' '--disable-xmlwriter' '--without-sqlite3' '--disable-phar' '--disable-fileinfo' '--disable-json' '--without-pspell' '--disable-wddx' '--without-curl' '--disable-posix' '--disable-sysvmsg' '--disable-sysvshm' '--disable-sysvsem'
Finally, one other thing to note. I tried to run the following code, and the server returns a completely blank page back. No errors, no nothing. As if php crashed without generating an error. I'm not sure how to interpret that.
if (function_exists('mysqli_connect')) {
echo 'mysqli is installed';
}
I even got so frustrated that I tried some PDO, but then got error Connection failed: could not find driver
Please advise if any further info is requested and I'll promptly provide it. Thank you for the help
In AWS, I got this error and found that I needed to run "yum install php-mysqli". This is in addition to the mysql and php packages.
I can confirm this error on Amazon Linux upgrading PHP from 5.3 to 5.6.
There is no
php56-mysqli
package. There isphp56-mysqlnd
, which I had installed.php-mysqli
was the 5.3 version [on AWS Linux].The problem turned out to be that the installer left some PHP 5.3 pieces behind, notably
/usr/bin/php
(!).To correct this problem, run:
Flag
--force
is needed to makealternatives
overwrite files left where the links should have been.If you have installed php 7.1, eg
You will also need to install mysqli separately, eg
Do not run
As this will install php 5
UPDATE:
Up to where I understand your PHP installation was compiled with
mysqli
support but the module is not enabled. Why? Because you specify that the only reference tomysqli
in thephpinfo()
is theConfigure Command
. Should it be enabled, a table like should show up.So, maybe, you simply didn't uncomment the extension line in your
php.ini
file:Initial post:
According to the official docummentation:
In other words, you could check if your php.ini file is being taken into account (it may be in a wrong path). Try: