LASHÔN - WordPress Création Sites Internet

Navigation Menu

Le php.ini pour WordPress – Optimiser et sécuriser son site ou blog

Le php.ini pour WordPress – Optimiser et sécuriser son site ou blog

Posted on 11 janvier 2016 in Internet | 1 comment

PHP.INI est un fichier de configuration du serveur PHP. Vous savez déjà que votre blog ou site WordPress fonctionne avec ce type de serveur. C’est pourquoi on choisit presque toujours un plan d’hébergement Web en Linux et non pas en Windows. Que fait-il ? Il détermine tout ce que vous indique le fichier phpinfo.php. Soit. Ce qui nous intéresse, c’est ce que peuvent en faire de simples blogueurs. Par exemple, nous allons définir un dossier d’erreurs, visible par les administrateurs plutôt que les internautes. Il peut aussi changer la capacité des scripts php de mémoire, donc la taille des uploads (images, mp3, sauvegardes ou importations de vos articles sous la forme du fichier d’exportation xml). On peut surtout encore définir des paramètres de sécurité et optimiser son blog.

Cet article fait partie de la série Sécurité et optimisation d’un blog WordPress. Il fait suite à Sécuriser son blog WordPress et lutter contre le spam – Manuel de Combat.

Avertissement : Si votre hébergeur fonctionne en Apache réel et non interprété en cgi (comme chez 1and1), vous pouvez utiliser les codes proposés pour votre .htaccess. Sinon, vous ne devez utiliser que ceux proposés pour le php.ini.

Le phpinfo

php

Configurer votre serveur PHP. Pour rappel, WordPress exige au minium une version PHP 5.3.1

Il vous donne toutes les informations inhérents à votre blog. Pour le voir, chargez en ligne un fichier phpinfo.php à la racine de votre blog (= dans le dossier où se trouve votre blog WP) avec ces seules lignes de code :

<?php phpinfo(); ?>

Ensuite

Masquer PHP

Ce n’est pas efficace extraordinairement mais il n’y a pas de petite précaution négligeable. On va truquer les apparence et faire en sorte que PHP ressemble à un autre langage. Évidemment, contre un hacker humain, ça ne sert à rien. Mais contre un script automatique…
Dans .htaccess ajoutez l’une de ces lignes :

# Afin que PHP ressemble à un autre langage
AddType application/x-httpd-php .asp .py .pl

ou

# Afin que PHP ressemble à un langage inexistant
AddType application/x-httpd-php .bop .foo .133t

ou

# Afin que PHP ressemble à du html
AddType application/x-httpd-php .htm .html

Puis renommez tous vos fichiers avec les extensions choisies.

Ou bien, encore plus simplement, dans votre php.ini ajoutez :

expose_php = Off

Cela cachera aux navigateurs la réponse header avec l’information X-Powered-By PHP/5.x.x. Autrement dit, ni version ni quoi.

http://wordpress.org/tags/phpini

Créer le fichier php.ini

Comme pour tout fichier : avec un éditeur de texte (avec Notepad pour Windows et Linux, Smultron pour Mac).

Ensuite protégez-le en ajoutant dans .htaccess :

<Files .php.ini>
order allow,deny
 deny from all
 </Files>

Augmenter la limite de mémoire

Oui mais sans exagérer hein ! Si vous tentez de passer en giga (mais pourquoi donc ?), par défaut WordPresss ramènera votre blog à 32M (ou 64M en multisites). D’autre part, votre hébergeur limite aussi cette capacité. La bonne nouvelle est que WP a prévu de tenir compte d’une limitation manuelle (fichier /wp-includes/default-constants.php ligne 37) :

	// set memory limits.
	if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
		@ini_set('memory_limit', WP_MEMORY_LIMIT);

f

LIRE

Uploads Médias et Mémoire dans WordPress: taille fichiers, téléchargements, plugins

Uploads Médias et Mémoire dans WordPress: taille fichiers, téléchargements, plugins

Posted on 26 mars 2011 in Wordpress | 10 comments

Memory Limit

La limite de mémoire dans WordPress dépend de votre hébergeur.

Comment gérer vos uploads, ces fichiers que vous insérez dans vos articles et la taille permise ?  Comment gérer ou permettre des téléchargements? Comment gérer le message d’erreur sur la taille de la mémoire ?

Tous les fichiers téléversés (uploadés) via un article ou une page WordPress se retrouvent dans la bibliothèque des Médias. Pour une image simple, pas de souci. Mais pour d’autres types de fichiers ou de gros fichiers à rendre disponibles en téléchargements, ça se corse. La première information à connaître pour savoir ce que votre site permet actuellement, c’est la taille permise pour ces fichiers.

Rendez-vous dans votre tableau de bord à l’onglet Médias. Cliquez sur Ajouter un fichier. Une ligne vous renseigne la taille permise : Taille maximale des fichiers : 8MB. Cette taille dépend de plusieurs facteurs. Elle dépend de l’hébergeur et elle dépend de WordPress. Si votre hébergeur limite, il va falloir installer un fichier ini.php ou utiliser un plugin. Mais c’est un pari et un match serré. Parfois on peut gérer ça directement dans son panneau d’administration. Chez les hébergeurs français, je n’ai jamais vu cette possibilité. Mon hébergeur Westhost me permet, sans toucher à une ligne de code, une taille de 64MB en upload. Ce qui est une excellente limite, et je peux la modifier. Chez l’hébergeur français o2switch dont je parlerai bientôt, vous ne serez pas limité, ils ont récemment augmenté leur mémoire à 500MB. De quoi voir venir…

Voyez aussi la documentation du Codex.

Pour connaître les informations utiles et contraintes dues à votre hébergeur

Installez l’un de ces plugins :

WordPress Multisites

Dans un multisites c’est facile. La taille des uploads permise se gère dans les réglages de la partie Admin du réseau. Précisez la taille des uploads en allant dans Admin du Réseau puis Réglages à la ligne Envois des fichiers. Indiquez la taille désirée dans Taille maximale des fichiers.

Reglage

Reglage taille des fichiers dans un réseau WordPress Multisites

Je recommande l’extrême prudence si vous permettez l’upload de gros fichiers, et de se discipliner soi-même lors de la publication des images. De les réduire avant.  En principe les plugins de téléchargement gèrent bien la taille des uploads et il est préférable que l’upload permis ne soit pas supérieur à la taille par défaut sauf pour les téléchargements. Si votre multisites est un réseau, il vaut mieux permettre via un plugin de charger ses gros uploads via FTP (avec Fillezilla donc) au lieu de permettre aux utilisateurs des sites sur votre réseau de balancer de grosses tailles.

WordPress simple, gestion des Uploads

Dans un WP normal vous ne pouvez pas modifier cette taille par défaut de 8MB, à moins de bidouiller dans le Core. Pas conseillé puisqu’il faudra le faire à chaque mise à jour. Quelles solutions ?

– On peut écrire à son hébergeur pour leur demander d’augmenter la taille des fichiers uploadés permise.

– On peut installer un plugin (voir plus bas).

– On peut uploader son gros fichier directement dans son répertoire uploads qui est par défaut dans wp-content/uploads. Simple et rapide.

– Plus complexe, on peut modifier ces valeurs contraintes par l’hébergeur

En modifiant le fichier php.ini, le .htaccess ou le wp-config.php de WP. Le problème de cette dernière solution et que son succès dépend de votre hébergeur. Pas seulement le succès, vous pouvez aussi tout faire planter si vous ne savez pas ce que vous faites. Donc avant de modifier quoi que ce soit, faites une sauvegarde de votre base de données et des fichiers que vous modifiez.

Si vous avez accès à votre dossier Apache c’est parfait. Mais c’est rare. Trouvez le fichier suivant /etc/php5/apache/php.ini et repérez upload_max_filesize. Juste modifier la valeur.

Pour les hébergeurs qui interprètent le code en vrai Apache, on peut directement augmenter la taille en insérant ceci dans .htaccess :

php_value upload_max_filesize 32M
php_value post_max_size 32M
php_value memory_limit 64M

Et/ou essayer d’ajouter dans wp-config.php:

define('WP_MEMORY_LIMIT', '64M');

N’essayez pas cette méthode si vous êtes hébergés chez 1&1 ou si les infos vous disent que le Rewriting est interprété en CGI.

Ajout dans un fichier php.ini

memory_limit = 64M
upload_max_filesize = 32M
post_max_size = 32M
file_uploads = On

Encore faut-il, chez certains hébergeurs, que ce fichier php.ini soit installé dans tous les répertoires pour que ça fonctionne…. Voir un tuto chez 1&1 pour réaliser la chose automatiquement.

Augmenter la taille de mémoire scripts

Les opérations précédentes peuvent corriger le problème d’erreur telle que Fatal error: Allowed memory size of 33554432 bytes exhausted.
Mais. Si votre hébergeur vous limite c’est que votre plan d’hébergement n’est pas bien gros. Jouer avec ces réglages peut entraîner une sévère mise en garde voire un blocage de la part de votre hébergeur qui considèrera votre blog devenu trop gourmand. Pesez bien à quelle fin vous réalisez cette modification. Si vous l’installer juste pour pouvoir uploader quelques gros fichiers, pas de problème. Mais si vous comptez générer plus de mémoire et de bande passante, attention aux mesures punitives. Par ailleurs, il faut savoir que c’est une méthode généralement vaine. Ce que l’hébergeur permet ne peut pas réellement être modifié, malgré tous les fichiers ini placés. D’où l’importance, avant toute opération complexe, d’analyser son hébergement au moyen des plugins proposés en haut de cet article.

Et si votre hébergeur ne vous convient pas, changez-en. Ce n’est pas la mer à boire. Pour migrer votre site ailleurs, utilisez l’excellent plugin WP Migrate DB pour générer la copie vraiment utile de migration de votre base de données, téléchargez tout votre dossier wp-content et c’est tout. Il n’y a plus qu’à installer un WP, créer une base de données vide, importer la vôtre et charger votre wp-content avec Filezilla. C’est tout.

Taille et poids des images

La question de la taille de vos images en pixels se gère via l’onglet Réglages puis Médias. Elle est aussi définie par le thème WP que vous utilisez. Si vous créez votre propre thème ou que vous en changez, la taille de vos vignettes peut être différente. Même remarque si vous utilisez un plugin pour vos galeries d’images. En cas de changement de plugin ou de changement de vos réglages, il faut modifier en masse la taille des images générées précédement. Utilisez le plugin AJAX Thumbnail Rebuild à cette fin. Très simple et véritablement pratique.

Le poids de vos images dépend de leur définition. Il n’est franchement pas utile de laisser un énorme poids pour afficher sur Internet. Compressez vos images à maximum 72. Si vous ne savez pas comment faire, installez le plugin Smushit qui le fera automatiquement pour vous à chaque (nouvel) upload. Pour les anciennes déjà uploadées, deux solutions : soit aller dans votre bibliothèque et cliquez sur resmush à côté de chaque image, soit  télécharger sur votre bureau votre dossier uploads et envoyer vos images dans l’outil smush.it de Yahoo. Ensuite vous pouvez télécharger vos images compressées et les renvoyer en ligne. Attention, si vous envoyez trop d’images à la fois cela génèrera une erreur. Recommencez avec moins (une 20aine). Le nec plus ultra de cet outil est que vous téléchargez vos images compressées au format zip en conservant les adresses de dossiers.

Quelques plugins utiles pour la gestion des Uploads et téléchargements

Faites votre choix… (via votre tableau de bord du site concerné en faisant ‘ajouter un plugin’). Ils sont tous compatibles minimum WP 3.0.5 et 3.1

Download Manager ou WP-files base sont des gestionnaire de téléchargements pour vos visiteurs, avec classement par catégories : ces 2 plugins sont sensiblement les mêmes, le choix est pour moi subjectif.

Flexupload multithread uploader : permet d’uploader sans limite de taille.

Inline Uploads : permet d’uploader dans un répertoire de son choix (mais dans wp-content).

Faster Image Insert : permet d’ajouter et modifier ses uploads en masse dans l’édition de posts

Allow Word/Powerpoint/Excel file uploads : tout est dans le titre .

Email Before Download : tout est dans le titre.

Easy FTP Upload ou bSuite Drop Folder Media Uploader permettent de charger de gros fichiers par FTP.

Overwrite Uploads : vous évite d’uploader plusieurs fois le même fichier en écrasant l’ancien du même nom. A voir la quantité de doublons inutiles chez mes clients, je recommande…

Enable Media Replace : dans le même genre, indispensable outil pour modifier une image existante sans devoir éditer le post où elle est. Allez dans la bibliothèques des Médias, cliquez sur l’image à modifier puis sur Upload a new media. Choisissez évidemment la 2e option qui permet de mettre à jour également les url et titres.

AJAX Thumbnail Rebuild : Outil indispensable pour régénérer de nouveaux formats d’images déjà insérées. A utiliser après avoir définis les nouveaux réglages dans la partie Médias.

WP-Smush.it : Indispensable pour diminuer le poids de vos images.

Embedd PDF : permet d’inclure via un shortcode un PDF au format google doc.

Google Doc Viewer : évite d’uploader vos fichiers s’ils se trouvent dans votre doc google ou permet de lier un lien vers un document google, ou d’user d’un shortcode pour les PDF.

Ne pas oublier de configurer ces plugins et de lire la FAQ d’installation de ceux-ci.

Créer un sous-dossier uploads pour les plugins

Un article sans snippet est comme des pâtes sans sel :). Pour les codeurs et bidouilleurs, une solution pour permettre un sous-dossier réservés aux médias insérés par les plugins dans le dossier Uploads. C’est Yoast qui nous l’offre :

add_filter('upload_dir', 'my_upload_dir');
$upload = wp_upload_dir();
remove_filter('upload_dir', 'my_upload_dir');   funcion my_upload_dir($upload) {
	$upload['subdir']	= '/sub-dir-to-use' . $upload['subdir'];
	$upload['path']		= $upload['basedir'] . $upload['subdir'];
	$upload['url']		= $upload['baseurl'] . $upload['subdir'];
	return $upload;
}

That’s All Folks !

LIRE

Tutoriel – Placer son dossier uploads et ses images dans un sous-domaine

Tutoriel – Placer son dossier uploads et ses images dans un sous-domaine

Posted on 30 octobre 2010 in Wordpress | 53 comments

Niveau d’utilisation WP: avancé

Ce billet a été transformé en tutoriel et réécrit. Il fait suite à l’article Définir l’emplacement du dossier uploads dans WordPress, à lire aussi pour la base du procédé.

Déménager ses uploads en sous-domaine donne de l'air à votre blog

J’aimerais que toutes les images, vidéos, sons, pdf, enfin tout ce que j’uploade soit dans un sous-domaine. Exemple un sous-domaine et répertoire nommé ‘docu’, qui donnerait (chez moi) l’adresse http://docu.lashon.fr

Utilité ?

– Une moindre charge donc un accès plus rapide à vos pages.

– Un peu plus de sécurité contre les attaques virales.

Avertissement : Ce tutoriel exige d’effectuer des requêtes SQL dans la base de données. Aussi, si vous êtes effrayé rien qu’à cette idée ou trop débutant pour bien gérer ce changement sur un blog déjà en ligne et rempli d’images, n’essayez pas ceci, sauf en cas de nouvelle installation ou tout nouveau blog.

L’idéal serait de faire ça avant d’installer WordPress ou tout de suite après installation. Dans ce cas de figure voici comment procéder.

Placer son dossier uploads dans un sous-domaine sur un blog tout neuf ou à installer

1. Chez votre hébergeur dans la console d’administration

Allez dans le panneau de configuration des domaines.

Créez un sous-domaine (intitulé docu selon notre exemple choisi).

Déterminez tout de suite sa destination en cliquant sur ou en créant un dossier qui sera votre sous-domaine. Il faut compter une demi-heure pour que l’opération soit complétée. Il faudra donc indiquer dans la destination: /docu (attention au slash). Soyez vigilant, si votre blog se trouve dans un répertoire genre intitulé ‘wordpress’ (déconseillé) , il faudra  indiquer: /wordpress/docu

2. Via FTP Créer un dossier répertoire pour votre sous-domaine

Vous pouvez le faire par Filezilla mais puisque vous y êtes vous pouvez aussi bien le faire dans le panneau chez votre hébergeur (intitulé gestion des fichiers ou transfert fichiers ou manager selon).

Créer un dossier à la racine de votre hébergement. Non de votre site mais à la racine de l’hébergement proposé (selon l’hébergeur ce sera dans www ou à côté de www ou dans public_html ou dans rien).

J’ai plusieurs sites/blogs sur le même hébergement. Mais attention, pas configuré en multisites dans WP, ce qui n’est pas la même procédure. J’ai configuré chez mon hébergeur la destination de chaque domaine dans le bon répertoire. Dans mon logiciel FTP, cela donne les répertoires suivants à la racine :

domaine-du-site-un

domaine-du-site-un/sous-domaine-du-site-un

domaine-du-site-deux

domaine-du-site-trois

sous-domaine-du-site-deux

sous-domaine-du-site-trois

A noter que vous pourriez très bien partager un seul sous-domaine pour héberger les uploads des trois domaines (trois blogs). Alors ce serait comme ça à la racine de votre hébergement :

domaine-du-site-un

domaine-du-site-deux

domaine-du-site-trois

sous-domaine-du-site-un

Et dans le dossier ‘sous-domaine-du-site-un’ vous pouvez avoir ceci :

docu-de-un

docu-de-deux

docu-de-trois

Tout dépend de votre hébergement et de ce que vous voulez : plusieurs bases de données, une pour chaque domaine. Une seule base de données avec plusieurs blogs qui possèdent chacun un nom de domaine différent. Un seul domaine avec plusieurs sous-domaines qui sont autant de blogs…. Mais revenons à notre dossier uploads.

3. Dans ‘Médias’ du tableau de bord WordPress

Renseignons ce dossier répertoire dans Médias. Dans le tableau de bord de votre blog, allez à Réglages puis dans Médias . Nous devons renseigner les deux champs vides intitulés : Stocker les fichiers envoyés dans ce dossier (suivi de ‘Par défaut, wp-content/uploads’) et Adresse web complète pour les fichiers.

wp-admin-options-media

C'est dans ces réglages et pas ailleurs que se joue l'attribution du lieu de stockage de vos images uploadées

3.1 RENSEIGNER LA PREMIÈRE LIGNE QUI PARAMÈTRE LE LIEU PAR DÉFAUT DU STOCKAGE DES UPLOADS

Évitons les confusions : Définir son dossier uploads à la racine de son blog ou changer le nom du dossier n’est pas du tout la même chose que le mettre en sous-domaine.  Dans ce cas-là nous indiquons seulement ‘docu’ dans la première ligne et c’est tout. Alors quoi mettre ?

Ici il faut indiquer le chemin absolu !

Il faut donc d’abord le connaître. Pour ça, nous allons créer un fichier php avec un éditeur de texte (genre Notepad ou autre). Nommons-le par exemple chemin.php. Avec un bout de code dedans :

<?php
$p = getcwd();
echo $p;
?>

Chargez ce fichier espion (uploader avec Filezilla) à l’intérieur du répertoire de votre futur dossier uploads.

(exemple : dans le dossier ‘docu’ que vous avez déjà créé).

Visitez votre blog à l’adresse du fichier chargé (ici il s’agit de votre sous-domaine : docu.lashon.fr/chemin.php). Vous y verrez affiché le chemin précis et absolu du dossier en question.

Copiez ce chemin absolu dans le premier champ vide de Médias.

Le genre du chemin va changer selon votre hébergeur. Vous aurez quelque chose qui ressemble à : /homepages/8/d123456572/htdocs/nom-de-domaine/docu.

Le champ par défaut doit contenir le chemin absolu

Alors que votre hébergeur, lui, vous induit en erreur en vous renseignant peut être un truc comme /kunden/homepages/8/d123456572/htdocs/nom-de-domaine/docu, ou encore /public_html/sub etc. Le fichier que nous avons chargé sera lui totalement précis sur quoi mettre en chemin absolu.

Notez que vous pouvez mettre des sous-dossiers pour trier comme cela vous arrange dans votre sous-domaine. Pratique si vous utilisez un seul sous-domaine pour le dossier uploads de plusieurs petits blogs. Ou pour séparer les images uploads de celles de vos thèmes (si vous avez codé comme ça hein, c’est pas automatique). Par exemple vous avez /docu et vous voulez que les images uploadées aillent dans un sous-répertoire ‘fichiers-uploads’. Le chemin du dossier uploads sera donc : /homepages/8/d123456572/htdocs/nom-de-domaine/docu/fichiers-uploads

Le gros avantage de cette technique est que vous n’avez pas à vous soucier du fait que chez certains hébergeurs (comme OVH) certains sites sont à côté de www. Le fichier chemin vous dira quoi.

3.2 RENSEIGNER LA DEUXIÈME LIGNE QUI INDIQUE L’ADRESSE COMPLÈTE DES FICHIERS

Renseignez la deuxième ligne ou champ intitulé Adresse web complète pour les fichiers. Ici c’est simple, il suffit de donner l’adresse réelle, le lien en dur, soit l’adresse complète http://sous-domaine.domaine.ltd.

Dans notre exemple ça donne http://docu.lashon.fr

3.4 Optimisons les performances

Ajoutez dans votre wp-config.php :

define('UPLOADS', 'http://adresse url de votre sous-domaine');
// Ce qui donne pour l'exemple pris plus haut:define('UPLOADS', 'http://docu.lashon.fr');

Vous pouvez également le définir dans le fichier functions.php de votre thème. Simplement ajoutez :

define('UPLOADS', 'http://adresse url de votre sous-domaine');

Maintenant, faites bien attention au moment d’indiquer l’url. Ne mettez pas un slash (/) à la fin de votre adresse. Vérifiez aussi que vous n’en avez pas mis non plus en renseignant votre url dans le réglage général de l’adresse de votre site. Puis surtout, surtout, dans votre panneau d’administration de votre hébergeur, pensez logique lorsque vous indiquez une destination.

La destination de votre sous-domaine est affaire de dossiers et sous-dossiers. Si vous avez mis votre dossier docu à la racine de votre site (au sens hébergement) alors que votre wordpress est dans un dossier genre ‘blog’, c’est possible mais la prise de tête commence là. Optez pour le plus simple : suivez ce que vous avez fait par ftp et mettez ce dossier ‘docu’ de votre sous-domaine dans le même dossier que WP. Ou bien à la racine de votre site avec la bonne destination.

Comment déplacer le dossier uploads d’un blog déjà bien rempli ?

Pareil que ci-dessus. Sauf qu’il faut s’occuper du dossier existant et des liens modifiés par ce changement ! Car le ‘nouveau’ dossier uploads ne concerne que les nouvelles insertions. Aussi il faut actualiser le tout :

1) Déplacer physiquement le contenu du dossier uploads dans le dossier concerné

Ex : dans ‘docu’. Avec Filezilla toujours ou chez votre hébergeur (si possible).

REQUETES SQL

Ceci va changer dans tous vos articles et pages les chemins vers le nouveau dossier upload. Vous devez indiquer vos URL ou adapter selon votre situation !

UPDATE wp_posts SET  guid = REPLACE (guid, 'http://nom-domaine-du-blog/wp-content/uploads/', 'http://sous-domaine.nom-domaine-du-blog') WHERE post_type = 'attachment';

UPDATE wp_posts SET post_content = replace(post_content, 'http://nom-domaine-du-blog/wp-content/uploads/', 'http://sous-domaine.nom-domaine-du-blog');

UPDATE wp_posts SET post_content = REPLACE (post_content, 'src= »http://nom-domaine-du-blog/wp-content/uploads/', 'src= »http://sous-domaine.nom-domaine-du-blog');

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://nom-domaine-du-blog/wp-content/uploads/', 'http://sous-domaine.nom-domaine-du-blog');

Ces requêtes correspondent au fait de donner dans le 1er champ l’ancienne adresse des uploads et dans le 2e la nouvelle adresse. Les revoici dans le cadre de notre exemple :

UPDATE wp_posts SET  guid = REPLACE (guid, 'http://www.lashon.fr/wp-content/uploads', 'http://www.docu.lashon.fr') WHERE post_type = 'attachment';

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.lashon.fr/wp-content/uploads', 'http://www.docu.lashon.fr');

UPDATE wp_posts SET post_content = REPLACE (post_content, 'src= »http://www.lashon.fr/wp-content/uploads', 'src= »http://www.docu.lashon.fr');

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://www.lashon.fr/wp-content/uploads', 'http://www.docu.lashon.fr');

Si vous croyez contourner SQL par l’utilisation d’un plugin magique capable de modifier vos liens vers les images ou des plugins de redirection,  je vous le déconseille. Ces plugins changeront les liens insérés dans vos articles mais pas les attachements. Autrement dit vous allez vous y perdre et les anciennes images ne seront pas affichées…

Mais il conviendrait en plus (optionnel) de signaler ces changements aux moteurs de recherche. Si vos images étaient référencées et non bloquées par le robots.txt, la redirection des images peut se faire dans le .htaccess :

# Redirection des anciennes images links
RedirectMatch 301 ^/wp-content/uploads/(.*)$    http://docu.lashon.fr$1

Ceci dit, si vous avez protégés vos images contre le hotlinking, et si vous avez empêché leur indexation, on s’en fiche un peu… mais à vous de voir.

AUTRE METHODE

Ne placer AUCUN define pour définir le dossier uploads dans functions.php ou wp-config.php.

Créer un répertoire docu à la racine de son blog.

Renseigner dans Medias du tableau de bord docu à la première ligne, l’url du sous-domaine à la deuxième ligne

Chez l’hébergeur, cliquer sur son sous-domaine docu.lashon.fr, modifier les DNS et créer un CNAME puis le faire pointer vers le répertoire docu. Cette procédure varie selon l’hébergement, mutualisé ou serveur privé/virtuel. Sur un virtuel ou dédié, il suffira de créer un wildcard.

Dossier Uploads en sous-domaine

CONCLUSION

On m’a demandé si cette procédure était utile lorsqu’on utilise un cache. Sans hésiter je dis oui. Un cache, qu’il soit mis à la main ou via un plugin aide à l’optimisation de ce qui existe, rien de plus. Il n’intervient nullement sur les requêtes envoyées. Si vos images sont ailleurs dans un sous-domaine, vous gagnez en répartition des commandes (requêtes) pour afficher votre blog. Un gain de temps assuré.

On gagne donc ici sur tous les plans : Optimisation, donc un blog plus rapide, ce qui rend vos visiteurs contents, meilleur référencement du à cette rapidité accrue, et sécurité contre les robots de piratage automatiques.

Sur ce dernier point précis, le mieux eût été de déplacer tout le répertoire wp-content ailleurs… mais c’est un autre manoeuvre. Voir le code ici, explication dans le Codex (anglais) là.

LIRE

Définir l’emplacement du dossier uploads dans WordPress

Définir l’emplacement du dossier uploads dans WordPress

Posted on 30 octobre 2010 in Wordpress | 3 comments

uploads

Désiré François Laugée, Mort de Guillaume le conquérant 1851, aucun rapport avec cet article

(Cet article a été actualisé et réécrit)

Si vous n’avez rien touché à la case Médias de vos Réglages WordPress, les images insérées dans vos articles iront par défaut dans le dossier wp-content/uploads.

Le dossier uploads concerne tous les uploads que vous ferez, c’est-à-dire tous les fichiers insérés dans les articles et pages : images, vidéos, audio, pdf etc).

Pour changer le nom du dossier par défaut, il faut donc régler la chose dans votre tableau de bord, dans réglages puis dans Médias. Il y a deux champs possibles. Dans le champ « dossier par défaut », il faut mettre :

– Si vous voulez conserver votre dossier uploads dans wp-content et seulement changer son nom (exemple avec ‘mesinserts’) :

wp-content/mesinserts

Ceci remplacera seulement le nom de votre dossier uploads dans wp-content

– Si vous voulez que ce dossier soit hors de wp-content (pour améliorer la sécurité), par exemple à la racine de votre blog, indiquez seulement :

mesinserts

Le dossier uploads ne sera pas dans wp-content mais un niveau plus haut à la racine de votre blog

Si vous choisissez l’option dossiers selon dates, voir ici dans le codex : http://codex.wordpress.org/Function_Reference/wp_upload_dir

Maintenant, par souci d’optimisation de votre blog ou pour augmenter sa sécurité, vous avez choisi un autre nom et un autre emplacement pour le répertoire uploads, il faut le notifier à WordPress.

Puis optimisons la voie avec un define. Cette fonction ne gère pas l’upload, elle optimise les performances. Vous pouvez indiquer la voie soit dans le fichier functions.php, soit dans wp-config.php.

– Dans le cas où votre dossier est toujours dans wp-content :

define('UPLOADS', 'wp-content/mesinserts');

– Dans le cas où votre dossier est à la racine de votre blog (au même niveau que wp-admin, wp-content et wp-include) . C’est à dire une adresse URL du type monnomdedomaine.com/mesinserts/ :

define('UPLOADS', 'mesinserts');

Ou encore mieux (recommandé), donnez l’URL complète :

define('UPLOADS', 'http://mon-nom-de-domaine.com/mesinserts/');

Pour placer ce dossier dans un sous-domaine, lisez mon article (aussi réactualisé): Placer ses uploads et images dans un sous-domaine.

LIRE

Exporter Importer son blog WordPress AVEC ses images au bon endroit

Exporter Importer son blog WordPress AVEC ses images au bon endroit

Posted on 9 janvier 2010 in Wordpress | 16 comments

importer

Importer son blog demande quelques réglages préalables si vous désirez une copie identique

Comment exporter ou importer son blog, en local ou ailleurs, sans devoir chipoter pour récupérer ses images et obtenir les mêmes ID partout ? Il faut préparer son WordPress d’accueil et bien définir son dossier uploads.

La méthode sécurisée et complète est celle qui passe par la base de données. L’autre, que nous allons voir ici est la fonction importer de WordPress. Elle n’est pas toujours fiable, surtout pour les gros fichiers (donc peut être à réserver pour effectuer une copie pour travailler en local ?) mais a le mérite d’être très rapide.
Son défaut: il faut effectuer à la main les réglages de votre nouveau blog à l’identique de celui en ligne ou ancien blog.

Étape 1 : Exporter votre blog

Blog en ligne => tableau de bord => Options => Exporter => Télécharger.
Vous avez maintenant un fichier xml sur votre bureau qui contient tous vos articles, commentaires, et URL des images, tags, catégories, utilisateurs. Avant cette sauvegarde, vous pourriez aussi vous débarrasser des informations inutiles. Videz la corbeille des vieux articles et surtout optimisez votre base de données (soit via WP-Manager soit via votre console phpmyadmin ou Mysql chez votre hébergeur).

Étape 2 : Effectuez les réglages de votre nouveau WordPress à l’identique de l’ancien

(ou de votre blog en ligne s’il s’agit d’une copie pour travail en local)
Blog en ligne => tableau de bord => Réglages => tous les onglets.

Étape 3 : Supprimez la page et article livré par défaut dans votre nouveau wordpress

Blog en ligne => tableau de bord => Articles / Pages.
Important, afin de libérer les ID de ces deux pages qui sont probablement utilisés dans votre blog. Si vous avez déjà tenté l’importation et que vos ID (chiffre URL de vos pages, articles et catégories) n’étaient pas synchronisés, c’est faute d’avoir procédé à ce vidage préliminaire. Solution : videz tout et recommencez.

Étape 4 : Téléchargez votre blog sur votre disque dur

Téléchargez, via ftp, tout dossier pertinent sur votre disque dur. Soit tout le répertoire wp-content et tout autre dossier personnel ajouté (images et uploads si vous l’avez mis ailleurs que dans wp-content).

Étape 5: Définir l’emplacement du dossier uploads

Si vous n’avez rien touché à la case « divers » de vos réglages, les images insérées dans vos articles sont par défaut dans le dossier wp-content/uploads et l’importation de vos articles ne posera aucun problème.
Dans le cas contraire, vos images importées n’iront pas au bon endroit et vous ne verrez rien s’afficher. Or je suppose que vous avez envie de pouvoir également exporter puis importer vos images sans devoir changer les URL à la main… aussi il faut définir le lieu et le nom de celui-ci. Donc si par souci d’optimisation de votre blog ou pour augmenter sa sécurité, vous avez choisi un autre nom et un autre emplacement pour le répertoire uploads, il faut le notifier à WordPress dans votre fichier wp-config.php avec un define (mes images sont dans un sous-domaine, ce qui diminue le temps de chargement de la page).

Vous aimeriez que tous les uploads, c’est-à-dire tous les fichiers insérés dans les articles et pages, images, vidéos, audio, pdf etc) soient regroupés dans un dossier à la racine de votre site. Par exemple nommé madeco. Genre http://domaine.ltd/madeco (donc en-dehors de wordpress).

Dans wp-config.php, repérez la ligne:

require_once(ABSPATH.'wp-settings.php');

juste au-dessus ajoutez :

/** Definition emplacement du dossier uploads. */
define('UPLOADS', '/madeco');

Si votre dossier uploads est dans votre wp-content et vous avez seulement changé son nom :

/** Definition emplacement du dossier uploads. */
define('UPLOADS', 'wp-content/madeco');

Et dans votre tableau de bord, dans réglages puis dans divers, selon votre choix indiquez :

soit: /madeco
soit: wp-content/madeco

(voir aussi Définir l’emplacement du dossier uploads dans WordPress)

Étape 6: Importer votre blog

Dans votre nouveau Blog => tableau de bord => Options => Importer.
Importer le fichier xml exporté plus haut depuis votre disque dur en prenant soin de cocher la case ‘Télécharger et importer les fichiers joints’ (2e étape de la fonction importer) et choisir ‘rapporter à l’utilisateur’.

Tout est maintenant identique. Vous pouvez travailler, vos articles ont les mêmes ID et vos images sont présentes.

Ressources utiles:

LIRE