Каковы возможные причины ошибок "Class 'DOMImplementation' not found"? - PullRequest
0 голосов
/ 23 ноября 2010

У меня проблемы с модулем, который использует расширение DOM PHP через библиотеку CFPropertyList для клиентского сервера.Попытка запустить модуль заканчивается фатальной ошибкой:

Фатальная ошибка: класс 'DOMImplementation' не найден в /server/path/here/CFPropertyList/CFPropertyList.php в строке 377

Сервер клиента довольно серьезно устарел (Apache 2.2.3, PHP 5.2.6 и т. Д.), Что является еще одной битвой на другом фронте, которую я, вероятно, проиграю.Тем не менее, документация PHP класса DOMImplementation указывает, что поддержка была добавлена ​​в PHP 5, поэтому 5.2.6 должна быть достаточно хорошей, несмотря на то, что она отстает на многие годы (верно?).

Просмотр результатов работыphpinfo() предполагает, что libxml установлен и включен, что положило конец моей другой теории.

libxml секция phpinfo() output:

libXML support  active  
libXML Version  2.6.26  
libXML streams  enabled

Какие еще причины я могу найти, чтобы объяснить эту ошибку?

1 Ответ

3 голосов
/ 23 ноября 2010

DOM мог быть отключен во время компиляции (для скомпилированной установки) с помощью переключателя --disable-dom.

Или, в случае предварительно скомпилированного двоичного файла PHP (например, установленного с использованием apt, yum, rpm, alien, dpkg и т. Д.), Расширение DOM не было установлено или отключено. Найдите файл dom.so и соответствующую запись в вашем php.ini.

libxml может быть установлен, но это не значит, что DOM есть.

...