Qué hacer para que en Tomcat 6 funcionen CGI’s de ficheros ejecutables en Linux

Instalé el Tomcat 6 y no funcionaban los CGI’s así que no podía probar el juego de damas de Jacobo, programado en C. Para hacer que Tomcat 6 ejecute ficheros (que no sean Perl, que es la configuración por defecto), hay que hacer:

  • Modificar $CATALINA_HOME/conf/context.xml y en el tag <Context> poner <Context privileged=”true”> para que se pueda cargar la clase encargada de ejecutar los CGI’s, que ahora no es un .jar independiente, sino que viene embebido en catalina.jar (parece ser… es lo que he leído).
  • Modificar $CATALINA_HOME/conf/web.xml :
    • Descomentar <servlet>…</servlet> relacionado con el cgi; es el tag contenedor de <servlet-name>cgi</servlet-name>
    • Fijarse en el valor relacionado con <param-name>cgiPathPrefix</param-name> , en mi caso era WEB-INF/cgi , pero lo cambié a WEB-INF/cgi-bin porque me gusta más. Es el directorio donde pondremos los ejecutables, concretamente, para mí: $CATALINA_HOME/webapps/ROOT/WEB-INF/cgi-bin
    • Añadir el parámetro:
      <init-param>
      <param-name>executable</param-name>
      <param-value></param-value>
      </init-param>

      De esta manera, conseguiremos que se ejecute el ejecutable. Si se pone bash o sh a mí no me funciona, y con esto sí… tengo mis teorías, pero dan igual ;)
    • Descomentar el bloque del mapeado del servlet relacionado con los CGI’s:
      <servlet-mapping>
      <servlet-name>cgi</servlet-name>
      <url-pattern>/cgi-bin/*</url-pattern>
      </servlet-mapping>
  • Meter los CGI’s en $CATALINA_HOME/webapps/ROOT/WEB-INF/cgi (o cgi-bin si se cambia el nombre, como yo).
  • Recargar el Tomcat

Tras esto, se ejecutarán los ficheros cuando se acceda a la dirección http://localhost:8080/cgi/ejecutable (o el puerto que esté establecido)

2 thoughts on “Qué hacer para que en Tomcat 6 funcionen CGI’s de ficheros ejecutables en Linux

  1. Oye, ¿y no sería más práctico arrancar un Apache o un webserver de estos pequeñitos (como tHTTPd) en lugar de matarse a configurar el Tomcat?

    Un saludo!

  2. Hola!
    Esto me recuerda un pequeño servidor que me pasaste que ponía a funcionar en la FIC… ;)
    Aproveché a poner el Tomcat porque así me sirve para Integración de Sistemas el año que viene, y porque también me sirve para probar cosas en JSP (si tengo tiempo de hacer algo), o cualquier otra cosa :)… y de paso aprender un poco cómo va lo de la configuración de Tomcat. Apache creo que se configura de manera parecida… ¿no?

Leave a Reply

Your email address will not be published.