<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Servidores Sun, iPlanet e Netscape no Microsoft Windows</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Instalação em sistemas Windows" HREF="install.windows.html"><LINK REL="PREVIOUS" TITLE="Apache 2.0.x no Microsoft Windows" HREF="install.windows.apache2.html"><LINK REL="NEXT" TITLE="Servidor OmniHTTPd" HREF="install.windows.omnihttpd.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="install.windows.apache2.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Capítulo 6. Instalação em sistemas Windows</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="install.windows.omnihttpd.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="install.windows.sun" >Servidores Sun, iPlanet e Netscape no Microsoft Windows</A ></H1 ><P > Essa seção contem notas e dicas específicas para instalação do PHP em servidores Sun Java System Web Server, Sun ONE Web Server, iPlanet e Netscape no Windows. </P ><P > A partir do PHP 4.3.3 você pode usar seus scripts PHP com o <A HREF="ref.nsapi.html" >módulo NSAPI</A > para <A HREF="install.windows.sun.html#install.windows.sun.specialpages" >gerar listagens personalizadas de diretórios e páginas de erro</A >. Funções adicionais para compatibilidade com o Apache também estão disponíveis. Para suporte nos servidores web atuais leia a <A HREF="install.windows.sun.html#install.windows.sun.notes" >nota sobre subrequests</A >. </P ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.sun.cgi" >Configurando como CGI em servidores Sun, iPlanet e Netscape</A ></H2 ><P > Para instalar o PHP como um tratador de CGI, faça o seguinte: </P ><P ></P ><UL ><LI ><P > Copie o arquivo <TT CLASS="filename" >php4ts.dll</TT > para a pasta raiz do seu sistema (o diretório onde você instalou o Windows) </P ></LI ><LI ><P > Faça uma associação de arquivo a partir da linha de comando. Digite as duas linhas a seguir: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="shell" >assoc .php=PHPScript ftype PHPScript=c:\php\php.exe %1 %*</PRE ></TD ></TR ></TABLE > </P ></LI ><LI ><P > No Netscape Enterprise Administration Server crie um diretório dummy para o shellcgi e remova-o em seguida (esse passo cria 5 linhas importantes no obj.conf e permite que o servidor web trate scripts shellcgi). </P ></LI ><LI ><P > No Netscape Enterprise Administration Server crie um novo tipo mime (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php). </P ></LI ><LI ><P > Faça isso para cada instância do servidor web que você quiser que rode o PHP </P ></LI ></UL ><P > Mais detalhes sobre configuração do PHP como um executável CGI pode ser encontrado aqui: <A HREF="http://benoit.noss.free.fr/php/install-php.html" TARGET="_top" >http://benoit.noss.free.fr/php/install-php.html</A > </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.sun.nsapi" >Configurando como NSAPI em servidores Sun, iPlanet e Netscape</A ></H2 ><P > Para instalar o PHP com NSAPI, faça o seguinte: </P ><P ></P ><UL ><LI ><P > Copie <TT CLASS="filename" >php4ts.dll</TT > para a pasta raiz do seu sistema (o diretório onde você instalou o Windows) </P ></LI ><LI ><P > Faça uma associação de arquivo a partir da linha de comando. Digite as duas linhas a seguir: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="shell" >assoc .php=PHPScript ftype PHPScript=c:\php\php.exe %1 %*</PRE ></TD ></TR ></TABLE > </P ></LI ><LI ><P > No Netscape Enterprise Administration Server crie um novo tipo mime (Category: type, Content-Type: magnus-internal/x-httpd-php, File Suffix: php). </P ></LI ><LI ><P > Edite o arquivo <TT CLASS="filename" >magnus.conf</TT > (para servidores >= 6) ou <TT CLASS="filename" >obj.conf</TT > (para servidores < 6) e adicione o seguinte: Você deve colocar as linhas depois de <TT CLASS="literal" >mime types init</TT >. <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll" Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]</PRE ></TD ></TR ></TABLE > (PHP >= 4.3.3) O parâmetro <TT CLASS="literal" >php_ini</TT > é opcional, mas com ele você pode colocar seu arquivo <TT CLASS="filename" >php.ini</TT > no diretório de configuração do seu servidor web. </P ></LI ><LI ><P > Configure o objeto padrão no arquivo <TT CLASS="filename" >obj.conf</TT > (para classes de servidor virtual [Sun Web Server 6.0+] no arquivo <TT CLASS="filename" >vserver.obj.conf</TT >): Na seção <TT CLASS="literal" ><Object name="default"></TT >, coloque essa linha necessariamente após todas as linhas do tipo 'ObjectType' e antes das do tipo 'AddLog': <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]</PRE ></TD ></TR ></TABLE > (PHP >= 4.3.3) Como parâmetros adicionais,você pode adicionar alguns valores especiais do arquivo <TT CLASS="filename" >php.ini</TT >, por exemplo, você pode atribuir um <TT CLASS="literal" >docroot="/path/to/docroot"</TT > específico ao contexto no qual <TT CLASS="literal" >php4_execute</TT > é chamado. Para valores booleanos do <TT CLASS="filename" >php.ini</TT >, use 0/1 como valor, e não <TT CLASS="literal" >"On","Off",...</TT > (Isso não funcionará), ex.: <TT CLASS="literal" >zlib.output_compression=1</TT > ao invés de <TT CLASS="literal" >zlib.output_compression="On"</TT > </P ></LI ><LI ><P > Isso só é necessário se você quiser configurar um diretório que só consiste de scripts PHP (como em um diretório cgi-bin): <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" ><Object name="x-httpd-php"> ObjectType fn="force-type" type="magnus-internal/x-httpd-php" Service fn=php4_execute [inikey=value inikey=value ...] </Object></PRE ></TD ></TR ></TABLE > Depois disso você pode configurar um diretório na ferramenta de Administração do servidor e atribuir a ele um estilo <TT CLASS="literal" >x-httpd-php</TT >. Todos os arquivos neles serão executados como PHP. Isso é bom para esconder o uso do PHP renomeando os arquivos como <TT CLASS="filename" >.html</TT >. </P ></LI ><LI ><P > Reinicie seu servidor web e aplique as mudanças </P ></LI ><LI ><P > Faça isso para cada instância do servidor web que você quiser que execute o PHP </P ></LI ></UL ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Mais detalhes sobre configurar o PHP como um filtro NSAPI pode ser achado aqui: <A HREF="http://benoit.noss.free.fr/php/install-php4.html" TARGET="_top" >http://benoit.noss.free.fr/php/install-php4.html</A > </P ></BLOCKQUOTE ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > O tamanho de pilha que o PHP usa depende da configuração do servidor web. Se você tiver problemas com scripts muito grandes, é recomendado aumentar esse tamanho com o Administrador do Servidor (na seção "MAGNUS EDITOR"). </P ></BLOCKQUOTE ></DIV ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.sun.phpini" >Ambiente CGI e modificações recomendadas ao arquivo php.ini</A ></H2 ><P > É importante quando escrevendo scripts PHP levar em conta o fato que Sun JSWS/Sun ONE WS/iPlanet/Netscape são servidores multithreaded. Por isso, todas as requisições estão sendo executadas no mesmo espaço de processo (o espaço do servidor web) e esse espaço só tem um ambiente. Se você quiser usar variáveis CGI como <TT CLASS="literal" >PATH_INFO</TT >, <TT CLASS="literal" >HTTP_HOST</TT > etc, não é correto tentar pegá-las da maneira do PHP 3.x, usando a função <A HREF="function.getenv.html" ><B CLASS="function" >getenv()</B ></A > ou uma maneira similar (registrar globais para o ambiente, <TT CLASS="literal" >$_ENV</TT >). Você só iria pegar o ambiente do servidor web sem quaisquer variáveis CGI válidas! </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Porque existem variáveis CGI (inválidas) no ambiente? </P ><P > Resposta: Isso é porque você inicializou o processo do servidor a partir do administrador do servidor que executa o script de inicialização do servidor web, você queria iniciar, como um script CGI (um script CGI dentro do administrador do servidor!). Isso é porque o ambiente do servidor tem algumas variáveis CGI do ambiente nele. Você pode testar isso inicializando o servidor web de outra forma que não pelo administrador do servidor. Use a linha de comando como usuário root e inicialize-o manualmente - você verá que não há variáveis ambientes do tipo CGI. </P ></BLOCKQUOTE ></DIV ><P > Simplesmente mude seus scripts para pegar variáveis CGI da maneira correta para o PHP 4.x, usando o array superglobal <TT CLASS="literal" >$_SERVER</TT >. Se você tiver scripts mais antigos que usem <TT CLASS="literal" >$HTTP_HOST</TT >, etc., você deve ligar a diretiva <TT CLASS="literal" >register_globals</TT > no arquivo <TT CLASS="filename" >php.ini</TT > e mudar a ordem das variáveis também (importante: remova <TT CLASS="literal" >"E"</TT > da diretiva, porque você não precisa das variávies de ambiente aqui): <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >variables_order = "GPCS" register_globals = On</PRE ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.sun.specialpages" >Uso especial para páginas de erro ou listagens de conteúdo de diretório auto-geradas (PHP >= 4.3.3)</A ></H2 ><P > Você pode usar o PHP para gerar as páginas de erro para <TT CLASS="literal" >"404 Not Found"</TT > ou similar. Adicione a seguinte linha ao objeto no arquivo <TT CLASS="filename" >obj.conf</TT > para cada página de erro que você queira sobrescrever: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]</PRE ></TD ></TR ></TABLE > onde <TT CLASS="literal" >XXX</TT > é o código de erro HTTP. Por favor apague qualquer outra diretiva <TT CLASS="literal" >Error</TT > que podem interferir com as suas. Se você quiser colocar uma página para todos os erros que podem existir, não informe o parâmetro <TT CLASS="literal" >code</TT >. Seu script pode determinar qual o erro pela variável <TT CLASS="literal" >$_SERVER['ERROR_TYPE']</TT >. </P ><P > Outra possibilidade é gerar listagens de conteúdo de diretório. Apenas crie um script PHP que mostre uma listagem do diretório e substitua o valor padrão da linha Service <TT CLASS="literal" >type="magnus-internal/directory"</TT > no arquivo <TT CLASS="filename" >obj.conf</TT > com a seguinte: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]</PRE ></TD ></TR ></TABLE > Tanto para páginas de erro e de listagem de diretório a URI original e a URI traduzida estão nas variáveis <TT CLASS="literal" >$_SERVER['PATH_INFO']</TT > e <TT CLASS="literal" >$_SERVER['PATH_TRANSLATED']</TT >. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.windows.sun.notes" >Nota sobre <A HREF="function.nsapi-virtual.html" ><B CLASS="function" >nsapi_virtual()</B ></A > e subrequisições (subrequests) (PHP >= 4.3.3)</A ></H2 ><P > O módulo NSAPI agora suporta a função <A HREF="function.nsapi-virtual.html" ><B CLASS="function" >nsapi_virtual()</B ></A > (sinônimo (alias): <A HREF="function.virtual.html" ><B CLASS="function" >virtual()</B ></A >) para fazer subrequisições no servidor web e inserir o resultado em uma página web. O problema é que essa função usa algumas características não documentadas da biblioteca NSAPI. </P ><P > No Unix, isso não é um problema, porque o módulo procura automaticamente pelas funções necessárias e usa elas se disponíveis. Se não, <A HREF="function.nsapi-virtual.html" ><B CLASS="function" >nsapi_virtual()</B ></A > é desabilitada. </P ><P > Limitações de tratamento de DLLs no Windows precisam da detecção automática do arquivo <TT CLASS="filename" >ns-httpdXX.dll</TT > mais recente. Isso é testado pelos servidores até a versão 6.1. Se uma versão mais nova do servidor Sun é usado, a detecção falha e <A HREF="function.nsapi-virtual.html" ><B CLASS="function" >nsapi_virtual()</B ></A > é desabilitada. </P ><P > Se esse for o caso, tente o seguinte: Adicione o seguinte parâmetro para <TT CLASS="literal" >php4_init</TT > em <TT CLASS="filename" >magnus.conf</TT >/<TT CLASS="filename" >obj.conf</TT >: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" >Init fn=php4_init ... server_lib="ns-httpdXX.dll"</PRE ></TD ></TR ></TABLE > onde <TT CLASS="literal" >XX</TT > é o número de versão correto da DLL. Para obter esse valor, procure na pasta raiz do servidor para o nome correto da DLL. A DLL com o maior tamanho é a certa. </P ><P > Você pode verificar o status usando a função <A HREF="function.phpinfo.html" ><B CLASS="function" >phpinfo()</B ></A >. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Mas esteja avisado: O suporte para <A HREF="function.nsapi-virtual.html" ><B CLASS="function" >nsapi_virtual()</B ></A > é EXPERIMENTAL!!! </P ></BLOCKQUOTE ></DIV ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="install.windows.apache2.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="install.windows.omnihttpd.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Apache 2.0.x no Microsoft Windows</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="install.windows.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Servidor OmniHTTPd</TD ></TR ></TABLE ></DIV ></BODY ></HTML >