#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 этого не делает. Надеюсь, это решит вашу проблему, просто посмотрите на правильный регистр имен классов или файлов.