This is my first post here!
For cache expiration:
Did you check if the module "mod_expires.so" is enabled in apache/conf/httpd.conf?
Search for the line #LoadModule expires_module modules/mod_expires.so
and remove the "#" sign. After that it should work.
For gzip compression:
I use "mod_deflate" to enable compression. I also use "mod_mime", "mod_setenvif" and "mod_headers". Check each be enabled in httpd.conf. This combination works for me.
Htaccess my compression:
<IfModule mod_mime.c>
AddType application/x-javascript .js
AddType text/css .css
</IfModule>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
SetEnvIfNoCase Request_URI \.(?:rar|zip)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:gif|jpg|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:avi|mov|mp4)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
</IfModule>
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
More information here. I hope that helps.