web-dev-qa-db-fra.com

Automatisation de l'activation de Gzip et expiration de la mise en cache dans Apache

Au lieu de cela, je dois copier-coller les codes suivants pour activer la compression Gzip et l'expiration du cache dans mon Apache2.conf chaque fois que je crée un nouvel environnement de serveur. Existe-t-il un moyen de les faire apparaître à partir d'Apache lui-même avec certaines commandes CLI peut être?

## ENABLE GZIP
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
## ENABLE GZIP ##

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##

Mise à jour

N'y a-t-il pas d'autre moyen de les ajouter à /etc/Apache2/Apache2.conf automatiquement sans coller ou includes?

3
JohnDoea

Pour déployer votre configuration aussi facilement que possible, le meilleur moyen consiste à exécuter un script (ou à exécuter chacune des commandes).

Vous n'avez pas besoin de tous les changements que vous avez énumérés. Apache2 est déjà livré avec mods-available/deflate.conf comme le vôtre. Activez-le simplement pour obtenir le support de GZIP.

Le script serait (je l'ai appelé a2gzip.sh):

#!/bin/bash

cat > /etc/Apache2/mods-available/expires.conf << EOF
<IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType image/jpg "access 1 year"
        ExpiresByType image/jpeg "access 1 year"
        ExpiresByType image/gif "access 1 year"
        ExpiresByType image/png "access 1 year"
        ExpiresByType text/css "access 1 month"
        ExpiresByType application/pdf "access 1 month"
        ExpiresByType application/javascript "access 1 month"
        ExpiresByType application/x-javascript "access 1 month"
        ExpiresByType application/x-shockwave-flash "access 1 month"
        ExpiresByType image/x-icon "access 1 year"
        ExpiresDefault "access 2 days"
</IfModule>
EOF

a2enmod deflate expires
systemctl reload Apache2

Utilisez Sudo ./a2gzip.sh pour exécuter le script.

2
estibordo