Unbreak remote server tests
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / FastCGI.pm
index b81176b..30bb3a5 100644 (file)
@@ -113,6 +113,7 @@ sub run {
     if ($listen) {
         $options->{manager} ||= "FCGI::ProcManager";
         $options->{nproc}   ||= 1;
+        $options->{proc_title} ||= "perl-fcgi-pm [$class]";
 
         $self->daemon_fork() if $options->{detach};
 
@@ -123,6 +124,7 @@ sub run {
                 {
                     n_processes => $options->{nproc},
                     pid_fname   => $options->{pidfile},
+                    pm_title => $options->{proc_title},
                 }
             );
 
@@ -157,6 +159,10 @@ sub run {
 sub write {
     my ( $self, $c, $buffer ) = @_;
 
+    # ->write will be called once with the body, even in a redirect (and
+    # in that case, the body is undef)
+    $buffer = '' if !defined $buffer;
+
     unless ( $self->_prepared_write ) {
         $self->prepare_write($c);
         $self->_prepared_write(1);
@@ -297,7 +303,7 @@ static, and dynamic.
 =head3 Standalone server mode
 
     FastCgiExternalServer /tmp/myapp.fcgi -socket /tmp/myapp.socket
-    Alias /myapp/ /tmp/myapp/myapp.fcgi/
+    Alias /myapp/ /tmp/myapp.fcgi/
 
     # Or, run at the root
     Alias / /tmp/myapp.fcgi/
@@ -458,26 +464,26 @@ The server configuration block should look roughly like:
         listen $port;
 
         location / {
-            fastcgi_param  QUERY_STRING       \$query_string;
-            fastcgi_param  REQUEST_METHOD     \$request_method;
-            fastcgi_param  CONTENT_TYPE       \$content_type;
-            fastcgi_param  CONTENT_LENGTH     \$content_length;
-
-            fastcgi_param  PATH_INFO          \$fastcgi_script_name;
-            fastcgi_param  SCRIPT_NAME        \$fastcgi_script_name;
-            fastcgi_param  REQUEST_URI        \$request_uri;
-            fastcgi_param  DOCUMENT_URI       \$document_uri;
-            fastcgi_param  DOCUMENT_ROOT      \$document_root;
-            fastcgi_param  SERVER_PROTOCOL    \$server_protocol;
+            fastcgi_param  QUERY_STRING       $query_string;
+            fastcgi_param  REQUEST_METHOD     $request_method;
+            fastcgi_param  CONTENT_TYPE       $content_type;
+            fastcgi_param  CONTENT_LENGTH     $content_length;
+
+            fastcgi_param  SCRIPT_NAME        /;
+            fastcgi_param  PATH_INFO          $fastcgi_script_name;
+            fastcgi_param  REQUEST_URI        $request_uri;
+            fastcgi_param  DOCUMENT_URI       $document_uri;
+            fastcgi_param  DOCUMENT_ROOT      $document_root;
+            fastcgi_param  SERVER_PROTOCOL    $server_protocol;
 
             fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
-            fastcgi_param  SERVER_SOFTWARE    nginx/\$nginx_version;
+            fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
 
-            fastcgi_param  REMOTE_ADDR        \$remote_addr;
-            fastcgi_param  REMOTE_PORT        \$remote_port;
-            fastcgi_param  SERVER_ADDR        \$server_addr;
-            fastcgi_param  SERVER_PORT        \$server_port;
-            fastcgi_param  SERVER_NAME        \$server_name;
+            fastcgi_param  REMOTE_ADDR        $remote_addr;
+            fastcgi_param  REMOTE_PORT        $remote_port;
+            fastcgi_param  SERVER_ADDR        $server_addr;
+            fastcgi_param  SERVER_PORT        $server_port;
+            fastcgi_param  SERVER_NAME        $server_name;
         
             # Adjust the socket for your applications!
             fastcgi_pass   unix:$docroot/myapp.socket;
@@ -490,14 +496,14 @@ simply include that file.
 
 =head3  Non-root configuration
 
-If you properly specify the PATH_INFO and SCRIPT_NAME parameters your 
-application will be accessible at any path.  The SCRIPT_NAME variable is the
+If you properly specify the PATH_INFO and SCRIPT_NAME parameters your
+application will be accessible at any path. The SCRIPT_NAME variable is the
 prefix of your application, and PATH_INFO would be everything in addition.
 
 As an example, if your application is rooted at /myapp, you would configure:
 
-    fastcgi_param  PATH_INFO /myapp/;
-    fastcgi_param  SCRIPT_NAME $fastcgi_script_name;
+    fastcgi_param  SCRIPT_NAME /myapp/;
+    fastcgi_param  PATH_INFO   $fastcgi_script_name;
 
 C<$fastcgi_script_name> would be "/myapp/path/of/the/action".  Catalyst will
 process this accordingly and setup the application base as expected.