За последние 24 часа нас посетили 36982 программиста и 7905 роботов. Сейчас ищут 1786 программистов ...

Fatal error: Uncaught Error: Call to undefined function mysqli_connect()

Тема в разделе "PHP для профи", создана пользователем konon, 16 дек 2024.

  1. konon

    konon Активный пользователь

    С нами с:
    6 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    Локально под Windows 10 установил Apache 2.4, PHP8.3.6, MySQL 8. Законектился к MySQL с помощью SQLYog. Создал базу. Залил дамп. Запустил локально php-проект. Получил: Fatal error: Uncaught Error: Call to undefined function mysqli_connect().

    phpinfo() выдаёт строку API Extensions - пустую. А должна показывать: mysqli,pdo_mysql

    В php.ini раскоментарил строки:
    extension=mysqli
    extension=pdo_mysql
    phpinfo() показывает правильный (действительный) путь: C:/Server/bin/php/php.ini.

    В папке C:/Server/bin/php/ext находится php_mysqli.dll

    В httpd.conf добавил строки
    PHPIniDir "C:/Server/bin/php"
    AddHandler application/x-httpd-php .php
    LoadModule php_module "C:/Server/bin/php/php8apache2_4.dll"

    Не могу понять, что сделал не так?
     
    #1 konon, 16 дек 2024
    Последнее редактирование: 16 дек 2024
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.543
    Симпатии:
    623
    Именно в строке Loaded Configuration File?
     
  3. konon

    konon Активный пользователь

    С нами с:
    6 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    да. Именно так
     
  4. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    947
    Симпатии:
    147
    Apache перезапустить не забыл?
     
  5. konon

    konon Активный пользователь

    С нами с:
    6 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    Перезапускал много раз
     
  6. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    947
    Симпатии:
    147
    extension_dir (он относительно запускаемого php) смотри и понимай, есть ли по пути dll-ки + логи php/apache смотри, либо dll-ек нет, либо они почему-то несовместимы с версией php.
     
  7. konon

    konon Активный пользователь

    С нами с:
    6 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: C:\\php\\ext\\mysqli (\xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc), C:\\php\\ext\\php_mysqli.dll (\xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc)) in Unknown on line 0

    - это в логе apache. Путь здесь C:\\php\\ext\\ а у меня физически c:\Server\Bin\Php\ext\ - наверно здесь собака зарыта. Странно это. В httpd.conf прописан другой путь:

    LoadModule php_module "c:/Server/bin/php/php8apache2_4.dll"
    <FilesMatch \.php$>
    SetHandler application/x-httpd-php
    </FilesMatch>
    # configure the path to php.ini
    PHPIniDir "C:/Server/bin/php"
     
    #7 konon, 18 дек 2024
    Последнее редактирование: 18 дек 2024
  8. konon

    konon Активный пользователь

    С нами с:
    6 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    Перенёс копию папки PHP в корень диска - C:/PHP . И и в строке phpinfo()
    API Extensions появились долгожданные Extention : mysqli,pdo_mysql. Не понятно, почему Apache или сам PHP не берёт расширения из заданной папки "C:/Server/bin/php/ext", а пытается их взять из папки "C:/php/ext" ?
     
  9. konon

    konon Активный пользователь

    С нами с:
    6 июн 2015
    Сообщения:
    10
    Симпатии:
    0
    Ларчик просто открывался: в php.ini не раскоментировал и не прописал extension_dir = C:/Server/bin/php/ext

    Спасибо за напоминание внимательно смотреть логи :)