2016-06-14 8 views
0

meine Konfiguration wie die folgenden:Kater nicht cgi ausführen, und es zeigt Inhalte als Text

<servlet> 
<servlet-name>cgi</servlet-name> 
servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class> 
<init-param> 
<param-name>debug</param-name> 
<param-value>1</param-value> 
</init-param> 
<init-param> 
<param-name>cgiPathPrefix</param-name> 
<param-value>WEB-INF/cgi</param-value> 
</init-param> 
<init-param> 
<param-name>executable</param-name> 
<param-value></param-value> 
</init-param> 
<param-name>passShellEnvironment</param-name> 
<param-value>true</param-value> 
<load-on-startup>5</load-on-startup> 
</servlet> 



<servlet-mapping> 
<servlet-name>cgi</servlet-name> 
<url-pattern>/cgi-bin/*</url-pattern> 
</servlet-mapping> 

auch hinzufügen

aber wenn ich URL meiner cgi zugreifen, wird es Inhalte als Text anzeigen , führt nicht Befehl in CGI, können Sie bitte darauf hinweisen, was passiert?

+0

Zeigen Sie uns die URL, die Sie verwenden. –

+0

http: // localhost: 8080/test/cgi/home.cgi – Colin

+0

#/bin/bash echo "Content-type: text/html" echo "" echo "" echo „hallo WORLD " echo" " echo" " – Colin

Antwort

0

HTTP-Antwort in bash. Bitte beachten Sie die zweite Zeile. Es ist wichtig, zwischen HTTP-Headern und Payload zu unterscheiden.

#!/bin/bash 

echo "Content-type: text/html" 
echo "" 
echo "<html><head><title>Hello World</title></head>" 
echo "<body>" 
echo "Hello World!" 
echo "</body></html>" 
#!/bin/bash 

echo "Content-type: text/html" 
echo "" 
echo "<html><head><title>Hello World</title></head>" 
echo "<body>" 
echo "Hello World!" 
echo "</body></html>" 
+0

zu erstellen Danke für Ihre Hilfe, aber es scheint, dass es immer noch nicht funktioniert – Colin