Well, I got to the bottom of part of the problem, I think. Unfortunately it is not “trivial” to tell what modules are configured for use with an Apache instance on Dreamhost.
If you are running mod_php (which is not supported by default on Dreamhost anymore), phpinfo() will return a list of loaded modules, but php-cgi (which is what most users are now running on DH) will not.
This is further complicated by the fact that Dreamhost is currently running multiple versions of Apache; some users are running Apache 1.3, while others are running 2.0. It also appears that the two versions are not identical as to which modules are loaded.
As a result, I don’t think it is possible to make a general statement as to “what Apache modules are installed” that will be accurate for every user.
Having been here a while, and having “older” domains that are setup running Apache 1.3, as well as newer ones running Apache 2.0, I was able to get a phpinfo() report from both server versions running under mod_php version 4.4.2 and 4.4.4 (even that differs between my Apache’s!)
In the interests of making that information available for others, and to help explain your situation, here is what I found:
[quote]From an Apache 1.3 served domain:
Apache Version: Apache/1.3.37 (Unix) mod_throttle/3.1.2 DAV/1.0.3 mod_fastcgi/2.4.2 mod_gzip/18.104.22.168a PHP/4.4.4 mod_ssl/2.8.22 OpenSSL/0.9.7e
Apache Release: 10337100
Apache API Version: 19990320
mod_throttle, mod_dav, mod_encoding, mod_setenvif, mod_security, mod_status, mod_rewrite, mod_negotiation, mod_fastcgi, mod_gzip, mod_mime, mod_log_config, mod_include, mod_imap, mod_headers, mod_expires, mod_env, mod_dir, mod_cgi, mod_asis, mod_alias, mod_actions, mod_access, mod_php4, mod_auth_digest, mod_auth, mod_autoindex, mod_dosevasive, mod_ssl, mod_so, mod_log_forensic, mod_define, http_core[/quote]
[quote]From an Apache 2.0 served domain:
Apache Version: Apache/2.0.54 (Unix) PHP/4.4.2 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_fastcgi/2.4.2 DAV/2 SVN/1.1.4
Apache API Version: 20020903
core prefork http_core mod_so mod_autoindex mod_auth mod_auth_digest sapi_apache2 mod_access mod_actions mod_alias mod_cgi mod_deflate mod_dir mod_env mod_headers mod_include mod_log_config mod_logio mod_mime mod_negotiation mod_rewrite mod_ssl mod_status mod_suexec mod_fastcgi mod_security mod_setenvif mod_encoding mod_dav mod_dav_fs mod_cband mod_dav_svn mod_authz_svn[/quote]
As you can see, mod_expires is available under the Apache 1.3 configuration, but is not available under an Apache 2.0 configuration.
It appears you are probably running an instance of Apache 2.0.
You might want to consider whether you want to ask DH to move you to an instance of Apache 1.3 so you can use the mod_expires module, or see if you can get them to enable mod_expires in their configuration of Apache 2.0. I think they should be receptive to enabling mod_expires, as the caching it provides should would make it easier for responsible / considerate users like yourself to cache stuff and decrease the load on the server.
While I know this is not a “fix” for your problem, I hope it helps to understand what is happening (it’s not you ), and help you decide how to approach the issue.