Intermittent simplexml_load_file (): предупреждение ввода-вывода на локальном сайте Joomla

Я только начал получать прерывистую ошибку на всех страницах Joomla Dev сайт, который я запускаю на localhost.

Полное предупреждение:

Warning: simplexml_load_file(): I/O warning : failed to load external entity "/site/language/en-GB/en-GB.xml" in /site/libraries/joomla/language/language.php on line 1354

Странная вещь заключается в том, что она прерывистая, и некоторые обновления обычно решают проблему.

Есть ли проблема с кодом, которая может вызвать это или это что-то еще?

Solutions Collecting From Web of "Intermittent simplexml_load_file (): предупреждение ввода-вывода на локальном сайте Joomla"

Позвольте мне привести его здесь, на случай, если кто-то ответит Google, и решение с небезопасным libxml_disable_entity_loader(false) не будет применимо. Ниже приведена потенциальная уязвимость включения загрузчика объектов в системе:

 <!DOCTYPE scan [<!ENTITY test SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">]> <scan>&test;</scan> 

Здесь объясняется проблема, связанная с отсутствием безопасности потока. Хотя можно зарегистрировать свой собственный загрузчик libxml_set_external_entity_loader с помощью libxml_set_external_entity_loader или использовать блокировки для защиты вызовов от libxml_disable_entity_loader , эти решения кажутся немного озадачивающими.

Хорошей новостью является то, что проблема с внешними объектами влияет только на функции, связанные с файлами (например, simplexml_load_file , DOMDocument::schemaValidate и т. П.). Это делает решение простым и простым. Сначала загрузите содержимое файла в виде строки, а затем выполните соответствующую строковую функцию libxml.

 simplexml_load_string(file_get_contents($xml)); 

и / или

 $xml = new DOMDocument('1.0', 'UTF8'); $xml->loadXML(file_get_contents($xmlFile)); $xml->schemaValidateSource(file_get_contents($xsdFile)); 

Надеюсь, это поможет кому-то.

Ранние дни еще не окончательно говорят о том, что это исправление работает, но, похоже, оно исправлено на данный момент.

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

добавить libxml_disable_entity_loader(false); пожаловать в joomla index.php

Кредит отправляется в Корнелиу на форум Joomla за сообщение в этой теме:

J! 3.1.6 / 3.2 simplexml_load_file, JForm :: getInstance errors