Ошибка при загрузке Zend Gdata framework в WordPress

#wordpress #frameworks #gdata #zend-loader

#wordpress #фреймворки #gdata #zend-загрузчик

Вопрос:

Я пытаюсь использовать Zend Gdata framework с WordPress, но у меня возникли некоторые проблемы. Теперь все работает отлично, когда я тестирую на localhost с помощью XAMPP. Однако на моем веб-сервере мой код выходит из строя.

Вот мой код для включения фреймворка.

 `set_include_path(TEMPLATEPATH . '/includes/');
require_once ('Zend/Loader.php'); 
Zend_Loader::loadClass('Zend_Gdata_Youtube');`
 

Этот код выдает следующую ошибку.

Предупреждение: Zend_Loader::include_once(Zend/Gdata/Youtube.php ) [zend-loader.include-once]: не удалось открыть поток: нет такого файла или каталога в /home/damain/public_html/mysite.com/wp-content/themes/mysite/includes/Zend/Loader.php в строке 146

Предупреждение: Zend_Loader::include_once() [function.include]: Не удалось открыть ‘Zend/Gdata / Youtube.php’ для включения (include_path=’/home/damain/public_html/mysite.com/wp-content/themes/mysite/includes/’) в /home/damain/public_html/mysite.com/wp-content/themes/mysite/includes/Zend/Loader.php в строке 146

Неустранимая ошибка: неперехваченное исключение ‘Zend_Exception’ с сообщением ‘File «Zend/Gdata/Youtube.php » не существует или класс «Zend_Gdata_Youtube» не был найден в файле’ in /home/damain/public_html/mysite.com/wp-content/themes/mysite/includes/Zend/Loader.php:99 Стектрассировка: # 0 /home/damain/public_html/mysite.com/wp-content/themes/mysite/includes/modules/yt_link_checker.php(19) : Zend_Loader::loadClass(‘Zend_Gdata_Yout…’) #1 /home/damain/public_html/mysite.com/wp-includes/plugin.php (405): load_zend_gdata(«) #2 /home/damain/public_html/mysite.com/wp-admin/admin.php (111): do_action(‘load_zend_gdata’, массив) #3 /home/damain/public_html/mysite.com/wp-admin/index.php (10): require_once(‘/добавлено home/damain/…’) #4 {main} /home/damain/public_html/mysite.com/wp-content/themes/mysite/includes/Zend/Loader.php в строке 99

Кажется, я не могу разобраться в этой проблеме. Кто-нибудь может помочь?

Ответ №1:

Лучшее решение в этом случае — запустить скрипт, требующий загрузчика Zend, и использовать var_dump(get_include_path()) , чтобы узнать, какой путь указывает сервер. Затем продолжайте изменять php.ini include_path, пока скрипт не найдет его.

В вашем случае я не уверен, что «damain» должно быть «доменом». Мой путь включения, который, наконец, сработал, был:

/home2/thelove6/public_html/zf/ZendGdata/library» thelove6 является именем пользователя.

Ответ №2:

Вы посмотрели, существуют ли эти файлы в этих каталогах? (/mysite/includes/Zend/Loader.php ) и у них есть правильные разрешения? Похоже, что это вполне может быть проблемой. Еще одна вещь, которую нужно проверить с помощью простого phpinfo() , это то, что у вас есть все библиотеки, установленные на реальном сервере.

Комментарии:

1. Да, я сделал, каталоги и файлы есть. Однако я никогда ничего не делал с разрешениями. Какие разрешения должны быть у этих файлов?

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

Ответ №3:

Хорошо, возможная причина: вы не используете правильный регистр для имени класса. Для версии 1.11.11 это будет Zend_Gdata_YouTube , а не Zend_Gdata_Youtube.

ОС Windows игнорирует этот случай, в то время как сервер Linux этого не делает. Надеюсь, это решит вашу проблему, просто посмотрите на правильный регистр имен классов или файлов.