1603
Commentaire: premier jet...
|
2187
+ exemple de gestion de migration
|
Texte supprimé. | Texte ajouté. |
Ligne 6: | Ligne 6: |
''...([:JeanChristopheAndré/ÀFaire:reste à écrire])...'' | ''...([[JeanChristopheAndré/ÀFaire|reste à écrire]])...'' |
Ligne 15: | Ligne 15: |
* ajouter les lignes suivantes dans les sections précisées de `/etc/mysql/my.cnf` : | * créer le fichier `/etc/mysql/conf.d/local.cnf` suivant : |
Ligne 17: | Ligne 17: |
[client] default-character-set = utf8 |
|
Ligne 20: | Ligne 23: |
# à exécuter pour tous les clients (indispensable pour PHP !) | character-set-server = utf8 # à exécuter pour tous les clients (indispensable pour PHP 4, au moins) |
Ligne 22: | Ligne 27: |
language = /usr/share/mysql/french bind-address = 127.0.0.1 # log_slow_queries = /var/log/mysql/mysql-slow.log [mysqldump] # est-ce vraiment utile ? *** À TESTER *** default-character-set = utf8 |
|
Ligne 27: | Ligne 40: |
[mysqldump] # est-ce vraiment utile ? *** À TESTER *** default-character-set = utf8 |
|
Ligne 39: | Ligne 49: |
AddDefaultCharset UTF-8 | AddDefaultCharset utf-8 |
Ligne 47: | Ligne 57: |
* on a parfois besoin de ne l'activer que pour une seule arborescence, par exemple le temps d'une migration, auquel cas on utilisera une configuration Apache de ce genre : {{{ <Location /branche-latin1/> AddDefaultCharset iso-8859-1 php_value default_charset 'iso-8859-1' </Location> <Location /branche-unicode/> AddDefaultCharset utf-8 php_value default_charset 'utf-8' </Location> }}} |
Ce document présente les configurations à effectuer pour être compatible avec Unicode.
Attention : passer à Unicode ne se fait pas sur un coup de tête ! Il y a des implications à presque tous les niveaux et une mauvaise mise en place entraînerait au mieux des accents mal affichés et au pire des corruptions de données (typiquement suite à des mixages d'encodages) !
Stratégie
...(reste à écrire)...
Configuration
Attention : l'ordre est important. En particulier : il faut installer les locales avant tout.
Environnement système
installer le paquet locales et choisir une locales UTF-8 par défaut (typiquement fr_FR.UTF-8).
MySQL ≥ 5.0
créer le fichier /etc/mysql/conf.d/local.cnf suivant :
[client] default-character-set = utf8 [mysqld] # par défaut du côté serveur default-character-set = utf8 character-set-server = utf8 # à exécuter pour tous les clients (indispensable pour PHP 4, au moins) init-connect = 'SET NAMES utf8' language = /usr/share/mysql/french bind-address = 127.0.0.1 # log_slow_queries = /var/log/mysql/mysql-slow.log [mysqldump] # est-ce vraiment utile ? *** À TESTER *** default-character-set = utf8 [mysql] # par défaut du côté client (pour root, qui ne subit pas le init-connect) default-character-set = utf8
Apache ≥ 2.0
- activer le module MIME si ce n'est déjà fait :
sudo a2enmod mime
directive globale à ajouter, par exemple, dans /etc/apache2/conf.d/charset :
AddDefaultCharset utf-8
PHP
directive globale à ajouter dans /etc/php4/apache2/php.ini :
default_charset = "utf-8"
- on a parfois besoin de ne l'activer que pour une seule arborescence, par exemple le temps d'une migration, auquel cas on utilisera une configuration Apache de ce genre :
<Location /branche-latin1/> AddDefaultCharset iso-8859-1 php_value default_charset 'iso-8859-1' </Location> <Location /branche-unicode/> AddDefaultCharset utf-8 php_value default_charset 'utf-8' </Location>