Поковырялся внутри, оказалось что это делает файл /etc/wordpress/wp-config.php. Его содержимое было таким:
<?php
/** WordPress's Debianised default master config file
Please do NOT edit and read about how the configuration works in the README.Debian
**/
#http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=435289
#http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440572 (underscores, not dashes)
$debian_server = preg_replace('/:.*/', "", $_SERVER['HTTP_HOST']);
$debian_file = '/etc/wordpress/config-'.strtolower($debian_server).'.php';
if (!file_exists($debian_file)) {
header("HTTP/1.0 404 Not Found");
echo "404 Not found";
}
require_once($debian_file);
define('ABSPATH', '/usr/share/wordpress/');
require_once(ABSPATH.'wp-settings.php');
?>
Wordpress по умолчанию настроен на виртуальный хостинг. То есть, он выбирает конфигурационный файл в зависимости от того домена, к которому обратился HTTP-клиент. По замыслу мэнтейнера, как я понял, в случае отсутствия такого конфига, должна показываться страница с текстом "404 Not found". Однако что-то он не добдел и после вывода этого текста обработка продолжается. Подключаются дополнительные php-файлы, которые и выдают ошибку.
Чтобы просто убрать эту ошибку, можно добавить в текст файла одну строчку. Например так:
<?php
/** WordPress's Debianised default master config file
Please do NOT edit and read about how the configuration works in the README.Debian
**/
#http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=435289
#http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440572 (underscores, not dashes)
$debian_server = preg_replace('/:.*/', "", $_SERVER['HTTP_HOST']);
$debian_file = '/etc/wordpress/config-'.strtolower($debian_server).'.php';
if (!file_exists($debian_file)) {
header("HTTP/1.0 404 Not Found");
echo "404 Not found";
exit(1);
}
require_once($debian_file);
define('ABSPATH', '/usr/share/wordpress/');
require_once(ABSPATH.'wp-settings.php');
?>
Теперь всё должно работать, как и было задумано. Однако я не остановился на достигнутом и решил сделать переадресацию на dokuwiki-страницу.
Для начала я создал простую переадресующую страницу /etc/wordpress/index.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv=refresh content="0; url=/dokuwiki/">
</html>
И поправил злополучный обработчик Wordpress /etc/wordpress/wp-config.php таким образом:
<?php
/** WordPress's Debianised default master config file
Please do NOT edit and read about how the configuration works in the README.Debian
**/
#http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=435289
#http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440572 (underscores, not dashes)
$debian_server = preg_replace('/:.*/', "", $_SERVER['HTTP_HOST']);
$debian_file = '/etc/wordpress/config-'.strtolower($debian_server).'.php';
if (!file_exists($debian_file)) {
include('/etc/wordpress/index.html');
exit(0);
}
require_once($debian_file);
define('ABSPATH', '/usr/share/wordpress/');
require_once(ABSPATH.'wp-settings.php');
?>
Теперь при заходе на http://stupin.homelinux.org/ сначала происходит переход в http://stupin.homelinux.org/wp/, а затем в http://stupin.homelinux.org/dokuwiki/
Может быть стоит переместить это в технический блог?
ОтветитьУдалить