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