Perl/FastCGI Probs - MIME type [€¤] for suffix '.fpl'...

#1
Hi,

After running a website for the past couple of years on Enterprise Linux 3.x with apache 1.x, perl and fastcgi we have recently upgraded to ES4 which uses apache 2.x. We are now experiencing 'problems' with fastcgi and apache 2.x thus we are looking for a reasonable alternative.

I have recently installed LiteSpeed on my server (as non-root) and bound it to port :8088. Static content and normal perl/cgi's work fine. I am running into difficulty attempting to get perl/fastcgi working.

I keep getting a very strange MIME type error as follows:


2006-02-08 16:38:37.007 [DEBUG] [*] New connection from 24.154.239.130:1341.
2006-02-08 16:38:37.007 [DEBUG] [*] 1 connections accepted!
2006-02-08 16:38:37.012 [DEBUG] [24.154.239.130:1341-0] HttpIOLink::handleEvents() events=1!
2006-02-08 16:38:37.012 [DEBUG] [24.154.239.130:1341-0] HttpConnection::eek:nReadEx(), state: 0!
2006-02-08 16:38:37.012 [DEBUG] [24.154.239.130:1341-0] readToHeaderBuf().
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0] Read from client: 279
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0] read 279 bytes to header buffer
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0] processHeader() return 0, header state: 3.
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0] readToHeaderBuf() return 0.
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] New request:
Method=[GET], URI=[/helloworld.fpl],
QueryString=[]
Content Length=0
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] Find context with URI: [/], location: [/home/foo/www/]
2006-02-08 16:38:37.013 [ERROR] [24.154.239.130:1341-0#LiteSpeed] MIME type [€¤] for suffix '.fpl' does not allow serving as static file, access denied!
2006-02-08 16:38:37.013 [INFO] [24.154.239.130:1341-0#LiteSpeed] Content len: 0, Request line:
GET /helloworld.fpl?
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] processContextPath() return 24
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] processNewReq() return 24.
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] HttpConnection::sendHttpError(),code=403 Forbidden
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] HttpConnection::flush()!
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] Written to client: 572
2006-02-08 16:38:37.013 [DEBUG] [24.154.239.130:1341-0#LiteSpeed] HttpConnection::nextRequest()!
2006-02-08 16:38:41.923 [DEBUG] [24.154.239.130:1341-1] Keep-alive timeout, close!


Any ideas what the cause could be? I can include my conf files if need be.

Thanks!
 

mistwang

LiteSpeed Staff
#2
Have you created a FCGI context with URI /helloworld.fpl using the helloworld.fpl fcgi application? It will not work if you only add a script handler for .fpl.
 
#3
Added context but still no success...

Mistwang - I have added a context as suggested with no luck. So far I have done the following:

1. Added a vhost "LiteSpeed"
2. Added an ExternalApp (Fast CGI App) to the vhost
3. Added a Context to the vhost with a URI of "/helloworld.fpl"


I get the following error:


2006-02-08 19:20:51.208 [DEBUG] [*] New connection from 209.195.158.2:4827.
2006-02-08 19:20:51.208 [DEBUG] [*] 1 connections accepted!
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0] HttpIOLink::handleEvents() events=1!
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0] HttpConnection::eek:nReadEx(), state: 0!
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0] readToHeaderBuf().
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0] Read from client: 269
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0] read 269 bytes to header buffer
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0] processHeader() return 0, header state: 3.
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0] readToHeaderBuf() return 0.
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] New request:
Method=[GET], URI=[/helloworld.fpl],
QueryString=[]
Content Length=0
2006-02-08 19:20:51.213 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] Find context with URI: [/helloworld.fpl], location: [(null)]
2006-02-08 19:20:51.214 [INFO] [209.195.158.2:4827-0#LiteSpeed] Context [/helloworld.fpl] is not accessible: access denied.

2006-02-08 19:20:51.214 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] processContextPath() return 24
2006-02-08 19:20:51.214 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] processNewReq() return 24.
2006-02-08 19:20:51.214 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] HttpConnection::sendHttpError(),code=403 Forbidden
2006-02-08 19:20:51.214 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] HttpConnection::flush()!
2006-02-08 19:20:51.214 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] Written to client: 572
2006-02-08 19:20:51.214 [DEBUG] [209.195.158.2:4827-0#LiteSpeed] HttpConnection::nextRequest()!
2006-02-08 19:20:56.129 [DEBUG] [209.195.158.2:4827-1] Keep-alive timeout, close!
2006-02-08 19:20:56.129 [DEBUG] [209.195.158.2:4827-1] Close socket ...



Here is my vhcof.xml

<?xml version="1.0" encoding="UTF-8"?>
<virtualHostConfig>
<docRoot>$VH_ROOT/www</docRoot>
<logging>
<log>
<useServer>0</useServer>
<fileName>$VH_ROOT/lsws-logs/error.log</fileName>
<logLevel>DEBUG</logLevel>
</log>
<accessLog>
<useServer>0</useServer>
<fileName>$VH_ROOT/lsws-logs/access.log</fileName>
</accessLog>
</logging>
<index>
<useServer>1</useServer>
</index>
<scriptHandlerList>
<scriptHandler>
<suffix>cgi</suffix>
<type>cgi</type>
<handler>cgi</handler>
</scriptHandler>
<scriptHandler>
<suffix>fpl</suffix>
<type>fcgi</type>
<handler>MyfastCGI</handler>
</scriptHandler>
</scriptHandlerList>
<extProcessorList>
<extProcessor>
<type>fcgi</type>
<name>MyfastCGI</name>
<address>UDS://home/foo/lsws-tmp/fastcgi.sock</address>
<maxConns>200</maxConns>
<initTimeout>15</initTimeout>
<retryTimeout>15</retryTimeout>
<persistConn>1</persistConn>
<respBuffer>0</respBuffer>
<autoStart>1</autoStart>
</extProcessor>
</extProcessorList>
<contextList>
<context>
<type>fcgi</type>
<uri>/helloworld.fpl</uri>
<handler>MyfastCGI</handler>
<accessControl>
</accessControl>
<addDefaultCharset>off</addDefaultCharset>
</context>
<context>
<type>fcgi</type>
<uri>/pl/pages</uri>
<handler>MyfastCGI</handler>
<accessControl>
</accessControl>
<addDefaultCharset>off</addDefaultCharset>
</context>
</contextList>
</virtualHostConfig>


Any help would be appreciated.

Thanks!
 

mistwang

LiteSpeed Staff
#4
Your "MyfastCGI" has not been configured properly, <autoStart> set to 1, but the path to the fastcgi application has not been given, you should got some error message during server startup. As the FastCGI has not been configured properly, access to the FCGI context is denied.
 
Top