web-dev-qa-db-fra.com

erreur de violation des règles suexec pour un fichier javascript

J'ai déployé une application Web sur l'hébergement partagé DreamHost.

  • Pendant les tests, j'ai obtenu le message "500 Internal Server Error" sur l'un des fichiers JavaScript appelé jquery.timeago.pl.js (configuration locale du plug-in jQuery timeago).
  • L'entrée Apache error.log indiquait "violation de la politique suexec".
  • PHP est exécuté par FastCGI.

En cherchant un indice, j'ai découvert que certaines personnes avaient des problèmes similaires liés aux scripts Perl sur DreamHost. Rien en ce qui concerne mon problème, mais j'ai supprimé .pl du nom du fichier et cela a fonctionné!

Maintenant, la question est la suivante: existe-t-il un autre moyen d'éviter cette "violation de la politique suexec"? Ma solution a fonctionné et tout va bien, mais adapter les noms de fichiers en raison de la configuration de l'environnement n'est certainement pas une bonne idée.

3
Taz

Malheureusement, dans ce genre de situation, vous ne pouvez rien faire pour modifier la stratégie ou les paramètres. D'après vos commentaires dans les commentaires sur la suppression de .pl du nom de fichier, le filtre suexec vérifie si les noms de fichiers vérifient l'existence d'extensions de script Perl (Perl exécute des fichiers avec les extensions .pl). mais pour une raison quelconque, la vérification n'est pas suffisante pour identifier un fichier de plug-in jquery à partir d'un fichier Perl réel. Hormis le fait de supprimer le .pl du nom du fichier et de refactoriser toutes les références de code à ce fichier, vous ne pouvez pas faire grand-chose autrement.

Cela dit, il ne devrait pas y avoir de problème à renommer le fichier de manière générale lors de la vérification de l’existence d’un plugin jQuery. Une vérification est effectuée pour voir si le plugin est attaché sous jQuery et n’est pas basé sur si un fichier javascript a été utilisé. ajouté au DOM en tant que nom de fichier peut être n'importe quoi.

1
Chris Rutherfurd