Мне нужно запускать файл PHP из задания cron каждые два часа, и я получаю сообщение об ошибке подключения к базе данных MySQL при запуске сценария PHP через cron. Сценарий работает правильно и точно так, как я ожидал, он будет запущен из браузера и даже из командной строки.
Я прочитал все ответы, найденные в результатах поиска Google, но ни один из них не смог решить мою проблему. Я не думаю, что есть какой-либо ответ, связанный с моей проблемой, поэтому я задаю этот вопрос.
Ниже приведен скрипт php для подключения к базе данных:
<?php
$cs = "localhost";
$cu = "root";
$cp = "mypassword";
// $cp = "";
$cn = "mydatabasename";
$conn = @mysqli_connect($cs, $cu, $cp, $cn);
if (!$conn) {
die("Database connection error... " . mysqli_connect_error());
}
Я запускаю скрипт из браузера и из командной строки, все работает отлично, как я и ожидал, просто когда я запускаю его из cronjob, я получаю следующую ошибку:
Ошибка подключения к базе данных ... Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: НЕТ)
Предположим, что root, mypassword, mydatabasename являются правильными учетными данными, поскольку я могу успешно запустить скрипт в браузере и даже в командной строке. Я использую абсолютный путь к файлам PHP в cronjob.
Я запускаю cronjob по этой команде:
0 0-23/2 * * * php -f /var/www/html/project-name/execute-cronjob.php >> /var/www/html/project-name/output.log
Я использую Ubuntu и у меня VPS-сервер.
Пожалуйста, помогите мне решить проблему и сообщите, если вам нужна дополнительная информация по этому вопросу.
Заранее спасибо!