Boa noite a Todos,

Após minha ótima (por sinal) mudança do Linux para o FreeBSD, estou
tendo problemas com um "rewriter helper" que tenho (tinha no linux)
para o squid em php. Antes da migração estava 100% e não houve mudança
de código php.

Esse helper uso para fazer cache efetivo de algumas coisas aqui como
windows update, e certos sites específicos, algo como um thunder
(antes que mandem instalar "um thunder", optei por fazer isso para não
ter "mais um sócio" no meu negócio) e estou conseguindo ter meus
30-40% de economia de link com meu próprio helper.

De cara já tive problema com o seguinte: no Linux, eu colocava no
helper.php (cabeçalho) a chamada do interpretador PHP assim:

#!/usr/local/bin/php
<?
 //codigo do meu helper
?>

E chamada no squid com a diretiva: url_rewrite_program /caminho/do/helper.php


Já no FreeBSD não funcionou dessa forma, dava crash no squid e tive
que tirar a chamada do interpretador do helper.php, ficando apenas:

<?
 //codigo do meu helper
?>

E no squid tive que chamar assim:

url_rewrite_program /usr/local/bin/php /caminho/do/helper.php
url_rewrite_children 50
acl helper_sites url_regex -i "/caminho/do/helper/helper.sites"
url_rewrite_access allow helper_sites
url_rewrite_access deny all
cache deny helper_sites


E isso fez funcionar o helper, mas agora estou tendo problemas com o
fechamento dos "childrens" do helpers, o que mesmo após reinícios
automáticos das childrens do helper pelo squid, com um certo tempo dá
crash.


2011/07/31 00:05:56| WARNING: url_rewriter #20 (FD 26) exited
2011/07/31 00:05:56| Too few url_rewriter processes are running
2011/07/31 00:05:56| Starting new helpers
2011/07/31 00:05:56| helperOpenServers: Starting 50 'php' processes
2011/07/31 00:05:57| WARNING: url_rewriter #33 (FD 56) exited
2011/07/31 00:05:57| WARNING: url_rewriter #28 (FD 44) exited
2011/07/31 00:05:57| WARNING: url_rewriter #32 (FD 55) exited

Segue o conteúdo do helper.php

<?

        // incluir arquivos de configuracoes
        include("config.php");
        include("functions.php");

        // ler stdin
        $f = fopen('php://stdin','r');

        // controle
        $sair = false;
        while ($sair == false) {

                $url = fgets($f);
                $url = explode(" ",$url);
                $url = $url[0];
                $url = explode("\n",$url);
                $url = $url[0];

                $url = trim($url);

                if ($url == "") { // squid exiting...
                        exit;
                } else {
                        // pegar dominio da url passada
                        $domain = get_domain($url);

                        $domainphp = "$domain" . ".php";

                        // verificar se existe um plugin para o dominio
                        if (
file_exists("$installdir/plugins/$domainphp") ) { // o plugin existe -
ativa-lo

                                include("$installdir/plugins/$domainphp");

                        } else { // o plugin nao existe - retornar url
original para o proxy

                                print "$url\n";

                        }
                }
        }

        fclose($f);

?>

Espero ter sido claro, apesar do e-mail longo.

Grato desde já,


Wenderson Souza
e-mail: [email protected]
msn: [email protected]
skype: wendersonsouza
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

Responder a