Je reçois cette erreur dans mon journal Apache2:
[Tue Apr 06 09:00:56 2010] [erreur] La demande [client A.B.C.D] a échoué: URI trop long (supérieur à 8190)
Quel paramètre puis-je modifier pour augmenter cette limite?
Vous devez définir DEFAULT_LIMIT_REQUEST_LINE
constante à l'intérieur du code source d'Apache, et recompilez Apache. Cette constante est dans le httpd.h
En tête de fichier.
Après cela, vous pouvez réduire la limite de demandes à l'aide de la directive LimitRequestLine
.
Voir http://httpd.Apache.org/docs/2.0/mod/core.html#limitrequestline pour plus d'informations.
La meilleure réponse est "ne fais pas ça". Voir http://www.boutell.com/newfaq/misc/urllength.html pour une explication de pourquoi.
Si vous devez transmettre autant de données, utilisez POST et non GET.
Un hack rapide pour le faire fonctionner vous suffit d'éditer le fichier Apache2.conf et d'ajouter la ligne:
LimitRequestLine 100000
Redémarrez Apache et tout va bien. Bien que vous deviez changer le code pour utiliser POST au lieu de GET et supprimez la ligne dès que vous le pouvez.
Ouvert /etc/Apache2/Apache2.conf
et insérer sous AccessFileName .htaccess
:
LimitRequestLine 1000000
LimitRequestFieldSize 1000000
Augmentez les limites Apache pour ligne de demande de limite et taille du champ de demande de limite et enregistrez-la.
Étape suivante, redémarrez Apache à l'aide de Sudo service Apache restart
J'espère que cela résoudra le problème.
Si vous utilisez des hôtes virtuels avec Apache, vous devez définir LimitRequestLine
et LimitRequestFieldSize
dans la première définition d'hôte virtuel avec un port correspondant. Pour Ubuntu/Debian, c'est dans /etc/Apache2/sites-available/000-default.conf
.
Cela ne fonctionne pas si vous définissez ces paramètres dans /etc/Apache2/Apache2.conf
.