呃,我的亚马逊微实例遇到了一些麻烦。我刚刚实现了PHP< - > MYSQL界面。该实例似乎报告未安装MYSQLI插件,但是,所有其他指示都是相反的。我已经厌倦了对搜索的耐心,现在将吸引整个互联网的更高智慧。谢谢你的期待!
我的代码:
<?php
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 'On');
$mysql = mysqli_connect( 'localhost', 'EulerPhpUser', '*********' );
// more code
错误消息:致命错误:在第27行的/var/www/html/euler/login.php中调用未定义的函数mysqli_connect()
$ cat /etc/*-release
Amazon Linux AMI release 2013.03
这是我的php.ini文件的一部分
; 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
这是phpifo()的唯一部分,我搜索mysqli产生了结果
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'
最后,还有一点需要注意。我试图运行以下代码,服务器返回一个完全空白的页面。没有错误,没有任何错误。好像php崩溃而没有产生错误。我不确定如何解释它。
if (function_exists('mysqli_connect')) {
echo 'mysqli is installed';
}
我甚至非常沮丧,我尝试了一些PDO,但后来出现错误连接失败:找不到驱动程序
请告知是否有任何进一步的信息,我会及时提供。谢谢你的帮助
答案 0 :(得分:8)
在AWS中,我收到此错误,发现我需要运行&#34; yum install php-mysqli&#34;。这是mysql和php包的补充。
答案 1 :(得分:2)
<强>更新强>
据我所知,您的PHP安装是使用mysqli
支持编译的,但该模块未启用。为什么?因为您指定mysqli
中对phpinfo()
的唯一引用是Configure Command
。是否应该启用,像这样的表
应该出现。
所以,也许,您根本没有取消注释php.ini
文件中的扩展名:
extension=mysqli.so
首发帖子:
要检查系统是否正在使用配置文件,请尝试 检索cfg_file_path配置设置的值。如果 这是可用的,正在使用配置文件。
换句话说,您可以检查您的php.ini文件是否被考虑(它可能在错误的路径中)。尝试:
<?php echo 'Configuration file (php.ini) path: ', get_cfg_var('cfg_file_path');
答案 2 :(得分:1)
如果您已安装php 7.1,例如
sudo yum install php71
您还需要单独安装mysqli,例如
sudo yum install php71-mysqli
不要运行
sudo yum install php-mysqli
因为这将安装php 5
答案 3 :(得分:1)
我可以在Amazon Linux将PHP从5.3升级到5.6时确认此错误。
没有php56-mysqli
软件包。我已经安装了php56-mysqlnd
。 php-mysqli
是5.3版(在AWS Linux上)。
原来的问题是安装程序留下了PHP 5.3的一部分,尤其是/usr/bin/php
(!)。
要解决此问题,请运行:
$ alternatives --force --refresh php
需要标记--force
才能使alternatives
覆盖链接应留在的文件。
答案 4 :(得分:0)
x = np.array([0, 1])
x[x==0] = 2
x # array([2, 1])
如果安装了mysqlnd,mysqli会使用^^
祝你有美好的一天!!
在终端检查启用mysqli
yum -y install php-mysqlnd