Skip to main content Help Control Panel

YACS CMS : Open source !

Community «   Le forum «   Soupçons de bogues «   Yacs with FastCGI and Suexec ( debian ) «  

Comment: Yacs with FastCGI and Suexec ( debian )

  Next >>
Bien, après avoir effectué plusieurs testes, j'ai trouvé une solution qui semble fonctionner.

J'ai remplacer la fonction header(); de la librairie safe.php par celle-ci :

function header($attribute$replace=NULL$status=NULL) {
         
          
// Fixed: FastCGI error parsing headers
          
if (substr(php_sapi_name(), 08) == 'cgi-fcgi')
           
$attribute str_replace("Status:""HTTP/1.1"$attribute);

                
// too late
                
if(headers_sent()) {
                        echo 
$attribute."\n\n";

                
// function has been allowed
                
} elseif(is_callable('header')) {
                
                        if(
$status) {
                        
                         
header($attribute$replace$status);
                        } elseif(!
$replace) {
                         
header($attribute$replace);
                        } else {
                         
header($attribute);
                        }
                                
                }
        }



Maintenant, reste à savoir si on doit tchecker la version du protocol HTTP pour les vieux browser (HTTP/1.0)...

Ce qui me semble dingue ici, c'est qu'il faille faire le contraire de ce qui est recommandé sur plusieurs forums, c'est à dire utiliser HTTP/1.1 losrque que php est exécuté via FastCGI.

En effet, dans plusieurs discussions, j'ai pu voir qu'il fallait utiliser Status dans le cas de FastCGI et HTTP/1.1 dans les autres cas. Bref, j'y comprend pas grand chose mais cela fonctionne.

Si tu veux bien jeter un coup d'oeil Bernard

Note : Je rappelle que ce fix ne concerne que les utilisateurs hébergés sur une machine qui exploite PHP 4 ou 5 en tant que programme CGI via FastCGI.

by Nuxwin on Mar. 5