mardi 24 avril 2012

Installer Wordpress, modifier le fichier wp-config.php

 

Le fichier wp-config.php vous permet d'installer Wordpress en configurant manuellement chaque option. Vous pouvez régler la base de donnée, le nom d'utilisateur, le mot de passe et toutes les options techniques nécessaires pour installer Wordpress. Cet article est une traduction du document officiel du Codex de Wordpress sur la modification du fichier wp-config.php. Notez que vous n'avez pas besoin de modifier ce fichier pour installer Wordpress, mais c'est toujours une bonne pratique de connaitre les rouages de Wordpress.

Le fichier wp-config.php n'existe pas quand vous téléchargez Wordpress. Vous avez besoin de le créer. Cependant, le fichier wp-config-sample.php est fournit en tant qu'exemple pour vous donner une idée. De ce fait, ouvrez ce fichier et enregistrez-le sous wp-config.php.

Pour changer le fichier wp-config.php afin d'installer Wordpress, vous avez besoin des informations suivantes :

  • Le nom de la base de donnée
  • Le nom d'utilisateur de la base de donnée
  • Le mot de passe de la base de donnée
  • L'hôte de la base de donnée. En plus, on peut aussi fournir un numéro de port, un chemin d'accès vers un socket Unix si c'est nécessaire.

Si votre hébergeur web a installé Wordpress pour vous, vous pouvez lui demander ces informations. Si vous possédez votre serveur dédié, vous obtiendrez ces informations quand vous créerez la base de donnée pour installer Wordpress.

Attention : le contenu du fichier wp-config.php respecte un ordre précis. Si vous modifiez ce fichier, vous risquez de créer des erreurs pour votre blog, aussi respectez toujours l'ordre du fichier d'exemple. Une chose, utilisez toujours un éditeur de texte tels que Notepad2 pour modifier le fichier wp-config.php, et jamais un traitement de texte tel que Word. Notepad2 peut reconnaitre de nombreuses syntaxes incluant celle du PHP ce qui vous facilitera la tâche.

Le fichier wp-config-sample.php se trouve à la racine de votre répertoire Wordpress et ouvrez-le dans votre éditeur de texte.

Un exemple du fichier wp-config-sample.php. Les valeurs fournies vous donnent une idée de ce que vous pouvez faire.

Vous avez besoin de faire les changements sur votre serveur pour que cela fonctionne.

 

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'putyourdbnamehere');

/** MySQL database username */
define('DB_USER', 'usernamehere');

/** MySQL database password */
define('DB_PASSWORD', 'yourpasswordhere');

/** MySQL hostname */
define('DB_HOST', 'localhost');


Note : Le texte a l'intérieur des /* */ sont des commentaires et n'affectent pas le fichier.

 

Configurer le nom de la base de donnée avec le fichier wp-config.php

 

Remplacez le texte putyourdbnamehere avec le nom de votre base de donnée, ex : MyDatabaseName.

define('DB_NAME', 'MyDatabaseName');

 

Configurer l'utilisateur de la base de donnée

 

Remplacez usernamehere avec le nom d'utilisateur de votre base de donnée, ex : MyUserName

define('DB_USER', 'MyUserName');

 

Configurez le mot de passe de la base de donnée


Remplacez yourpasswordhere avec votre mot de passe, ex : MyPassWord.

define('DB_PASSWORD', 'MyPassWord');

 

Configurer l'hôte de la base de donnée


Remplacez localhost avec le nom de votre hôte de la base, ex : MyDatabaseHost. Un numéro de port et un chemin d'accès d'un socket Unix peuventt être requis.

 

define('DB_HOST', 'MyDatabaseHost');

 

Dans le cas de l'hôte de la base de donnée, il y a des chances que vous n'ayez pas besoin de le changer. D'abord, installez Wordpress avec la valeur par défaut et si cela ne marche, vous pouvez demander cette information à votre hébergeur web.

Les possibles valeurs DB_HOST du fichier wp-config.php

 

On vous donne une liste des valeurs possibles du réglage DB_HOST. Chaque hébergeur web possède sa propre valeur et si la votre n'est pas listé ci-dessous, contactez son support technique.

Hébergeur Web     Possible valeur de DB_HOST
1and1     db12345678
AN Hosting     localhost
A Small Orange     localhost
BlueHost     localhost
DreamHost     mysql.example.com
GoDaddy     Aller dans MySQL et trouver le nom d’hôte
HostGator     localhost
HostICan     localhost
ICDSoft     localhost:/tmp/mysql5.sock
IPower     username.ipowermysql.com
LaughingSquid     localhost
MediaTemple GridServer     internal-db.s44441.gridserver.com
MediaTemple (dv)     localhost
MegnaHost     localhost
NearlyFreeSpeech.Net     votrenomd’utilisateur.db
NetworkSolutions mysqlv5
one.com     localhost
pair Networks     dbnnnx.pair.com
Rackspace Cloud     mysql50-01.wc1.dfw1.stabletransit.com
Yahoo     mysql
Hôtes avec cPanel     localhost
Hôtes avec Plesk     localhost
Hôtes avec DirectAdmin     localhost
Tophost.it     sql.votre-nom-domaine.it

 

Un port alternative de MySQL dans Wordpress avec le fichier wp-config.php

 

Si votre hôte utilise un autre numéro de port pour votre base de donnée, vous avez besoin de changer la valeur DB_HOST dans le fichier wp-config.php pour installer Wordpress.

Pour localhost

define('DB_HOST', 'localhost:3307');

Pour les autres

define('DB_HOST', 'mysql.example.com:3307');

Remplacez la valeur 3307 avec le numéro de port que l'hébergeur web vous a fourni.

 

Les Pipes et les Sockets MySQL dans Wordpress avec le fichier wp-config.php

 

Si votre hôte utilise des Sockets ou des Pipes Unix, ajustez la valeur de DB_HOST dans le fichier wp-config.php.

define('DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock');

 

Remplacez /var/run/mysqld/mysqld.sock avec le Socket ou le Pipe que l'hébergeur web vous a fourni.

 

Configurer la norme des caractère dans Wordpress

 

Depuis Wordpress 2.2, le valeur DB_CHARSET permet de créer une norme de caractère pour la base de donnée, ex : tis620 pour TIS620 Thai pour qu'elle soit utilisée pour définir les tables de la base de donnée MySQL.

La valeur par défaut est utf8 (Unicode UTF-8) et c'est toujours la meilleure option. UTF-8 supporte n'importe quelle langue, aussi vous devez laisser DB_CHARSET toujours sur utf8 et utiliser la valeur DB_COLLATE si c'est nécessaire.

L'exemple ci-dessous montre l'encodage utf8 qui est la valeur par défaut pour installer Wordpress :

 

define('DB_CHARSET', 'utf8');

 

Attention : Pour les nouvelles installations de Wordpress, on n'a pas besoin de changer la valeur de DB_CHARSET. Pour ceux qui effectuent une mise à jour de Wordpress, notamment pour les blogs qui ont une version antérieure à  Wordpress 2.2. Si vous ne trouvez pas de valeurs DB_CHARSET ou DB_COLLATION dans votre fichier wp-config.php, vous ne devez pas les ajouter sous peine de créer des pannes majeures sur votre blog.

 

La collation  de la base de donnée dans Wordpress

 

Depuis Wordpress 2.2, DB_COLLATE permet de créer une collation de la base de donnée (une option pour filtrer les normes de caractères). Dans la plupart cas, la valeur doit être laissée vide (null) pour que la collation de la base de donnée utilise automatiquement la valeur de DB_CHARSET. Configurez DB_COLLATE dans une des valeurs d'UTF 8 qui sont définies comme les normes de caractères de la plupart des langues de l'Europe de l'ouest. Voir : http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

 

La valeur par défaut de DB_COLLATE

 

define('DB_COLLATE', );

 

Une collation général de la norme UTF-8

define('DB_COLLATE', 'utf8_general_ci');

 

Une collation pour l'unicode turque de l'UTF-8

define('DB_COLLATE', 'utf8_turkish_ci');

 

Encore une fois, ne changez pas cette valeur pour installer un nouveau Wordpress et n'en ajoutez pas quand vous mettez à jour depuis une version antérieure à Wordpress 2.2.

 

Les clés de sécurité de wp-config.php

 

Dans la version 2.6 de Wordpress, trois clés de sécurité, AUTH_KEY, SECURE_AUTH_KEY, et LOGGED_IN_KEY ont étés ajoutées pour assurer un meilleur cryptage de l'information stockée dans le cookie de l'utilisateur. Elles sont remplacées la clé unique qui a été introduit dans Wordpress 2.5. Dans Wordpress 2.7, une quatrième clé, NONCE_KEY, a été ajoutée. Quand chaque clé a été ajoutée, des Salts correspondants ont étés ajoutés, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT et NONCE_SALT.

Vous n'avez pas besoin de mémoriser ces clés, mais faites en sorte qu'elles soit longues, aléatoires et compliquée. Ou mieux, utilisez l'un des générateurs en ligne. Voir : https://api.wordpress.org/secret-key/1.1/salt/. Vous pouvez les changer à n'importe quel moment pour invalider les cookies existants. Cela signifie que tous les utilisateurs devront se connecter à nouveau.

Exemple de clés de sécurité (Ne les utilisez pas pour votre blog !) :

 

define('AUTH_KEY',         't`DK%X:>xy|e-Z(BXb/f(Ur`8#~UzUQG-^_Cs_GHs5U-&Wb?pgn^p8(2@}IcnCa|');
define('SECURE_AUTH_KEY',  'D&ovlU#|CvJ##uNq}bel+^MFtT&.b9{UvR]g%ixsXhGlRJ7q!h}XWdEC[BOKXssj');
define('LOGGED_IN_KEY',    'MGKi8Br(&{H*~&0s;{k0<S(O:+f#WM+q|npJ-+P;RDKT:~jrmgj#/-,[hOBk!ry^');
define('NONCE_KEY',        'FIsAsXJKL5ZlQo)iD-pt??eUbdc{_Cn<4!d~yqz))&B D?AwK%)+)F2aNwI|siOe');
define('AUTH_SALT',        '7T-!^i!0,w)L#JK@pc2{8XE[DenYI^BVf{L:jvF,hf}zBf883td6D;Vcy8,S)-&G');
define('SECURE_AUTH_SALT', 'I6`V|mDZq21-J|ihb u^q0F }F_NUcy`l,=obGtq*p#Ybe4a31R,r=|n#=]@]c #');
define('LOGGED_IN_SALT',   'w<$4c$Hmd%/*]`Oom>(hdXW|0M=X={we6;Mpvtg+V.o<$|#_}qG(GaVDEsn,~*4i');
define('NONCE_SALT',       'a|#h{c5|P &xWs4IZ20c2&%4!c(/uG}W:mAvy<I44`jAbup]t=]V<`}.py(wTP%%');

 

Une clé secrète protégera mieux votre blog et protégera aussi les tentatives de craquer le mot de passe.

En termes simples, une clé secrète est un mot de passe avec des éléments qui les rendent difficile à deviner dans les tentatives de craquer le mot de passe. Un mot de passe tel que motdepasse ou test sont faciles à deviner, mais un mot de passe aléatoire tel que 88a7da62429ba6ad3cb3c76a09641fc prend des années à être craquer. Un Salt est utilisé pour renforcer davantage la sécurité du résultat généré.

Les quatres clés sont nécessaires pour une sécurité optimale. Les quatres Salts sont recommandées, mais non requises parce que Wordpress générera les Salts pour vous si vous ne les fournissez pas. Elles sont incluses par défaut.

Les sections suivantes contiennent des configurations avancées qui ne sont pas toujours supportées avec les récentes versions de Wordpress, aussi sauvegardez systématiquement votre fichier wp-config.php avant chaque changement pour installer Wordpress.

 

La valeur table_prefix dans le fichier wp-config.php

 

La valeur $table_prefix est celle qui est placée dans les tables de la base de donnée. Changer la valeur si vous voulez utiliser autre chose que le préfixe wp_. En général, on change le préfixe quand on doit installer plusieurs blogs Wordpress dans la même base de donnée Wordpress.

Premier blog avec un préfixe différent

$table_prefix  = 'r235_';  

Un second blog Wordpress sur la même base de donnée avec un préfixe différent.

$table_prefix  = 'y77_';  

 

L'URL de Wordpress dans le fichier wp-config.php

 

WP_SITEURL, défini depuis Wordpress 2.2 permet de définir l'URL de Wordpress. La valeur définie est l'URL qui contient les fichiers Core de Wordpress. Elle doit inclure le http://. Ne mettez pas de slash "/" à la fin. Configurer cette valeur dans le fichier wp-config.php écrase celle de la table dans wp_options pour siteurl et désactive le champs de l'URL de Wordpress dans Administration/Réglage/Réglage général.

Note : Cela ne changera pas la valeur de la base de donnée, et l'URL retournera à son ancienne valeur si cette ligne est supprimée du fichier wp-config.php. Utilisez la constante RELOCATE pour changer la valeur de siteurl dans la base de donnée.

Si Wordpress est installé dans un répertoire nommé "wordpress" pour le domaine exemple.com, définir WP_SITEURL tel que :

define('WP_SITEURL', 'http://exemple.com/wordpress');

 

Configurez dynamiquement WP_SITEURL en se basant sur $_SERVER['HTTP_HOST'].

 

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpress');

 

Note : Une meilleure alternative pour certaines installations serait d'utiliser le nom de serveur généré SERVER_NAME au lieu de celui de l'utilisateur généré avec PHP, HTTP_HOST, lequel est crée dynamiquement par PHP en se basant sur la valeur de l'entête HTTP HOST  dans la requête ce qui crée des vulnérabilités d'inclusions pour le fichier. SERVER_NAME est configuré par la configuration du serveur et il est statique.

 

Configurer dynamiquement WP_SITEURL en se basant sur $_SERVER['SERVER_NAME'].

 

define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/path/to/wordpress');

 

L'URL du blog Wordpress dans wp-config.php

 

La valeur WP_HOME est une autre option du fichier wp-config.php ajoutée dans Wordpress 2.2 qui est similaire à WP_SITEURL, WP_HOME écrase la valeur de table pour Home, mais ne change pas de façon permanente. Home est l'adresse que vous voulez que vos visiteurs entrent dans leur navigateur pour arriver sur votre blog. Il doit inclure le http:// et ne doit pas avoir de slash "/" à la fin.

 

define('WP_HOME', 'http://exemple.com/wordpress');

 

Si vous utilisez la technique pour donner à Wordpress son propre répertoire, alors vous devez utilisez cette option. Souvenez-vous de mettre le fichier index.php dans le répertoire racine publique  si vous utilisez un réglage tel :

 

define('WP_HOME', 'http://example.com');

 

Configurer dynamiquement WP_HOME en se basant sur $_SERVER['HTTP_HOST'].

 

define('WP_HOME',    'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpress');

 

Déplacer le répertoire wp-content de Wordpress avec le fichier wp-config.php

 

Depuis Wordpress 2.6, vous pouvez déplacer le répertoire wp-content qui contient vos thèmes, vos plugins et vos publications à l'extérieur du répertoire de Wordpress.

 

Configurer WP_CONTENT_DIR vers le chemin d'accès complet de ce répertoire :

 

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content' );

 

Configurer WP_CONTENT_URL vers l'URL complète de ce répertoire :


define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');

 

Faculatif

Configurer WP_PLUGIN_DIR au chemin d'accès complet de ce répertoire :


define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content/plugins' );

 

Configurer WP_PLUGIN_URL vers l'URL complète de ce répertoire :

 

define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins');

Si vous avez des problèmes de compatibilités avec les plugins. Configurez PLUGINDIR au chemin d'accès complet local de ce répertoire :

define( 'PLUGINDIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/wp-content/plugins' );

 

Modifier l'intervalle de l'Autosave dans Wordpress avec le fichier wp-config.php

 

Quand vous modifiez un article, Wordpress utilise l'AJAX pour enregistrer automatiquement les modifications à mesure que vous tapez. Vous pouvez rallonger ou diminuer le délai de sauvegarde pour vous assurer de ne perdre aucun changement. La valeur par défaut est de 60 secondes.

define('AUTOSAVE_INTERVAL', 160 );  // seconds

 

Révisions des articles Wordpress

 

Par défaut, Wordpress enregistrera des copies de chaque modification d'un article ou d'une page, permettant de retrouver une version antérieure de cet article ou de cette page. L'enregistrement des révisions peut être désactivée ou une limite de révisions par page ou article peut être spécifiée.

 

Désactiver les révisions d'articles Wordpress

 

Si vous ne configurez pas cette valeur, la valeur par défaut est True (activer les révisions d'article). Si vous voulez désactiver cette option d'enregistrement des révisions, utilisez le réglage suivant :

define('WP_POST_REVISIONS', false );

 

Spécifier une limite des révisions d'articles Wordpress

 

Si vous voulez spécifier une limite des révisions d'articles, changez la valeur false en un nombre entier (ex : 3 ou 5).

define('WP_POST_REVISIONS', 3);

 

Configurer le cookie du domaine dans Wordpress avec le fichier wp-config.php

 

Le réglage du domaine dans les cookies de Wordpress peut être spécifié avec des installations inhabituelles de domaine. L'une des raisons est si les sous-domaines sont utilisés pour fournir du contenu statique. Pour empêcher Wordpress d'envoyer des cookies pour chaque requête pour du contenu statique dans votre sous-domaine, vous pouvez configurer le cookie du domaine pour qu'il soit uniquement actif pour les domaines avec du contenu dynamique.

define('COOKIE_DOMAIN', 'www.askapache.com');

 

Activer le multisite Wordpress et l'option Réseau de sites

 

L'option WP_ALLOW_MULTISITE est une option introduite dans Wordpress 3.0 pour activer le multisite qui était disponible dans Wordpress MU. Si ce réglage est absent du fichier wp-config.php, le défaut est False (désactivé)

define('WP_ALLOW_MULTISITE', true);

 

Débuguer Wordpress

 

L'option WP_DEBUG, ajouté dans Wordpress 2.3.1, contrôle l'affichage de certaines erreurs et avertissements. Si ce réglage est absent du fichier wp-config.php, donc, la valeur est présumée False (désactivée).

Note : Les valeurs True et False dans l'exemple ne possède pas d'apostrophes parce que ce sont des valeurs booléennes.

define('WP_DEBUG', true);
define('WP_DEBUG', false);

De même, si vous envisagez de modifier certains codes natifs ou CSS de Wordpress, vous devez ajouter le code suivant dans le fichier wp-config.php :

 

define('SCRIPT_DEBUG', true);

 

De ce fait, tous les changements effectués aux fichiers scriptname.dev.js et filename.dev.css dans les répertoires wp-includes/js, wp-includes/css, wp-admin/js, et wp-admin/css seront répercutés sur votre blog.

Depuis Wordpress 2.3.2, les erreurs de base de données sont affichées uniquement si WP_DEBUG est sur True. Dans les versions précédentes, ces erreurs étaient toujours affichées. (Les erreurs de base de donnée sont gérées par la classe wpdb et ne sont pas affectées par les erreurs des réglages PHP.

Depuis Wordpress 2.5, configurer WP_DEBUG sur True augmente aussi le niveau de report d'erreurs sur E_ALL  et active tous les avertissements liés aux fonctions  et aux fichiers obsolètes, Wordpress configure le niveau de report d'erreurs sur E_ALL ^ E_NOTICE ^ E_USER_NOTICE.

 

Désactiver la concaténation JavaScript dans Wordpress

 

Pour accélérer le Tableau de Bord de Wordpress, tous les fichiers JavaScripts sont concaténés dans une seule URL. Si le JavaScript ne fonctionne pas dans votre Tableau de bord, vous pouvez désactiver cette option :

define('CONCATENATE_SCRIPTS', false);

 

Configurer les journaux d'erreurs de Wordpress

 

Parce que le fichier wp-config.php est chargé pour chaque page et non du fichier de cache, c'est un excellent endroit pour configurer les réglages de PHP ini qui contrôle votre installation PHP. C'est utile si vous n'avez pas accès au fichier PHP ini ou si vous voulez effectuer des changements à la volée.

Ci-dessous, un exemple qui active les erreurs de connexion PHP et les enregistre dans un fichier précis. Si WP_DEBUG  est sur True, les erreurs seront aussi enregistrées dans ce fichier. Placez juste les réglages ci-dessous avant les commandes require_once ou include.

@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/home/example.com/logs/php_error.log');
/* That's all, stop editing! Happy blogging. */

Un autre exemple de journal d'erreurs :

/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content (if Apache does not have write permission, you may need to create
* the file first and set the appropriate permissions (i.e. use 666) )
*/
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

Une version peaufinée du code précédent :

/**
* This will log all errors notices and warnings to a file called debug.log in
* wp-content only when WP_DEBUG is true. if Apache does not have write permission,
* you may need to create the file first and set the appropriate permissions (i.e. use 666).
*/

define('WP_DEBUG', true); // or false
if (WP_DEBUG) {
  define('WP_DEBUG_LOG', true);
  define('WP_DEBUG_DISPLAY', false);
  @ini_set('display_errors',0);
}

 

Augmenter la mémoire PHP allouée dans Wordpress

 

 

Avec Wordpress 2.5, l'option WP_MEMORY_LIMIT vous permet de spécifier la quantité maximale de mémoire qui peut être utilisé par Wordpress. Ce réglage peut être nécessaire quand vous recevez un message du genre : " Allowed memory size of xxxxxx bytes exhausted."

Ce réglage augmente la mémoire PHP uniquement pour Wordpress et non pour les autres applications de votre hébergement. Par défaut, Wordpress essaiera d'augmenter la mémoire PHP sur 32 Mo (le code concerné est au début du fichier wp-config.php), aussi, le réglage de wp-config.php doit être supérieur à 32 Mo.

Worpdress contrôlera automatiquement si le PHP possède moins de mémoire que la valeur entrée avant d'utiliser cette fonction. Par exemple, si le PHP possède 64 Mo de mémoire, il n'est pas nécessaire de configurer cette valeur sur 64 Mo puisque Wordpress utilisera 64 Mo de toutes les manières.

Notez que ce réglage peut ne pas fonctionner si votre hébergeur web n'autorise pas l'augmentation de la mémoire PHP de Wordpress. De même, certains hébergeurs web limite cette quantité de mémoire à 8 Mo (c'est le cas de nombreux hébergements mutualisés).

 

Augmenter la mémoire PHP de Wordpress sur 64 Mo

 

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

 

Augmenter la mémoire PHP de Wordpress sur 96 Mo

 

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

 

Le cache dans Wordpress avec le fichier wp-config.php

 

Le réglage WP_CACHE, s’il est sur True, permet d'inclure le fichier wp-content/advanced-cache.php lorsque Wordpress execute le fichier wp-setting.php

 

define('WP_CACHE', true);

 

Custom User et Usermeta de Wordpress dans le fichier wp-config.php

 

Les options CUSTOM_USER_TABLE et CUSTOM_USER_META_TABLE sont utilisées pour créer des tables d'utilisateurs et usermeta de Wordpress ne sont pas utilisées, au lieu, ces valeurs et tables sont utilisées pour stocker votre information d'utilisateur.

define('CUSTOM_USER_TABLE', $table_prefix.'my_users');
define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');

Notez que ces permissions dans les tables user_meta  sont stockées avec le préfixe de table du site. Aussi, la valeur CUSTOM_USER_META_TABLE doit avoir des entrées pour chaque site qui utilise cette table. Pour éviter que l'administrateur obtienne des erreurs du genre " you do not have permissions ", vous devez avoir :

 

prefix1_capabilities = a:1:{s:13:"administrator";b:1;} and prefix2_capabilities = a:1:{s:13:"administrator";b:1;} etc

 

La langue et le répertoire de langue dans Wordpress

 

L'option WPLANG définit le nom du fichier pour le langage de traduction (fichier .mp). L'option WP_LANG_DIR  définit dans quel répertoire réside le fichier WPLANG .mo. Si WP_LANG_DIR n'est pas définit, Wordpress cherche d'abord le fichier .mo définit par WPLANG dans le répertoire wp-content/languages et ensuite dans, wp-includes/languages.

define('WPLANG', 'de_DE');
define('WP_LANG_DIR', $_SERVER['DOCUMENT_ROOT'].'wordpress/languages');

Pour trouver le code de langue de WPLANG, reportez-vous à la référence de Wordpress dans votre langue.

Voir : http://codex.wordpress.org/WordPress_in_Your_Language.

Vous avez besoin du code entre parenthèse après chaque entête de la langue.

 

Enregistrer les requêtes de la base de donnée Wordpress pour les analyser

 

La définition SAVEQUERIES enregistre les requêtes de la base de donnée dans un tableau de variable et ce dernier peut être affiché pour aider à analyser ces requêtes. L'information enregistre chaque requête, la fonction qu'elle appelée et le temps nécessaire pour exécuter la requête.

Note : Cela peut affecter la performance du site, aussi assurez-vous de désactiver cette option quand vous ne faites pas de déboguage.

Premièrement, mettez ce code dans le fichier wp-config.php :

define('SAVEQUERIES', true);

Ensuite, mettez ce code dans le pied de page de votre thème Wordpress :

<?php
if (current_user_can('administrator')){
    global $wpdb;
    echo "<pre>";
    print_r($wpdb->queries);
    echo "</pre>";
}
?>

 

Ecraser les permissions par défaut dans Wordpress avec le fichier wp-config.php

 

Les déclarations de définition FS_CHMOD_DIR et FS_CHMOD_FILE  permettent d'écraser les permissions de fichier par défaut. Ces deux variables ont été développées pour résoudre le problème de la fonction de mise à jour du Core avec certains hébergeurs web qui fonctionnaient sous suexec. Si un hébergeur web utilise des permissions de fichier restrictives (ex : 400) pour tous les fichiers d'utilisateurs et empêche l'accès aux fichiers de permissions de groupe ou de tous, ces définitions doivent résoudre le problème. Notez que 0755 est une valeur octale. Une valeur octale doit être préfixée avec un 0 et n’est pas délinée avec de simples guillemets.

define('FS_CHMOD_DIR', (0755 & ~ umask()));
define('FS_CHMOD_FILE', (0644 & ~ umask()));

 

Un exemple pour fournir setgid :

 

define('FS_CHMOD_DIR', (02755 & ~umask()));

 

Les constantes pour mettre à jour Wordpress dans le fichier wp-config.php

 

Vous devez définir quelques unes des constantes ci-dessous pour corriger vos problèmes de mise à jour de Wordpress.

Les principales raisons pour définir ces constantes sont :

 

  • Les hébergeurs webs avec une installation spéciale qui implique des Symlinks. Vous aurez peut-être besoin de définir les constantes liées au chemin d'accès  (FTP_BASE, FTP_CONTENT_DIR et FTP_PLUGIN_DIR). Souvent, la simple définition de la base sera suffisant.
  • Certaines installations PHP qui sont fournies avec une extension FTP de PHP qui est incompatible avec certains serveurs FTP. Dans ces cas rares, vous aurez besoin de définir FTP_METHOD en 'ftpsockets'.

Les suivantes sont des constantes valides pour les mises à jour de Wordpress :

  • FS_METHOD force la méthode du système de fichier. Ca doit être toujours "direct", "ssh2", "ftpext" ou "ftpsockets". En général, vous devez seulement le changer si vous rencontrez des problèmes de mise à jour. Si vous le changez et que cela ne résoud pas le problème, vous devez le supprimer. Dans la plupart des cas, l'option de mettre sur 'ftpsockets'  fonctionnera si la méthode de mise à jour automatique ne fonctionne pas.
    •   (Première préférence) "direct" force à utiliser des requêtes directes de fichier I/O depuis le PHP. Cela peut ouvrir des brèches de sécurité sur des hébergements web qui ne sont pas bien sécurisés. On le choisit automatiquement quand c'est approprié.
    • (Seconde préférence) "ssh2"  permet de forcer l'utilisation de l'extension SSH PHP si celle-ci est installée.
    • (Troisième Préférence) "ftpext" permet de forcer l'utilisation de l'extension FTP PHP pour l'accès FTP  
    • (Quatrième Préférence) "ftpsockets" utilise les classes de sockets PHP pour l'accès par FTP.
  • FTP_BASE est le chemin complet au répertoire d'installation "base"(ABSPATH) de Wordpress
  • FTP_CONTENT_DIR est le chemin complet au répertoire wp-content de l'installation de Wordpress
  • FTP_PLUGIN_DIR est le chemin complet au répertoire plugins de l'installation de Wordpress
  • FTP_PUBKEY est le chemin complet de votre clé publique SSH
  • FTP_PRIKEY est le chemin complet de votre clé privée SSH
  • FTP_USER est soit le nom d'utilisateur FTP ou SSH. C'est la même chose dans la plupart des cas, mais utilisez le bon réglage pour le type de mise à jour que vous voulez.
  • FTP_PASS est le mot de passe du nom d'utilisateur pour FTP_USER. Si vous utilisez une clé SSH d'authentification publique, vous pouvez passer cette option.
  • FTP_HOST est la combinaison du nom d'hôte et du numéro de port pour votre serveur FTP/SSH. Le numéro de port du FTP par défaut est 21 et celui du SSH est 22. Il n'est pas nécessaire de les spécifier.
  • FTP_SSL  Activé (True) pour les connexions SSL si c'est supporté par la sous-couche de transport. Ce n'est pas disponible pour tous les serveurs, mais uniquement pour les Secure FTP et non SSH SFTP.

Exemples de ces différentes constantes pour mettre à jour Wordpress :

define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/path/to/wordpress/');
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/');
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', 'ftp.example.org');
define('FTP_SSL', false);

 

Activer l'accès pour la mise à jour par SSH dans Wordpress

 

Pour effectuer à la mise à jour de Wordpress avec le SSH2, vous avez besoin d'installer l'extension pecl SSH2 . Pour installer cette librairie, vous avez d'entrer la commande suivante ou demander à votre hébergeur web de le faire :

pecl install ssh2

Après avoir installé cette extension, vous avez besoin de modifier votre fichier de configuration PHP pour qu'il charge automatiquement cette extension.

Pecl est fournit par le paquet Pear dans la plupart des distributions Linux. Pour installer pecl dans Redhat/Fedora/Centos, entrez la commande :

yum -y install php-pear

Pour installer pecl dans Debian ou Ubuntu :

apt-get install php-pear

On recommande d'utiliser une clé privée qui n'est pas protégée par une phrase. De nombreux utilisateurs ont rapportés que les clés privées protégées par une phrase ne fonctionnent pas correctement. Si vous décidez quand même de l'utiliser, vous aurez besoin d'entrer la phrase de passe pour la clé privé dans FTP_PASS ou l'entrer dans le champs Password pendant l'installation de la mise à jour.

 

Utiliser un Cron alternatif dans le fichier wp-config.php

 

Utilisez cette option, par exemple, si des articles planifiés ne sont pas publiés. Cette méthode alternative utilise une approche de redirection qui fait que le navigateur de l'utilisateur obtient une redirection quand le Cron a besoin d'être lancé pour qu'il puisse revenir immédiatement sur le site tandis que Cron est toujours lancé dans la précédente connexion. Cette méthode est problématique dans certains cas, c'est pourquoi, elle n'est pas mise par défaut.

define('ALTERNATE_WP_CRON', true);

 

Des constantes supplémentaires définies

 

Il existe des constantes supplémentaires qui peuvent être définies, mais on ne devrait pas les utiliser. Mais la définition des cookies est particulièrement utile quand vous avez une installation inhabituelle de nom de domaine.

define('COOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('home') . '/' ) );


define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) );


define('ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );


define('PLUGINS_COOKIE_PATH', preg_replace('|https?://[^/]+|i', '', WP_PLUGIN_URL)  );


define('TEMPLATEPATH', get_template_directory());


define('STYLESHEETPATH', get_stylesheet_directory());


define('DISABLE_WP_CRON', true);

 

 

Vider la corbeille de Wordpress avec le fichier wp-config.php (Empty Trash)

 

Depuis Wordpress 2.9, la constante Empty Trash contrôle le nombre de jours avant que Wordpress supprime définitivement les articles, les pages, les pièces jointes et les commentaires dans la corbeille. Le défaut est de 30 jours.

define('EMPTY_TRASH_DAYS', 30 ); 

Pour désactiver la corbeille dans Wordpress, mettre le nombre de jour sur zéro. Notez que Wordpress ne demandera pas une confirmation quand quelqu'un cliquera sur le lien Supprimer définitivement.

define('EMPTY_TRASH_DAYS', 0 ); 

 

Optimiser automatiquement la base de donnée de Wordpress avec le fichier wp-config.php

 

Depuis Wordpress 2.9, il existe une optimisation automatique de la base de donnée qui vous permet d'ajouter la définition suivante au fichier wp-config.php (uniquement quand c'est nécessaire) :

 

define('WP_ALLOW_REPAIR', true);

 

Le script est disponible dans {$your_site}/wp-admin/maint/repair.php

 

Note : Cette définition active la fonctionnalité. L'utilisateur n'a pas besoin d'être connecté dans Wordpress pour l'utiliser quand elle est active. C'est parce que son principal rôle est de réparer une base de donnée Wordpress corrompue où l'utilisateur n'arrive même pas à se connecter.

 

Ne pas mettre à jour les tables globales de Wordpress

 

Une définition DO_NOT_UPGRADE_GLOBAL_TABLES empêche les fonctions dbDelta() et de mise à jour d'effectuer des requêtes gourmandes en ressources sur les tables globales.

Les sites qui ont de grandes tables globales (particulièrement users et usermeta) comme les sites qui partagent les tables d'utilisateurs avec des installations bbPress ou d'autres modules, peut empêcher la procédure de mise à jour de modifier ces tables pendant la mise à jour en définissant DO_NOT_UPGRADE_GLOBAL_TABLES. Parce qu'un ALTER, DELETE ou un UPDATE illimité peut prendre beaucoup de temps, les grands sites veulent éviter de mettre à jour ces parties pour qu'ils puissent l'effectuer en mode manuel.

define('DO_NOT_UPGRADE_GLOBAL_TABLES', true);


 

Afficher toute les constantes définies dans Wordpress


Le PHP a une fonction qui retourne un tableau de variable qui retourne tous les constantes définies avec leurs valeurs :

print_r(@get_defined_constants());

 

Désactiver l'éditeur de thème et de plugin dans Wordpress avec le fichier wp-config.php

 

Parfois, vous voudrez désactiver l'éditeur de thème ou de plugin pour empêcher certains utilisateurs de modifier les fichiers sensibles. Leur désactivation fournit une couche supplémentaire de sécurité si un pirate arrive à pénétrer dans le compte d'un utilisateur.

 

define('DISALLOW_FILE_EDIT',true);

 

Désactiver la mise à jour des plugins, des thèmes et de Wordpress avec le fichier wp-config.php

 

Cela empêchera les utilisateurs de lancer la fonction de mise à jour des plugins, des thèmes et de Wordpress depuis le Tableau de bord. Régler cette constante désactive également l'éditeur de thème et de plugins :

 

define('DISALLOW_FILE_MODS',true);

 

Faire un double contrôle avant d'enregistrer le fichier wp-config.php

 

Assurez-vous de contrôler tous les espaces et les guillemets sur les valeurs que vous avez modifié et ne supprimez pas les simples guillemets. Avant d'enregistrer le fichier, assurez-vous que vous n'avez pas effacé les simples guillemets sur les valeurs des paramètres.

Assurez-vous qu'il n'y ait aucun espace après le tag de fermeture de PHP à la fin du fichier. La dernière chose dans le fichier doit être un ?> sans rien.

Enregistrez le fichier en s'assurant d’ajouter l'extension php à la fin, envoyez le fichier sur votre serveur web et vous êtes prêt à installer Wordpress !

 

Aucun commentaire:

Enregistrer un commentaire