Apache HTTP Server

From DreamHost
Jump to: navigation, search

Overview

Apache HTTP Server is an open source HTTP web server for UNIX-like systems (BSD, Linux, and UNIX), Microsoft Windows, and other platforms.

DreamHost customers have only limited access to Apache settings on shared servers (via the panel). For example, certain options can be changed through the Remap Sub-directories page at (Panel > 'Domains' > 'Remap Sub-Dir') and .htaccess files.

DreamHost Apache version

DreamHost currently runs version 2.2.22 of the open source HTTP Server. In the near future, DreamHost will update Apache to version 2.4.

In the past, one could determine information about the web server from the HTTP response headers through the "Server" header. However for security reasons, it was decided to set ServerTokens to "Prod" and as a result, the value of this header only returns "Apache". It cannot be modified through per-directory configuration files (.htaccess).

For example, in the past, running curl -Is to your site gives you the following response:

$ curl -Is  http://websitehelp.support |grep Server
Server: Apache/1.3.37 (Unix) mod_throttle/3.1.2 DAV/1.0.3 mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a PHP/4.4.7  mod_ssl/2.8.22 OpenSSL/0.9.7e

If you run this same command now, the only response is ‘Apache’:

$ curl -Is  http://websitehelp.support |grep Server
Server: Apache

To find the version of apache currently running, use:

$ dpkg -l ndn-apache22

Apache modules for DreamHost

Please note that some of the modules only work if they are enabled via the panel (e.g., Page Speed Optimization, CloudFlare, Passenger, and so on) and some modules depend on what type of server you are on.

If you need the xsendfile module enabled, you will need to contact support on the (Panel > ‘Support’ > ‘Contact Support’) page. Please be sure to mention which domain on which you would like it enabled. Also, if you need the proxy module, that can only be enabled on a VPS or a dedicated server.

For further information on Apache modules, visit the following page:

To determine precisely which modules are loaded for your server, you can explicitly test each one.

Create a temporary directory with two files, index.shtml and .htaccess file:

<IfModule mod_access.c>
SetEnv MOD_mod_access 1
</IfModule>
<IfModule mod_actions.c>
SetEnv MOD_mod_actions 1
</IfModule>
<IfModule mod_alias.c>
SetEnv MOD_mod_alias 1
</IfModule>
<IfModule mod_asis.c>
SetEnv MOD_mod_asis 1
</IfModule>
<IfModule mod_auth_basic.c>
SetEnv MOD_mod_auth_basic 1
</IfModule>
<IfModule mod_auth_digest.c>
SetEnv MOD_mod_auth_digest 1
</IfModule>
<IfModule mod_authn_anon.c>
SetEnv MOD_mod_mod_authn_anon 1
</IfModule>
<IfModule mod_authn_dbd.c>
SetEnv MOD_mod_authn_dbd 1
</IfModule>
<IfModule mod_authn_dbm.c>
SetEnv MOD_mod_authn_dbm 1
</IfModule>
<IfModule mod_authn_default.c>
SetEnv MOD_mod_authn_default 1
</IfModule>
<IfModule mod_authn_file.c>
SetEnv MOD_mod_authn_file 1
</IfModule>
<IfModule mod_authz_dbm.c>
SetEnv MOD_mod_authz_dbm 1
</IfModule>
<IfModule mod_authz_default.c>
SetEnv MOD_mod_authz_default 1
</IfModule>
<IfModule mod_authz_groupfile.c>
SetEnv MOD_mod_authz_groupfile 1
</IfModule>
<IfModule mod_authz_host.c>
SetEnv MOD_mod_authz_host 1
</IfModule>
<IfModule mod_authz_owner.c>
SetEnv MOD_mod_authz_owner 1
</IfModule>
<IfModule mod_authz_svn.c>
SetEnv MOD_mod_authz_svn 1
</IfModule>
<IfModule mod_authz_user.c>
SetEnv MOD_mod_authz_user 1
</IfModule>
<IfModule mod_autoindex.c>
SetEnv MOD_mod_autoindex 1
</IfModule>
<IfModule mod_cache.c>
SetEnv MOD_mod_cache 1
</IfModule>
<IfModule mod_cband.c>
SetEnv MOD_mod_cband 1
</IfModule>
<IfModule mod_cern_meta.c>
SetEnv MOD_mod_cern_meta 1
</IfModule>
<IfModule mod_cgi.c>
SetEnv MOD_mod_cgi 1
</IfModule>
<IfModule mod_cloudflare.c>
SetEnv MOD_mod_cloudflare 1
</IfModule>
<IfModule mod_dav.c>
SetEnv MOD_mod_dav 1
</IfModule>
<IfModule mod_dav_fs.c>
SetEnv MOD_mod_dav_fs 1
</IfModule>
<IfModule mod_dav_svn.c>
SetEnv MOD_mod_dav_svn 1
</IfModule>
<IfModule mod_dbd.c>
SetEnv MOD_mod_dbd 1
</IfModule>
<IfModule mod_deflate.c>
SetEnv MOD_mod_deflate 1
</IfModule>
<IfModule mod_dir.c>
SetEnv MOD_mod_dir 1
</IfModule>
<IfModule mod_disk_cache.c>
SetEnv MOD_mod_disk_cache 1
</IfModule>
<IfModule mod_dumpio.c>
SetEnv MOD_mod_dumpio 1
</IfModule>
<IfModule mod_env.c>
SetEnv MOD_mod_env 1
</IfModule>
<IfModule mod_expires.c>
SetEnv MOD_mod_expires 1
</IfModule>
<IfModule mod_ext_filter.c>
SetEnv MOD_mod_ext_filter 1
</IfModule>
<IfModule mod_fastcgi.c>
SetEnv MOD_mod_fastcgi 1
</IfModule>
<IfModule mod_fcgid.c>
SetEnv MOD_mod_fcgid 1
</IfModule>
<IfModule mod_file_cache.c>
SetEnv MOD_mod_file_cache 1
</IfModule>
<IfModule mod_filter.c>
SetEnv MOD_mod_filter 1
</IfModule>
<IfModule mod_headers.c>
SetEnv MOD_mod_headers 1
</IfModule>
<IfModule mod_htscanner2.c>
SetEnv MOD_mod_htscanner2 1
</IfModule>
<IfModule mod_ident.c>
SetEnv MOD_mod_ident 1
</IfModule>
<IfModule mod_imagemap.c>
SetEnv MOD_mod_imagemap 1
</IfModule>
<IfModule mod_include.c>
SetEnv MOD_mod_include 1
</IfModule>
<IfModule mod_info.c>
SetEnv MOD_mod_info 1
</IfModule>
<IfModule mod_limitipconn.c>
SetEnv MOD_mod_limitipconn 1
</IfModule>
<IfModule mod_log_config.c>
SetEnv MOD_mod_log_config 1
</IfModule>
<IfModule mod_log_forensic.c>
SetEnv MOD_mod_log_forensic 1
</IfModule>
<IfModule mod_logio.c>
SetEnv MOD_mod_logio 1
</IfModule>
<IfModule mod_mem_cache.c>
SetEnv MOD_mod_mem_cache 1
</IfModule>
<IfModule mod_mime.c>
SetEnv MOD_mod_mime 1
</IfModule>
<IfModule mod_mime_magic.c>
SetEnv MOD_mod_mime_magic 1
</IfModule>
<IfModule mod_negotiation.c>
SetEnv MOD_mod_negotiation 1
</IfModule>
<IfModule mod_pagespeed.c>
SetEnv MOD_mod_pagespeed 1
</IfModule>
<IfModule mod_pagespeed_ap24.c>
SetEnv MOD_mod_pagespeed_ap24 1
</IfModule>
<IfModule mod_passenger.c>
SetEnv MOD_mod_passenger 1
</IfModule>
<IfModule mod_proxy.c>
SetEnv MOD_mod_proxy 1
</IfModule>
<IfModule mod_proxy_ajp.c>
SetEnv MOD_mod_proxy_ajp 1
</IfModule>
<IfModule mod_proxy_balancer.c>
SetEnv MOD_mod_proxy_balancer 1
</IfModule>
<IfModule mod_proxy_connect.c>
SetEnv MOD_mod_proxy_connect 1
</IfModule>
<IfModule mod_proxy_ftp.c>
SetEnv MOD_mod_proxy_ftp 1
</IfModule>
<IfModule mod_proxy_http.c>
SetEnv MOD_mod_proxy_http 1
</IfModule>
<IfModule mod_proxy_scgi.c>
SetEnv MOD_mod_proxy_scgi 1
</IfModule>
<IfModule mod_reqtimeout.c>
SetEnv MOD_mod_reqtimeout 1
</IfModule>
<IfModule mod_rewrite.c>
SetEnv MOD_mod_rewrite 1
</IfModule>
<IfModule mod_security2.c>
SetEnv MOD_mod_security2 1
</IfModule>
<IfModule mod_setenvif.c>
SetEnv MOD_mod_setenvif 1
</IfModule>
<IfModule mod_speling.c>
SetEnv MOD_mod_speling 1
</IfModule>
<IfModule mod_ssl.c>
SetEnv MOD_mod_ssl 1
</IfModule>
<IfModule mod_status.c>
SetEnv MOD_mod_status 1
</IfModule>
<IfModule mod_substitute.c>
SetEnv MOD_mod_substitute 1
</IfModule>
<IfModule mod_suexec.c>
SetEnv MOD_mod_suexec 1
</IfModule>
<IfModule mod_unique_id.c>
SetEnv MOD_mod_unique_id 1
</IfModule>
<IfModule mod_userdir.c>
SetEnv MOD_mod_userdir 1
</IfModule>
<IfModule mod_usertrack.c>
SetEnv MOD_mod_usertrack 1
</IfModule>
<IfModule mod_version.c>
SetEnv MOD_mod_version 1
</IfModule>
<IfModule mod_vhost_alias.c>
SetEnv MOD_mod_vhost_alias 1
</IfModule>
<IfModule mod_xsendfile.c>
SetEnv MOD_mod_xsendfile 1
</IfModule>

Then, navigate with your browser to your example.com/tmp directory and look for all the lines beginning with "MOD_". If you use the above method to check the modules, the request will only show you what is enabled. The easiest way to read the output of which modules are enabled is to use curl. For example, run this via SSH to print the modules listed vertically:

curl -v http://www.example.com/tmp/index.shtml

See also