2015-10-29 2 views
4

Я пытаюсь использовать учетную запись службы с API Google, чтобы добавить событие календаря, используя php. Я уже отлично работаю над сайтом. Когда я переехал его на другой сайт на том же сервере, я вдруг стал получать следующие сообщения об ошибках:Ошибка mkdir. доступ запрещен. google api

~ PHP Warning: MKDIR(): Разрешение отказано в Google/Cache/file.php

~ Uncaught исключение «Google_Cache_Exception» с сообщением «Невозможно создать каталог для хранения: в Google/Cache/file.php

Обе среды идентичны, насколько я могу сказать ~ тот же сервер ~ те же разрешения на все файлы/папки ~ Те же учетные данные ~ Оба URL-адреса авторизированы в консоли Google

Я проверил с моим сервером, чтобы узнать, может ли быть проблема в ответе here, но был уверен, что все настроено правильно.

Я много искал и читал, но не могу представить, что может вызвать эти ошибки, когда все отлично работает с другим сайтом.

Любая помощь была бы высоко оценена!

ответ

1

В случае, если кто приходит на это: я решил это, следуя советование приведенного здесь: A client error occurred: Could not create storage directory: /tmp/Google_Client/00

специально, я добавленные вручную вложенных папки (Google и кэш) внутри моего каталога TMP, а затем указать путь к нему для Google, используя этот код (по ссылке выше):

$config = new Google_Config(); 
$config->setClassConfig('Google_Cache_File', array('directory' => '../../tmp/google/cache')); 
// Here I set a relative folder to avoid pb on permissions to a folder like /tmp that is not permitted on my mutualised host 

$client = new Google_Client($config); 
1

Добавить PHP код в ваш скрипт:

$client = new Google_Client(); 
$client->setCache(new Google_Cache_File('/path/to/shared/cache')); 
+0

более подробная информация будет оценена – Limon

1

В случае, если кто-то должен это сделать. Я работаю с Codeigniter и недавно перешел на osx el capitan на mac из окон 7. Моя папка кэша Google имела права доступа для чтения и записи, но ошибка сохраняется: разрешение на использование mkdir запрещено в google/cache/file.php

Я посмотрел на код, где я загружаю API Google и добавил>

$config = new Google_Config(); 
$config->setClassConfig('Google_Cache_File', array('directory' => 'application/third_party/Google/src/Google/Cache/')); 
$client = new Google_Client($config); 

Так с тех линии вы установите папку кэша.

Надеюсь, это поможет в будущем, поскольку это помогло мне.