Add a wide range of HTTP-request-based setup checks


Add a wide range of HTTP-request-based setup checks

Ref T11553. With some regularity, users make various configuration mistakes which we can detect by making a request to ourselves.

I use a magical header to make this request because we want to test everything else (parameters, path).

  • Fixes T4854, probably. Tries to detect mod_pagespeed by looking for a header. This is a documentation-based "fix", I didn't actually install mod_pagespeed or formally test this.
  • Fixes T6866. We now test for parameters (e.g., user somehow lost "QSA").
  • Ref T6709. We now test that stuff is decoded exactly once (e.g., user somehow lost "B").
  • Fixes T4921. We now test that Authorization survives the request.
  • Fixes T2226. Adds a setup check to determine whether gzip is enabled on the web server, and attempts to enable it at the PHP level.
  • Fixes <space space newline newline space><?php in preamble.php.

Test Plan: Tested all of these setup warnings, although mostly by faking them.

Reviewers: joshuaspence, chad

Reviewed By: chad

Subscribers: Korvin

Maniphest Tasks: T4854, T4921, T6709, T6866, T11553, T2226

Differential Revision: https://secure.phabricator.com/D12622