Я установил VisualEditor for Mediawiki и настроил его правильно, чтобы режим редактирования работал нормально. Но после обновления до более новой версии Mediawiki VisualEditor больше не работает.
После того, как я проверил свою консоль DOM, я заметил, что проблема вызвана модулем oojs-ui.styles.icons, который создает ошибку 500-сервера. Я также заглянул в мой файл error.log. Это основные детали:
2016/01/31 03:33:47 [error] 1178#0: *50446 FastCGI sent in stderr: "PHP message: PHP Warning: DOMDocument::load(): I/O warning : failed to load external entity "/var/www/html/Wiki/resources/lib/oojs-ui/themes/mediawiki/images/icons/add.svg" in /var/www/html/Wiki/includes/resourceloader/ResourceLoaderImage.php on line 275
PHP message: PHP Notice: Trying to get property of non-object in /var/www/html/Wiki/includes/resourceloader/ResourceLoaderImage.php on line 278
PHP message: PHP Fatal error: Call to a member function appendChild() on a non-object in /var/www/html/Wiki/includes/resourceloader/ResourceLoaderImage.php on line 281" while reading response header from upstream, client: 123.123.123.123, server: domain.com, request: "GET /load.php?debug=true&modules=oojs-ui.styles.icons&* HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "domain.com"
Очевидно, что путь к файлу не может быть распознан из-за "
приписывать. Поэтому я проверил строку 275 файла /var/www/html/Wiki/includes/resourceloader/ResourceLoaderImage.php, которая содержит следующее:
protected function variantize( $variantConf, ResourceLoaderContext $context ) {
$dom = new DomDocument;
$dom->load( $this->getPath( $context ) ); ########## Line 275
$root = $dom->documentElement;
$wrapper = $dom->createElement( 'g' );
while ( $root->firstChild ) {
$wrapper->appendChild( $root->firstChild );
}
$root->appendChild( $wrapper );
$wrapper->setAttribute( 'fill', $variantConf['color'] );
return $dom->saveXml();
}
Обычно функция php getPath()
должно работать нормально, не так ли? Мне интересно, почему это не работает. Я обновил каждое расширение позже, но все еще без изменений.
Что мне нужно сделать, чтобы исправить сообщение об ошибке из файла error.log?
Задача ещё не решена.
Других решений пока нет …