2012-09-06 39 views
2

我在web.xml中啓用了CGI模塊,並在context.xml中添加了previleged = true。將cgi文件放置在我的應用程序的WEB-INF/cgi /文件夾中。當試圖訪問下面的URL時,我得到「錯誤= 13,權限被拒絕」的錯誤。 (http:// localhost:8080/cute/cgi-bin/cutecgi.cgi)在Tomcat6的linux下運行C編譯.cgi文件時出現「error = 13,Permission denied」錯誤

致命的: サーブレット cgi のServlet.service()が例外を投げました 
    java.io.IOException: Cannot run program "/var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi/cutecgi.cgi" (in directory "/var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi"): java.io.IOException: error=13, Permission denied 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
    at java.lang.Runtime.exec(Runtime.java:593) 
    at java.lang.Runtime.exec(Runtime.java:431) 
    at org.apache.catalina.servlets.CGIServlet$CGIRunner.run(CGIServlet.java:1649) 
    at org.apache.catalina.servlets.CGIServlet.doGet(CGIServlet.java:592) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:865) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) 
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555) 
    at java.lang.Thread.run(Thread.java:662) 
    Caused by: java.io.IOException: java.io.IOException: error=13, Permission denied 
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:65) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) 
    ... 21 more 
. 

回答

3

這看起來像是CGI腳本的文件權限問題。 Tomcat服務器正在運行的用戶無法訪問該文件,或者該文件本身對該用戶沒有執行權限。

嘗試運行這個命令來查看文件的權限:

ls -l /var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi/cutecgi.cgi 
+0

這是我得到了運行命令的結果-rw-RW-R--。 1 user001 user001 21380 Sep 6 09:41 /var/lib/tomcat6/webapps/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cute/WEB-INF/cgi/cutecgi.cgi – Rodex

+0

是的,謝謝你的信息....我將chmod更改爲755 for cutecgi.cgi.I現在就工作了。謝謝@codebox – Rodex

+0

cutecgi.cgi文件不可執行,這就解釋了錯誤。您需要使用chmod命令添加執行權限,例如chmod 755 cutecgi.cgi,但要小心只將權限授予運行tomcat服務器的用戶,否則可能會導致安全問題 – codebox

相關問題