2016-02-10 1 views
0

J'ai le problème suivant: Lorsque je veux exécuter un script Lua non compilé dans Apache, je rajoute simplement #!/usr/share/lua au début du fichier, jusqu'à présent, tout fonctionne correctement. Mais si je veux le compiler avec luac pour le faire tourner un peu plus vite, je ne peux pas ajouter de texte au fichier, car il s'agit de données binaires compilées (qui doivent encore être interprétées par l'interpréteur Lua, et ne peuvent pas être exécuté seul).Puis-je configurer l'interpréteur de script dans Apache, par opposition au début du fichier?

Est-il possible de dire Apache d'avoir toujours /usr/share/lua interpréter les fichiers avec le .lua (ou .luac pour les marquer comme compilé) l'extension?

Répondre

1

Je ne suis pas au courant d'un moyen de faire cela en tant que script CGI, car la spécification CGI exige essentiellement que le shell puisse comprendre comment exécuter un fichier basé sur le hashbang au début.

Toutefois, vous pouvez écrire un gestionnaire CGI simple dans Lua qui exécute un loadfile() sur le fichier .luac puis l'exécute. Vous pouvez définir .luac fichiers à traiter par ce script avec les directives suivantes dans un fichier .htaccess ou httpd.conf:

# Files of a particular file extension 
AddHandler my-file-type .xyz 
Action my-file-type /cgi-bin/program.cgi 

Dans cet exemple from the docs, program.cgi serait passé le nom du fichier demandé par l'URL pour que vous puissiez analyser et exécutez ce fichier.