Introduction

Cette page étudie les différents paramètres du fichier wp-config.php. La version de référence est WPmu 1.2.1

Paramètres de configuration

DB_NAME, DB_USER, DB_PASSWORD, DB_HOST

Ce sont les variables habituelles fournies par votre FAI pour vous connecter à la base de données MySQL. DB_NAME est le nom de la base de données. DB_USER est le login pour la base de données. DB_PASSWORD est le mot de passe associé au login. DB_HOST est généralement laissé à localhost pour des raisons de sécurité.

WP_LANG

Le langage par défaut est l'anglais. WordPress utilise la librairie gettext pour fournir les traductions. Ce système a le grand désavantage de devoir:

  • effectuer la traduction à part dans un fichier .pot pour générer un fichier .po
  • et de compiler le fichier .po en un fichier .mo
  • enfin d'installer ce fichier .mo dans le bon répertoire /languages/ pour qu'il soit pris en compte

Je ne comprends pas que ce système puisse fédérer autant de monde! C'est lourd.

$base

Cette variable donne le sous-dossier dans lequel est installé WordPressMu (ex: http://mon.domaine.com/blogs/ donnera $base='/blogs/';). Pourtant, il est officiellement conseillé d'installer WPmu dans le répertoie racine. En tout cas, il y a un test d'installation sur la valeur initiale 'BASE'; ce qui interdit un répertoire de ce nom!

WP_USE_MULTIPLE_DB

Par défaut, ce paramètre vaut 'false', l'autre valeur peut être 'true'. Sans modification, WPmu utilise une seule database et crée un ensemble de nouvelles tables pour chaque nouveau blog. Pour un nombre de blogs de l'ordre de grandeur 100, il n'y a pas de problème: on a a peu près 10 tables par blog; ce qui donne 1.000 tables dans une database. MySQL le supporte bien.

Par contre, pour passer à un nombre autour de 1.000 blogs, cela devient problématique. Les databases MySQL sont en MyISAM par défaut, ce qui veut dire que une database est un répertoire et une table donne 3 fichiers (.frm .MYD .MYI). On se retrouve alors, pour 1.000 blogs, avec un répertoire avec en gros 30.000 fichiers ! Il faut faire attention à la limite système Linux pour le nombre de fichiers dans un répertoire. Apparemment, à partir de 10.000 fichiers, les performances peuvent prendre un coup de lenteur!

Un extrait de http://en.wikipedia.org/wiki/Ext2 :

The reason for certain limits of the ext2-file system can be the file format of the data medium on one hand and the operating system's kernel on the other hand. 
Mostly these factors will be determined once when the file system is built. 
They basically depend on the block size and the ratio of the number of blocks and inodes. 
Block sizes of 8 KB are only possible on alpha-architectures by default. 
There are also many userspace-programs with a lack of being able to handle files with a size above 2 GB. 
The limit of sublevel-directories is about 32768. If the number of files in a directory exceeds 10000 to 15000 files, the user will normally be warned that operations can last for a long time. The actual limit of the number of files in a directory is very theoretical, because before reaching the limit of 1.3 × 1020 files it will become hard to find new well-defined file names.

Le passage en 10.000 blogs est clairement hors de portée de la version 'officielle' de WPmu et nécessite des modifications pour arriver à gérer autant de blogs.

./wp-includes/wp-db.php:49:             if( defined( "WP_USE_MULTIPLE_DB" ) && CONSTANT( "WP_USE_MULTIPLE_DB" ) == true )
./wp-includes/wp-db.php:223:            if( defined( "WP_USE_MULTIPLE_DB" ) && CONSTANT( "WP_USE_MULTIPLE_DB" ) == true ) {
./wp-config-sample.php:24:define( "WP_USE_MULTIPLE_DB", false );
./wp-config.php:24:define( "WP_USE_MULTIPLE_DB", false );

Pour aller plus en détails dans le fichier wp-db.php wp-db.php

DB_COLLATE et DB_CHARSET

Ces paramètre sont utilisés en interne de la Couche d'Accès aux Données (CAD). Il sont utilisés seulement dans les instructions de upgrade-schema.php avec une variable du type DB_CHARSET.DB_COLLATE

./wp-includes/wp-db.php:60:             if ( defined('DB_COLLATE') )
./wp-includes/wp-db.php:61:                     $this->collate = DB_COLLATE;
./wp-config-sample.php:8:define('DB_COLLATE', '');
./wp-config.php:8:define('DB_COLLATE', '');
./wp-includes/wp-db.php:57:             if ( defined('DB_CHARSET') )
./wp-includes/wp-db.php:58:                     $this->charset = DB_CHARSET;
./wp-config-sample.php:7:define('DB_CHARSET', 'utf8');
./wp-config.php:7:define('DB_CHARSET', 'utf8');
./wp-includes/wp-db.php:39:     var $collate;
./wp-includes/wp-db.php:61:                     $this->collate = DB_COLLATE;
./wp-admin/upgrade-schema.php:5:$charset_collate = '';
./wp-admin/upgrade-schema.php:9:                $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
./wp-admin/upgrade-schema.php:10:       if ( ! empty($wpdb->collate) )
./wp-admin/upgrade-schema.php:11:               $charset_collate .= " COLLATE $wpdb->collate";
./wp-admin/upgrade-schema.php:26:) $charset_collate;
./wp-admin/upgrade-schema.php:46:) $charset_collate;
./wp-admin/upgrade-schema.php:53:) $charset_collate;
./wp-admin/upgrade-schema.php:72:) $charset_collate;
./wp-admin/upgrade-schema.php:87:) $charset_collate;
./wp-admin/upgrade-schema.php:94:) $charset_collate;
./wp-admin/upgrade-schema.php:103:) $charset_collate;
./wp-admin/upgrade-schema.php:132:) $charset_collate;
./wp-admin/upgrade-schema.php:148:) $charset_collate;
./wp-admin/upgrade-schema.php:157:) $charset_collate;

VHOST

VHOST a soit la valeur 'yes' ou 'no' Quand VHOST est défini à 'yes', WPmu est installé en mode sous-domaine, c'est à dire http://monblog.portail.com Quand VHOST est défini à 'no', WPmu est installé en mode sous-dossiers, c'est à dire http://portail.com/monblog/

./wp-includes/wpmu-functions.php:86:    if( defined( "VHOST" ) && constant( "VHOST" ) == 'yes' ) {
./wp-includes/wpmu-functions.php:96:    if( defined( "VHOST" ) && constant( "VHOST" ) == 'yes' ) {
./wp-includes/wpmu-functions.php:981:   if( constant( "VHOST" ) == 'yes' ) {
./wp-includes/wpmu-functions.php:1050:  if( constant( "VHOST" ) == 'no' ) {
./wp-admin/wpmu-blogs.php:375:          if( constant( "VHOST" ) == 'yes' ) {
./wp-admin/wpmu-blogs.php:529:if( constant( "VHOST" ) == 'yes' ) {
./wp-admin/wpmu-edit.php:119:                   if( constant( "VHOST" ) == 'yes' ) {
./wp-signup.php:38:     if( constant( "VHOST" ) == 'no' )
./wp-signup.php:46:     if( constant( "VHOST" ) == 'no' ) {
./wp-signup.php:53:             if( constant( "VHOST" ) == 'no' ) {
./wp-signup.php:380:                    if( constant( "VHOST" ) == 'no' )
./wp-config-sample.php:9:define('VHOST', 'VHOSTSETTING');
./wp-config.php:9:define('VHOST', 'no');
./index-install.php:328:                        case "define('VHOST',":
./index-install.php:329:                                fwrite($handle, str_replace("VHOSTSETTING", $vhost, $line));
./index-install.php:345:        define( 'VHOST', $vhost );
./wpmu-settings.php:29: if( constant( 'VHOST' ) == 'yes' ) {
./wpmu-settings.php:82:if( constant( 'VHOST' ) == 'yes' ) {

Code

<?php
// ** MySQL settings ** //
define('DB_NAME', 'wordpress');    // The name of the database
define('DB_USER', 'username');     // Your MySQL username
define('DB_PASSWORD', 'password'); // ...and password
define('DB_HOST', 'localhost');    // 99% chance you won't need to change this value
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('VHOST', 'VHOSTSETTING'); 
$base = 'BASE';
 
// double check $base
if( $base == 'BASE' )
	die( 'Problem in wp-config.php - $base is set to BASE when it should be the path like "/" or "/blogs/"! Please fix it!' );
// You can have multiple installations in one database if you give each a unique prefix
$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!
 
// Change this to localize WordPress.  A corresponding MO file for the
// chosen language must be installed to wp-includes/languages.
// For example, install de.mo to wp-includes/languages and set WPLANG to 'de'
// to enable German language support.
define ('WPLANG', '');
 
define( "WP_USE_MULTIPLE_DB", false );
 
/* That's all, stop editing! Happy blogging. */
 
define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');
?>
 
wordpressmu/wp-config.php.txt · Dernière modification: 2011/06/23 13:35 par 90.2.58.195 microWebAgency.com
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki