6 votes

Apache 2.4 Format d'en-tête non reconnu %

En utilisant Apache 2.4 et en suivant les exemples ici https://httpd.apache.org/docs/2.4/expr.html

Voici mon code

    Header set foo-checksum "expr=%{md5:foo}"

Je suis juste en train de jouer pour le moment mais dès que j'utilise

    Header set foo-checksum "expr=%{md5:foo}"

Comme dans leur exemple - j'obtiens

AH00526: Erreur de syntaxe à la ligne 130 de /etc/httpd/conf/httpd.conf :
httpd[19459]: Format d'en-tête non reconnu %
httpd.service: processus principal achevé, code=exited, statut=1/FAILURE

au démarrage d'Apache. Des idées? J'ai également essayé à l'extérieur d'une expression et ça donne la même erreur

D'autres expressions fonctionnent.

7voto

MoeBrowne Points 336

Vous devez utiliser Apache v2.4.10 ou ultérieur et comme Ubuntu 14.04 LTS est livré avec v2.4.7, c'est probablement ce que vous utilisez. La documentation mentionne brièvement cela au début des directives Header :

Compatibilité : SetIfEmpty disponible à partir de 2.4.7, expr=value disponible à partir de 2.4.10

J'ai démarré quelques serveurs pour confirmer que cela fonctionne

Apache v2.4.12 :

root@ubuntu-server:~# lsb_release -a
No modules LSB are available.
Identifiant du distributeur : Ubuntu
Description :    Ubuntu 15.10
Version :    15.10
Nom de code :   wily

root@ubuntu-server:~# cat /etc/apache2/sites-enabled/000-default.conf 

Header set foo-checksum "expr=%{md5:foo}"

root@ubuntu-server:~# apachectl -v
Version du serveur : Apache/2.4.12 (Ubuntu)
Serveur construit :   24 juil. 2015 15:59:00

root@ubuntu-server:~# service apache2 reload

root@ubuntu-server:~# curl -I localhost
HTTP/1.1 200 OK
Date: lun., 07 mar. 2016 21:15:38 GMT
Serveur: Apache/2.4.12 (Ubuntu)
Dernière modification : lun., 07 mar. 2016 20:57:04 GMT
ETag: "2c39-52d7bb502f118"
Accept-Range: bytes
Longueur du contenu : 11321
Vary: Accept-Encoding
foo-checksum: acbd18db4cc2f85cedef654fccc4a4d8
Type de contenu: text/html

mais pas sur Apache v2.4.7 :

root@ubuntu-server:~# lsb_release -a
Aucun module LSB disponible.
Identifiant du distributeur : Ubuntu
Description :    Ubuntu 14.04.4 LTS
Version :    14.04
Nom de code :   trusty

root@ubuntu-server:~# cat /etc/apache2/sites-enabled/000-default.conf 

Header set foo-checksum "expr=%{md5:foo}"

root@ubuntu-server:~# apachectl -v
Version du serveur : Apache/2.4.7 (Ubuntu)
Serveur construit :   14 janv. 2016 17:45:23

root@ubuntu-server:~# service apache2 reload
 * Rechargement du serveur web apache2                                                                                                                   * 
 * Le test de configuration apache2 a échoué. Aucune action n'est effectuée.
La sortie du test de configuration était :
AH00526: Erreur de syntaxe à la ligne 2 de /etc/apache2/sites-enabled/000-default.conf :
Format d'en-tête non reconnu %
L'action 'configtest' a échoué.
Le journal d'erreur Apache peut contenir plus d'informations.

0 votes

Nous sommes sur httpd 2.4.48 (CentOS 7) et nous obtenons toujours cette erreur.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X