3914
Commentaire: config apache pour les noms de fichiers non-ASCII
|
4493
il est important de repérer les requêtes lentes !
|
Texte supprimé. | Texte ajouté. |
Ligne 16: | Ligne 16: |
* créer le fichier `/etc/mysql/conf.d/local.cnf` suivant : {{{ |
* créer le fichier `/etc/mysql/conf.d/local.cnf` suivant : {{{ |
Ligne 24: | Ligne 23: |
default-character-set = utf8 | |
Ligne 30: | Ligne 28: |
language = /usr/share/mysql/french | # Corrige le tri des textes avec des accents collation-server = utf8_general_ci ##### avant Debian Wheezy : # language = /usr/share/mysql/french ##### depuis Debian Wheezy : lc-messages = fr_FR |
Ligne 35: | Ligne 39: |
# Les logs # ATTENTION : Be aware that this log type is a performance killer. #general_log_file = /var/log/mysql/mysql.log #general_log = 1 ##### avant Debian Wheezy : |
|
Ligne 37: | Ligne 47: |
##### depuis Debian Wheezy : slow-query-log = TRUE slow_query_log_file = /var/log/mysql/mysql-slow.log log_queries_not_using_indexes |
|
Ligne 38: | Ligne 52: |
# max_connections = 500 | max_connections = 500 |
Ligne 50: | Ligne 64: |
* relancer ensuite le service MySQL avec : {{{ |
* relancer ensuite le service MySQL avec : {{{ |
Ligne 57: | Ligne 70: |
* activer le module MIME si ce n'est déjà fait : {{{ |
* activer le module MIME si ce n'est déjà fait : {{{ |
Ligne 62: | Ligne 74: |
* directive globale à ajouter dans `/etc/apache2/conf.d/charset` : {{{ |
* directive globale à ajouter dans `/etc/apache2/conf.d/charset` : {{{ |
Ligne 67: | Ligne 78: |
* vérifier que vous avez cette option (au moins) dans `/etc/apache2/mods-available/autoindex.conf`, sinon l'y ajouter : {{{ |
* vérifier que vous avez cette option (au moins) dans `/etc/apache2/mods-available/autoindex.conf`, sinon l'y ajouter : {{{ |
Ligne 72: | Ligne 82: |
* vérifier la configuration puis relancer le service Apache avec : {{{ |
* vérifier la configuration puis relancer le service Apache avec : {{{ |
Ligne 78: | Ligne 87: |
* "ensure that the environment used to start Apache is configured to accept non-ASCII file names" http://docs.djangoproject.com/en/dev/howto/deployment/modpython/#if-you-get-a-unicodeencodeerror {{{ # ajouter dans le fichier /etc/apache2/envvars ... export LC_ALL='fr_CA.UTF-8' }}} |
|
Ligne 87: | Ligne 89: |
* directive locale à ajouter au début de chaque fichier : {{{#!python |
* directive locale à ajouter au début de chaque fichier : {{{#!python |
Ligne 93: | Ligne 94: |
* [[http://docs.djangoproject.com/en/dev/howto/deployment/modpython/#if-you-get-a-unicodeencodeerror|le support des noms de fichiers avec caractères non-ASCII]] : * avec [[Debian/Lenny]], ajouter la ligne suivante dans `/etc/apache2/envvars` : {{{ export LC_ALL='fr_FR.UTF-8' }}} * avec [[Debian/Squeeze]], dé-commenter la ligne suivante dans `/etc/apache2/envvars` : {{{ . /etc/default/locale }}} |
|
Ligne 95: | Ligne 104: |
* directive globale à ajouter dans `/etc/php4/apache2/php.ini` : {{{ |
* (PHP4 uniquement) directive globale à ajouter dans `/etc/php4/apache2/php.ini` : {{{ |
Ligne 99: | Ligne 107: |
* 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 : {{{ |
* 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 : {{{ |
Ligne 111: | Ligne 118: |
* vérifier la configuration puis relancer le service Apache avec : {{{ |
* vérifier la configuration puis relancer le service Apache avec : {{{ |
Ligne 119: | Ligne 125: |
* directive globale à ajouter dans la section `*** Presentation ***` : {{{ |
* directive globale à ajouter dans la section `*** Presentation ***` : {{{ |
Ligne 127: | Ligne 132: |
* convertir le fichier de traduction en français de `ISO-8859-1` vers `UTF-8` : {{{ |
* convertir le fichier de traduction en français de `ISO-8859-1` vers `UTF-8` : {{{ |
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] # l'option suivante semble gêner quelques outils, comme mysqlbinlog #default-character-set = utf8 [mysqld] # par défaut du côté serveur character-set-server = utf8 # à exécuter pour tous les clients (indispensable pour PHP 4, au moins) init-connect = 'SET NAMES utf8' # Corrige le tri des textes avec des accents collation-server = utf8_general_ci ##### avant Debian Wheezy : # language = /usr/share/mysql/french ##### depuis Debian Wheezy : lc-messages = fr_FR bind-address = 127.0.0.1 #bind-address = 0.0.0.0 # Les logs # ATTENTION : Be aware that this log type is a performance killer. #general_log_file = /var/log/mysql/mysql.log #general_log = 1 ##### avant Debian Wheezy : # log_slow_queries = /var/log/mysql/mysql-slow.log # log_bin = /var/log/mysql/mysql-bin.log ##### depuis Debian Wheezy : slow-query-log = TRUE slow_query_log_file = /var/log/mysql/mysql-slow.log log_queries_not_using_indexes max_connections = 500 [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
relancer ensuite le service MySQL avec :
$ sudo invoke-rc.d mysql restart
Apache ≥ 2.0
activer le module MIME si ce n'est déjà fait :
sudo a2enmod mime
directive globale à ajouter dans /etc/apache2/conf.d/charset :
AddDefaultCharset UTF-8
vérifier que vous avez cette option (au moins) dans /etc/apache2/mods-available/autoindex.conf, sinon l'y ajouter :
IndexOptions Charset=UTF-8
vérifier la configuration puis relancer le service Apache avec :
$ sudo apache2ctl configtest $ sudo apache2ctl graceful
Python
directive locale à ajouter au début de chaque fichier :
le support des noms de fichiers avec caractères non-ASCII :
avec Debian/Lenny, ajouter la ligne suivante dans /etc/apache2/envvars :
export LC_ALL='fr_FR.UTF-8'
avec Debian/Squeeze, dé-commenter la ligne suivante dans /etc/apache2/envvars :
. /etc/default/locale
PHP
(PHP4 uniquement) 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>
vérifier la configuration puis relancer le service Apache avec :
$ sudo apache2ctl configtest $ sudo apache2ctl graceful
SmokePing
directive globale à ajouter dans la section *** Presentation *** :
template = /etc/smokeping/basepage.html charset = utf-8
OCS-Inventory
convertir le fichier de traduction en français de ISO-8859-1 vers UTF-8 :
mv languages/french.txt languages/french.txt.orig iconv --from=ISO-8859-1 --to=UTF-8 languages/french.txt.orig > languages/french.txt sed -i '/^0 /s/iso-8859-1/utf-8/' languages/french.txt