From IndieWeb
Jump to: navigation, search

Apache is widely deployed open source web server software.

HTTP 406 Not Acceptable Error

In some cases, Apache returns HTTP 406 when fetched from a client that does not include */* in the Accept header. This is due to a common misconfiguration where PHP is enabled by using the AddType declaration instead of a proper solution.

This error surfaced when XRay was unable to fetch posts on adactio.com because XRay does not include */* in its Accept header. The fix was to remove the AddType declaration and include the below instead.

<Files "*.php">
    MultiviewsMatch Any


Summary (from serverfault thread):

  • Apache usually runs as the www-data, which will at the very least need read access to files
  • “Application” files (e.g. *.php) don’t need execute permissions as they’re not directly executed by the web server, they only need read permissions
  • Your user should own the files
  • The www-data user should own the group, which should have read and execute (why execute?) permissions
  • Any files or folders which will be changed by apache need to have write (+w) permissions for the group owner
  • Run umask XXX to set the default permissions for newly created files. umask 007 sets permissions to read+write for owner and group, no permissions for others, which is a sensible default

wikipedia has a clear explanation of the unix permissions shorthand.

See Also