У меня есть задание cron в cpanel, которое подключается к Google Drive для регулярного резервного копирования файлов веб-сайта и базы данных на учетную запись Google. Я упростил файл, чтобы определить проблему:Ошибка API Google Диска в задании cron
<?php
set_time_limit(0);
require_once 'google-api-php-client/Google_Client.php';
require_once 'google-api-php-client/contrib/Google_DriveService.php';
$client = new Google_Client();
$client>setClientId('xxxx');
$client->setClientSecret('xxxx');
$service = new Google_DriveService($client);
$accessToken = '{ "access_token" : "xxx", "token_type" : "Bearer", "expires_in" : 3600,
"refresh_token" : "1/xxx" }';
$client->setAccessToken($accessToken);
$files = $service->files->listFiles();
print($files);
?>
Я аутентификацией и получил маркер обновления и маркер доступа и поместить их в переменную $accessToken
. Скрипт работает при запуске из браузера, но когда я установить его как хроны я получаю следующие ошибки:
[13-Jul-2013 13:41:02 Europe/Moscow] PHP Fatal error: Uncaught exception
'Google_IOException' with message 'HTTP Error: (0) error setting certificate verify
locations:
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
' in /home/xxxxxx/backup/google-api-php-client/io/Google_CurlIO.php:128
Stack trace:
#0 /home/xxxxxx/backup/google-api-php-client/auth/Google_OAuth2.php(270):
Google_CurlIO->makeRequest(Object(Google_HttpRequest))
#1 /home/xxxxxx/backup/google-api-php-client/auth/Google_OAuth2.php(248):
Google_OAuth2->refreshTokenRequest(Array)
#2 /home/xxxxxx/backup/google-api-php-client/Google_Client.php(315):
Google_OAuth2->refreshToken('1/xxxxxx...')
#3 /home/xxxxxx/backup/index.php(20): Google_Client-
>refreshToken('1/xxxxxx...')
#4 {main}
thrown in /home/xxxxxx/backup/google-api-php-client/io/Google_CurlIO.php on line
128
Различные настройки cUrl на cron? Он не может проверить сертификат для SSL. – peter
так как интерпретировать это или любое исправление? –