MediaWiki - четыре мусорных символа перед HTML-контентом для 404 - PullRequest
2 голосов
/ 01 октября 2011

Итак, я только что установил MediaWiki впервые и у меня возникла странная проблема, решение которой я не могу найти. Последние полчаса я сканировал справочные документы, искал в Google и читал статьи, но не могу найти ответ.

Все работает нормально, за исключением страницы 404, четыре символа мусора выводятся перед HTML. Все остальные страницы выглядят хорошо, только 404-е. Они разные на каждом и смотрят на меня в шестнадцатеричном формате, я видел цифры и ни одной буквы выше f.

Примеры

Я переустанавливал его дважды с одной и той же проблемой каждый раз.

Настройка системы

  • Centos 5.6
  • Apache 2.2.3, работающий с обратным прокси-сервером nginx (0.8.55)
  • PHP 5.3.2
  • MySQL 5.0.77

Конфиги сервера

Apache

<VirtualHost 127.0.0.1:8080>
    DocumentRoot /home/sites/oneltd.co.uk/wiki
    ServerName wiki.oneltd.co.uk
    Alias /wiki /home/sites/oneltd.co.uk/wiki/index.php
    <Directory "/home/sites/oneltd.co.uk/wiki">
            Allowoverride all
    </Directory>
    CustomLog /home/sites/oneltd.co.uk/_logs/access_log "combined"
    ErrorLog /home/sites/oneltd.co.uk/_logs/error_log
</VirtualHost>

Nginx

server {
    listen 205.186.146.37:80;
    server_name wiki.oneltd.co.uk;
    server_name_in_redirect off;

    access_log /home/sites/oneltd.co.uk/_logs/nginx.access_log;

    location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }


    location ~ \.(jpg|jpeg|png|gif|swf|flv|mp4|mov|avi|wmv|m4v|mkv|ico|js|css|txt|html|htm)$ {
            root /home/sites/oneltd.co.uk/wiki;
            gzip on;
            gzip_comp_level 2;
            gzip_vary on;
            gzip_proxied any;
            gzip_types text/plain text/xml text/css application/x-javascript;
            expires max;
    }
}

Любая помощь или идеи о том, где искать, будет принята с благодарностью:)

РЕДАКТИРОВАТЬ - ИСПРАВЛЕНО ПРОБЛЕМА!

Благодаря ответу Грега Хьюгилла о кусочной кодировке мне удалось найти проблему. Оказывается, что nginx не может общаться по HTTP / 1.1 при работе в качестве обратного прокси, но вы можете заставить Apache понизиться до 1.0. Я нашел ответ после прочтения о аналогичная проблема с Drupal

Обновлена ​​конфигурация Apache:

<VirtualHost 127.0.0.1:8080>
    DocumentRoot /home/sites/oneltd.co.uk/wiki
    ServerName wiki.oneltd.co.uk
    Alias /wiki /home/sites/oneltd.co.uk/wiki/index.php
    <Directory "/home/sites/oneltd.co.uk/wiki">
            Allowoverride all
    </Directory>
    CustomLog /home/sites/oneltd.co.uk/_logs/access_log "combined"
    ErrorLog /home/sites/oneltd.co.uk/_logs/error_log


    # nginx can't deal with HTTP/1.1 at the moment, force downgrade to 1.0
    SetEnv force-response-1.0 1
    SetEnv downgrade-1.0 1
</VirtualHost>

1 Ответ

2 голосов
/ 01 октября 2011

Звучит так, как будто это может быть как-то связано с HTTP-кодировкой передачи по частям . При передаче по частям длина каждого куска передается в шестнадцатеричном виде перед фактическим содержимым.

Я не знаю, почему это может быть проблемой в вашей установке или как ее исправить, но это может быть полезной информацией при поиске решения.

...