Ayant choppé une infection je suis cloué @ home.
Du coup je vais vous raconter comment rendre dingue votre serveur Web. Pour vous Apache c'est du chinois ? Pour moi c'est du grec ancien. Allez tripoter votre serveur Web pour accroître ses performances vous excite ? Je m'en vais vous narrer alors comment faire...
• • •Compresser ses fichiers de sortie quand le site Web est en mutualisé chez l'hébergeur 1and1
Si, comme moi, vous êtes hébergé chez 1and1 vous savez que la méthode habituelle, via un .hatccess n'a pas plus d'effet sur la réduction de la taille de vos fichiers de sortie que la baisse de la TVA sur le menu des restaurateurs.
IfModule mod_gzip.c
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl|jpg|png|gif)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
/IfModule
gzip est banni chez 1and1 : les modules Apache mod_deflate et mod_gzip ne sont pas installés.
Du coup, vous pouvez faire faire toutes les acrobaties à votre .htaccess, donner toutes les instructions PHP dans vos templates, nada, peanuts, zobi... , le serveur n'obéira pas.
C'est là que l'apprenti sorcier intervient.
Musique maestro !
De quoi allez-vous avoir besoin pour faire cette manipulation ?
De courage ou, à défaut, d'une bonne dose d'inconscience.
Prêt ? C'est parti :
- Jouons au Da Vinci Code
Vous avez l'âme d'un Dan Brown ? Parfait : on va percer les secrets de votre serveur.
Il s'agit de le repérer parmi les centaines de millions qui existent sur la planète.
Ouvrez votre outil de codage habituel et créez un document PHP avec ces lignes de code :
? phpinfo(); ?
Enregistrez-le sous le nom « phpinfo.php », téléchargez-le à la racine de votre site, pointez votre navigateur sur ce fichier (http:votredomaine.com/phpinfo.phpet prenez votre loupe.
Il s'agit de repérer dans cette page une ligne qui ressemblerait à ça :
/kunden/homepages/69/d206389610/htdocsc'est dans la rubriqueDOCUMENT_ROOT.
C'est bon ? Vous l'avez ? Vous avez trouvé le chemin exact de votre serveur.
Poursuivons. - Ne vous prenez pas l'en-tête
Toujours muni de votre outil de codage, créez un nouveau fichier PHP dans lequel vous collerez ces lignes
Grâce à cette$pathinfo=pathinfo($_ENV['SCRIPT_FILENAME']); $extension=$pathinfo['extension']; $offset = 60 * 60 * 24 * 30; if($extension=='css'){ header('Content-type: text/css; charset=utf-8'); header("Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT"); } if($extension=='js'){ header('Content-type: text/javascript; charset=utf-8'); header("Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT");en-tête HTTPon va dire aux navigateurs qu'ils vont recevoir des fichiers compressés et qu'ils doivent se démerder avec (les décompresser et afficher le contenu).
Avec la valeurexpireson va indiquer aux caches réseau qu'ils doivent impérativement recharger la page originale à la date indiquée (celle du serveur située dans la passé).
Pour vous c'est du latin ? Cet extrait de la bible d'OpQuast va vous donner un cours accéléré :
Enregistrez-le sous le nom deConfigurer le serveur Web pour qu'il puisse gérer la mise en cache des éléments statiques et gérer - au niveau applicatif - la possible mise en cache des éléments dynamiques.
En pratique, et en accord avec les spécifications HTTP le serveur devra envoyer les champs ETag , Date et Last-Modified correspondant respectivement à l'identifiant de la ressource, à la date de traitement de la requête et à la date de dernière modification de la ressource demandée. L'ensemble des dates étant au format GMT. Ces informations pouvant être complétées par les champs Content-Length et Expires si la taille en octets et la date d'expiration exacte du contenu sont connues.headers.php. Placez ensuite ce fichier dans un dossier que vous nommerez comme vous voulez.
Pour l'exemple toutefois ce dossier se nommerawebscripts. C'est bon ?
Étape suivante : - Emprisonnons l'Apache
Maintenant c'est un fichier de commandes au serveur que vous allez créer.
Placez ces lignes dans un document que vous nommerezphp.ini(avec l'adresse du serveur que vous avez récupéré à l'étape et le nom du répertoire que vous avez créé à l'étape 2).
output_handler = ob_gzhandler = auto_prepend_file / kunden/homepages/69/d206389610/htdocs/webscripts/headers.php
La première ligne indique au serveur que vous voulez utiliser l'outil de compression de PHP pour traiter les fichiers JS et CSS tels qu'indiqué dans le fichierheaders. - Domestiquons l'Apache
Ouvrez maintenant votre fichier.htaccesset ajoutez cette ligne :
AddType x-mapp-php5. Php. Shtml. Html. Htm. Js. Css. Txt
Vous n'êtes pas obligé d'utiliser PHP5 mais cela vous sera sans doute utile pour d'autres bidouilles plus tard.
Si vous voulez rester en PHP4 il suffit de l'indiquer ainsi :x-mapp-php4. Mais bien sûr vous l'aviez deviné car vous êtes un as.
C'est bon ? C'est fini ? Ça marche ?
Comment ça vous n'en savez rien ?
Vous pouvez le vérifier avec ces services en ligne :
- Pour voir les en-têtes HTTP que renvoie votre serveur, rendez-vous sur Web-Sniffer.
Le service vous dira des mots doux tels que ceux-là :
HTTP Status Code: HTTP/1.1 200 OK Date: Tue, 24 Nov 2009 10:57:43 GMT Server: Apache Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Content-Encoding: gzip Expires: Thu, 19 Nov 1981 08:52:00 GMT Pragma: no-cache Vary: Accept-Encoding X-Powered-By: PHP/5.2.11 X-Robots-Tag: index,noarchive Connection: close Transfer-Encoding: chunked Content-Type: text/html
- Pour vérifier que vos fichiers sont bien compressés allez sur GIDNetwork.
Faites un test sur l'un de vos pages ; vous devriez obtenir un résultat tel que celui-ci :Web page compressed? Yes Compression type? gzip Size, Markup (bytes) 24,151 Size, Compressed (bytes) 7,784 Compression % 67.8
Épatant non ?
Pour ne rien vous cacher je n'en sais rien encore. Les en-têtes HTTP sont corrects. La compression s'effectue bien sur les fichiers.
Mais j'ai fait une bidouille en plus (que nous verrons dans l'article qui suivra) et, ces 2 derniers jours, mon service de surveillance WoozWeb m'a indiqué que mon serveur avait pédalé dans le « yogurt » à plusieurs reprises. Ce qui ne va pas plaire à 1and1.
Je verrais dans les prochains jours si ma bidouille en plus est une bidouille en trop.
Cet article a été intégralement pompé sur celui d'un mec qui s'y connaît, mrrena.
Lien
- Compression de fichiers chez 1and1 : How to Compress PHP and Other Text-Based Files with 1&1 (and Other Shared Hosts)

Commentaires :