Фу, я сталкиваюсь с некоторыми реальными проблемами с моим экземпляром Amazon micro. Я просто реализую интерфейс 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
сообщение об ошибке: Неустранимая ошибка: вызов неопределенной функции mysqli_connect () в /var/www/html/euler/login.php в строке 27
$ 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, но потом получил ошибку Connection failed: не смог найти драйвер
Пожалуйста, сообщите, если запрашивается какая-либо дополнительная информация, и я быстро ее предоставил. Спасибо вам за помощь
В AWS я получил эту ошибку и обнаружил, что мне нужно запустить «yum install php-mysqli». Это дополнение к пакетам mysql и php.
ОБНОВИТЬ:
Насколько я понимаю, ваша установка 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');
Если вы установили php 7.1, например
sudo yum install php71
Вам также потребуется установить mysqli отдельно, например
sudo yum install php71-mysqli
Не беги
sudo yum install php-mysqli
Поскольку это установит php 5