Files
2025-05-28 11:57:07 -03:00

346 lines
13 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 48ce43fe79fa0c9f31f187ea8ec995b4cb13037e Maintainer: leonardolara Status: ready --><!-- CREDITS: leonardolara -->
<chapter xml:id="wincache.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.setup;
<section xml:id="wincache.requirements">
&reftitle.required;
<para>
Atualmente, a extensão é suportada apenas nas seguintes configurações:
</para>
<simpara>Sistemas Operacionais Windows:</simpara>
<itemizedlist spacing="compact">
<listitem>
<simpara>Windows XP SP3 com IIS 5.1 e <link xlink:href="&url.iis.fastcgi.downloads;">extensão FastCGI</link></simpara>
</listitem>
<listitem>
<simpara>Windows Server 2003 com IIS 6.0 e <link xlink:href="&url.iis.fastcgi.downloads;">extensão FastCGI</link></simpara>
</listitem>
<listitem>
<simpara>Windows Vista SP1 com IIS 7.0 e módulo FastCGI</simpara>
</listitem>
<listitem>
<simpara>Windows Server 2008 com IIS 7.0 e módulo FastCGI</simpara>
</listitem>
<listitem>
<simpara>Windows 7 com IIS 7.5 e módulo FastCGI</simpara>
</listitem>
<listitem>
<simpara>Windows Server 2008 R2 com IIS 7.5 e módulo FastCGI</simpara>
</listitem>
</itemizedlist>
<simpara>PHP:</simpara>
<itemizedlist spacing="compact">
<listitem>
<simpara>PHP 5.2.X, construção NTS (não seguro para threads)</simpara>
</listitem>
<listitem>
<simpara>PHP 5.3 X86, construção VC9 NTS (não seguro para threads)</simpara>
</listitem>
</itemizedlist>
<note>
<simpara>
A extensão WinCache só pode ser usada quando o IIS estiver configurado para executar PHP via FastCGI.
</simpara>
</note>
</section>
<section xml:id="wincache.installation">
&reftitle.install;
<para>
&pecl.moved;
</para>
<para>
&pecl.info;
<link xlink:href="&url.pecl.package;wincache">&url.pecl.package;wincache</link>.
</para>
<para>
Existem dois pacotes para esta extensão: um pacote é para as versões 5.2.X do PHP,
e o outro pacote é para o PHP 5.3.X. Selecione o pacote apropriado para
a versão do PHP em uso.
</para>
<para>
Para instalar e habilitar a extensão, siga estas etapas:
</para>
<procedure>
<step>
<simpara>
Descomprima o pacote em algum local temporário.
</simpara>
</step>
<step>
<simpara>
Copie o arquivo <filename>php_wincache.dll</filename> para a pasta de extensões do PHP.
Normalmente, essa pasta é chamada de "ext" e está localizada na mesma pasta com todos os
arquivos binários do PHP. Por exemplo: <filename>C:\Arquivos de Programas\PHP\ext</filename>.
</simpara>
</step>
<step>
<simpara>
Usando um editor de texto, abra o arquivo php.ini, que geralmente está localizado na
mesma pasta onde estão todos os arquivos binários do PHP. Por exemplo:
<filename>C:\Arquivos de Programas\PHP\php.ini</filename>.
</simpara>
</step>
<step>
<simpara>
Adicione a seguinte linha ao final do arquivo php.ini:
<literal>extension = php_wincache.dll</literal>.
</simpara>
</step>
<step>
<simpara>
Salve e feche o arquivo <filename>php.ini</filename>.
</simpara>
</step>
<step>
<simpara>
Recicle os Pools de Aplicativos do IIS para PHP para obter as alterações de configuração.
Para verificar se a extensão foi habilitada, crie um arquivo chamado
<filename>phpinfo.php</filename> com um código PHP que chama a função
<link linkend="function.phpinfo">phpinfo</link>.
</simpara>
</step>
<step>
<simpara>
Salve o arquivo <filename>phpinfo.php</filename> na pasta raiz de um
site IIS que utilize PHP, abra um navegador e faça uma solicitação para
http://localhost/phpinfo.php. Procure na página web retornada
por uma seção chamada <literal>wincache</literal>. Se a extensão
estiver habilitada, a saída <link linkend="function.phpinfo">phpinfo</link>
listará as configurações fornecidas pelo WinCache.
</simpara>
</step>
</procedure>
<note>
<simpara>
Não se esqueça de remover o arquivo <filename>phpinfo.php</filename> da pasta
raiz do site após verificar se a extensão foi habilitada.
</simpara>
</note>
</section>
&reference.wincache.ini;
<section xml:id="wincache.stats">
<title>Script de estatísticas do WinCache</title>
<para>
O pacote de instalação do WinCache inclui um script PHP,
<filename>wincache.php</filename>, que pode ser usado para obter informações de cache
e estatísticas.
</para>
<para>
Se a extensão WinCache foi instalada por meio do Microsoft Web Platform Installer,
este script está localizado em
<filename>%SystemDrive%\Arquivos de Programas\IIS\Windows Cache for PHP\</filename>.
Em uma versão de 64 bits do sistema operacional Windows Server, o script está localizado em
<filename>%SystemDrive%\Arquivos de Programas (x86)\IIS\Windows Cache for PHP</filename>.
Se a extensão foi instalada manualmente, o <filename>wincache.php</filename>
estará localizado na mesma pasta de onde o conteúdo do pacote de instalação foi extraído.
</para>
<para>
Para usar <filename>wincache.php</filename>, copie-o para a pasta raiz de um site ou
para qualquer subpasta. Para proteger o script, abra-o em qualquer editor de texto e substitua os valores das constantes
<emphasis>USERNAME</emphasis> e <emphasis>PASSWORD</emphasis>.
Se qualquer outra autenticação do IIS estiver habilitada no servidor,
siga as instruções nos comentários:
<example>
<title>Configuração de autenticação para <filename>wincache.php</filename></title>
<programlisting role="php">
<![CDATA[
<?php
/**
* ======================== DEFINIÇÕES DE CONFIGURAÇÃO ==============================
* Se você não quiser usar autenticação para esta página, defina USE_AUTHENTICATION como 0.
* Se você usar autenticação, substitua a senha padrão.
*/
define('USE_AUTHENTICATION', 1);
define('USERNAME', 'wincache');
define('PASSWORD', 'wincache');
/**
* A autenticação básica do PHP funcionará somente quando o IIS estiver configurado para suportar
* Autenticação Anônima e nada mais. Se o IIS estiver configurado para suportar/usar
* qualquer outro tipo de autenticação, como Básica/Negociação/Digest, etc., isso não funcionará.
* Nesse caso, use o array abaixo para definir os nomes dos usuários em seu
* domínio/rede/grupo de trabalho aos quais você deseja conceder acesso.
*/
$user_allowed = array('DOMAIN\user1', 'DOMAIN\user2', 'DOMAIN\user3');
/**
* Se o array contiver a string 'all', todos os usuários autenticados pelo IIS
* terão acesso à página. Descomente a linha abaixo e comente a linha acima
* para conceder acesso a todos os usuários autenticados pelo IIS.
*/
/* $user_allowed = array('all'); */
/** ===================== FIM DAS DEFINIÇÕES DE CONFIGURAÇÃO ========================== */
?>
]]>
</programlisting>
</example>
<note>
<simpara>
Sempre proteja o script <filename>wincache.php</filename> usando
a autenticação integrada ou o mecanismo de autenticação do servidor.
Deixar este script desprotegido pode comprometer a segurança do seu
aplicativo web e do servidor web.
</simpara>
</note>
</para>
</section>
<section xml:id="wincache.sessionhandler">
<title>Manipulador de Sessão WinCache</title>
<para>
O manipulador de sessão do WinCache (disponível desde o WinCache 1.1.0) pode ser usado para configurar o PHP para armazenar os dados da sessão no cache de sessão de memória compartilhada.
Usar memória compartilhada em vez do armazenamento de sessão de arquivo padrão ajuda a melhorar o desempenho de aplicativos PHP
que armazenam grandes quantidades de dados em objetos de sessão. O cache de sessão do WinCache utiliza memória compartilhada com suporte a arquivos, o que garante
que os dados da sessão não sejam perdidos durante a reciclagem de pools de aplicativos do IIS.
</para>
<para>
Para configurar o PHP para usar o manipulador de sessão WinCache, defina a configuração <filename>php.ini</filename>
<link linkend="ini.session.save-handler">session.save_handler</link> como <emphasis>wincache</emphasis>.
Por padrão, o local do arquivo temporário do Windows é usado para armazenar os
dados da sessão. Para alterar o local do arquivo de sessão, use a diretiva
<link linkend="ini.session.save-path">session.save_path</link>.
<example>
<title>Habilitando o manipulador de sessão do WinCache</title>
<programlisting role="php.ini">
<![CDATA[
session.save_handler = wincache
session.save_path = C:\inetpub\temp\session\
]]>
</programlisting>
</example>
</para>
</section>
<section xml:id="wincache.reroutes">
<title>Redirecionamentos de funções do WinCache</title>
<para>
<emphasis>NOTA:</emphasis> <link linkend="ini.wincache.rerouteini">wincache.rerouteini</link> foi removida a partir do
WinCache 1.3.7.0. Ela foi substituída por redirecionamentos de função automática. Consulte:
<link linkend="ini.wincache.reroute_enabled">wincache.reroute_enabled</link>.
</para>
<para>
As funções de redirecionamento do WinCache (disponíveis desde o WinCache 1.2.0, removidas desde o WinCache 1.3.7.0) podem ser usadas para substituir funções PHP integradas por suas equivalentes
que são otimizadas para uma finalidade específica. A extensão WinCache inclui uma implementação otimizada para Windows de funções de arquivo PHP que
podem melhorar o desempenho de aplicativos PHP nos casos em que o PHP precisa acessar arquivos em compartilhamentos de rede. A implementação otimizada é
fornecida para as seguintes funções:
</para>
<itemizedlist spacing="compact">
<listitem>
<simpara>
<link linkend="function.file-exists">file_exists</link>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="function.file-get-contents">file_get_contents</link>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="function.readfile">readfile</link>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="function.is-readable">is_readable</link>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="function.is-writable">is_writable</link>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="function.is-dir">is_dir</link>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="function.realpath">realpath</link>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="function.filesize">filesize</link>
</simpara>
</listitem>
</itemizedlist>
<para>
Para configurar o WinCache para usar as funções de redirecionamento, utilize o arquivo <filename>reroute.ini</filename> incluído no
pacote de instalação do WinCache. Copie este arquivo para o mesmo diretório onde o arquivo <filename>php.ini</filename>
está localizado. Em seguida, adicione a configuração wincache.rerouteini em <filename>php.ini</filename>
e especifique um caminho absoluto ou relativo para o arquivo <filename>reroute.ini</filename>.
<example>
<title>Habilitando redirecionamentos de funções do WinCache</title>
<programlisting role="php.ini">
<![CDATA[
wincache.rerouteini = C:\PHP\reroute.ini
]]>
</programlisting>
</example>
</para>
<note>
<simpara>
Se os redirecionamentos das funções do WinCache estiverem habilitados, é recomendável aumentar o tamanho do cache do arquivo WinCache.
Isso pode ser feito usando a configuração <link linkend="ini.wincache.fcachesize">wincache.fcachesize</link>.
</simpara>
</note>
<para>
O arquivo <filename>reroute.ini</filename> contém os mapeamentos entre as funções nativas do PHP e
seus equivalentes no WinCache. Cada linha do arquivo define um mapeamento usando a seguinte sintaxe:
</para>
<simpara>
<literal>&lt;Nome da função PHP&gt;:[&lt;número de parâmetros da função&gt;]=&lt;nome da função wincache&gt;</literal>
</simpara>
<para>
O exemplo do arquivo é mostrado abaixo. Neste exemplo, as chamadas para a função PHP <function>file_get_contents</function>
serão substituídas por chamadas para <function>wincache_file_get_contents</function> somente se o número de parâmetros passados para
a função for menor ou igual a 2. Especificar o número de parâmetros é útil quando a função de substituição
não lida com todos os parâmetros da função.
<example>
<title>Conteúdo do arquivo reroute.ini</title>
<programlisting role="php.ini">
<![CDATA[
[FunctionRerouteList]
file_exists=wincache_file_exists
file_get_contents:2=wincache_file_get_contents
readfile:2=wincache_readfile
is_readable=wincache_is_readable
is_writable=wincache_is_writable
is_writeable=wincache_is_writable
is_file=wincache_is_file
is_dir=wincache_is_dir
realpath=wincache_realpath
filesize=wincache_filesize
]]>
</programlisting>
</example>
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->