Вопрос или проблема
Я пытаюсь запустить программу подключения к базе данных, связанную с PHP, на Ubuntu 22.04:
<?php
include('dbconnection.php');
$servername = "localhost";
$username = "root";
$password = "";
echo "Тестирование";
//https://forum.infinityfree.com/t/cant-connect-my-php-to-mysql/63505/15#google_vignette
$mysqli = @new mysqli('localhost', 'root', '', 'does_not_exist');
if ($mysqli->connect_errno) {
/* Используйте ваш предпочтительный метод логирования ошибок здесь */
echo "Ошибка тестирования";
error_log('Ошибка подключения: ' . $mysqli->connect_errno);
}
else {
echo "Нет ошибок";
}
?>
Это выводит “Тестирование”. Я проверил php.ini, но обнаружил, что в нем нет строки:
;extension=php_mysqli.dll
Содержимое файла php.ini находится по адресу: https://github.com/zulfi100/files
Пожалуйста, кто-нибудь, проверьте мой файл php.ini и дайте знать, если он правильный. Если нет, пожалуйста, подскажите, как его исправить.
Зульфи.
Ответ или решение
Для решения проблемы, связанной с подключением базы данных в PHP, необходимо проверить и, при необходимости, откорректировать файл конфигурации php.ini. Я дам подробные инструкции по исправлению существующего файла php.ini версии 8.2, а также предложу, как сгенерировать новый файл, если это необходимо.
Шаг 1: Находим и открываем php.ini
На операционной системе Ubuntu 22.04 файл php.ini обычно располагается по следующему пути:
/etc/php/8.2/apache2/php.ini
или
/etc/php/8.2/cli/php.ini
Эти два файла могут различаться по содержимому, поскольку первый используется для работы веб-сервера Apache, а второй — для командной строки. Убедитесь, что вы редактируете тот файл, который нужен для вашего приложения.
Чтобы открыть файл, используйте текстовый редактор. Например, с помощью nano
вы можете выполнить следующую команду:
sudo nano /etc/php/8.2/apache2/php.ini
Шаг 2: Проверка и активация расширения mysqli
Ваша основная проблема заключается в том, что вы не можете подключиться к базе данных, и у вас отсутствует строка:
;extension=php_mysqli.dll
Эта строка указывает на необходимость активировать расширение mysqli
, но в Ubuntu используется другая форма записи. В файле php.ini вам нужно убедиться, что следующее расширение включено:
extension=mysqli
Если вы не нашли этот параметр, добавьте его в разделе, отвечающем за расширения (обычно это раздел под заголовком Dynamic Extensions
). Убедитесь, что он не закомментирован (без символа ;
перед строкой).
Шаг 3: Перезапуск веб-сервера
Однако, после внесения изменений в php.ini
, необходимо перезапустить веб-сервер, чтобы изменения вступили в силу. Если вы используете Apache, выполните следующее команду:
sudo systemctl restart apache2
Если вы используете другой сервер (например, Nginx), выполните команду для его перезапуска.
Шаг 4: Проверка на ошибки
После выполнения всех изменений и перезапуска сервера попробуйте снова запустить ваш PHP-скрипт. Если проблема не исчезла, проверьте журналы ошибок, чтобы узнать больше об ошибках подключения:
sudo tail -f /var/log/apache2/error.log
Шаг 5: Генерация нового файла php.ini
Если вам необходимо сгенерировать новый файл php.ini, вы можете сделать это, скопировав образец, который обычно расположен в директории установки PHP:
cd /etc/php/8.2/apache2
sudo cp php.ini-production php.ini
Затем откройте новый файл для редактирования и внесите изменения, как указано ранее.
Заключение
После внесения этих изменений ваш PHP-скрипт должен работать корректно, и подключение к базе данных будет установлено. Если возникнут дополнительные трудности, рекомендуется проверить права доступа пользователя базы данных и настройки MySQL.
Если у вас остались вопросы или уточнения, пожалуйста, не стесняйтесь обращаться за дополнительной помощью.