<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Sun, iPlanet e servidores Netscape no Solaris da Sun</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 Unix" HREF="install.unix.html"><LINK REL="PREVIOUS" TITLE="Notas relacionadas à fhttpd" HREF="install.unix.fhttpd.html"><LINK REL="NEXT" TITLE="CGI e instalações de linha de comando" HREF="install.unix.commandline.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.unix.fhttpd.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Capítulo 4. Instalação em sistemas Unix</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="install.unix.commandline.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="install.unix.sun" >Sun, iPlanet e servidores Netscape no Solaris da Sun</A ></H1 ><P > Essa seção contem notas e dicas específicas para instação do PHP nos servidores un Java System Web Server, Sun ONE Web Server, iPlanet e Netscape no Solaris. </P ><P > A partir do PHP 4.3.3, você pode usar scripts PHP com o <A HREF="ref.nsapi.html" >módulo NSAPI</A > para <A HREF="install.unix.sun.html#install.unix.sun.specialpages" >gerar listagem de diretórios e páginas de erro personalizadas</A >. Funções adicionais para compatibilidade com o Apache também estão disponíveis. Para suporte nos webservers atuais, leia a <A HREF="install.unix.sun.html#install.unix.sun.notes" >nota sobre sub-requisições</A >. </P ><P > Você pode achar mais informações sobre como instalar o PHP para o Servidor Netscape Enterprise (NES) 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 ><P > Para compilar o PHP com servidores web Sun JSWS/Sun ONE WS/iPlanet/Netscape, entre o diretório apropriado de instalação para a opção <A HREF="configure.html#configure.with-nsapi" >--with-nsapi=[DIR]</A > O diretório padrão é, normalmente <TT CLASS="filename" >/opt/netscape/suitespot/</TT >. Por favor, leia também <TT CLASS="filename" >/php-xxx-version/sapi/nsapi/nsapi-readme.txt</TT >. </P ><P > <P ></P ><OL TYPE="1" ><LI ><P > Instale os seguintes pacotes de <A HREF="http://www.sunfreeware.com/" TARGET="_top" > http://www.sunfreeware.com/</A > ou outro site de download: <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD ><TT CLASS="filename" >autoconf-2.13</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >automake-1.4</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >bison-1_25-sol26-sparc-local</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >flex-2_5_4a-sol26-sparc-local</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >gcc-2_95_2-sol26-sparc-local</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >gzip-1.2.4-sol26-sparc-local</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >m4-1_4-sol26-sparc-local</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >make-3_76_1-sol26-sparc-local</TT ></TD ></TR ><TR ><TD > <TT CLASS="filename" >mysql-3.23.24-beta</TT > (se você quiser suporte ao MySQL) </TD ></TR ><TR ><TD ><TT CLASS="filename" >perl-5_005_03-sol26-sparc-local</TT ></TD ></TR ><TR ><TD ><TT CLASS="filename" >tar-1.13</TT > (GNU tar)</TD ></TR ></TBODY ></TABLE ><P ></P > </P ></LI ><LI ><P > Assegure-se que seu PATH inclue os diretórios apropriados <TT CLASS="literal" >PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin</TT > E está disponível para o seu sistema <KBD CLASS="userinput" >export PATH</KBD >. </P ></LI ><LI ><P > <KBD CLASS="userinput" >gunzip php-x.x.x.tar.gz</KBD > (se você tiver uma distribuição .gz, caso contrário vá para o passo 4). </P ></LI ><LI ><P > <KBD CLASS="userinput" >tar xvf php-x.x.x.tar</KBD > </P ></LI ><LI ><P > Mude para o diretório recém-criado: <KBD CLASS="userinput" >cd ../php-x.x.x </KBD > </P ></LI ><LI ><P > Para o passo seguinte, assegure-se de que <TT CLASS="filename" >/opt/netscape/suitespot/</TT > é onde o seu servidor Netscape está instalado. Caso contrário, mude o comando abaixo para o caminho correto e execute: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="shell" >./configure --with-mysql=/usr/local/mysql \ --with-nsapi=/opt/netscape/suitespot/ \ --enable-libgcc</PRE ></TD ></TR ></TABLE > </P ></LI ><LI ><P > Execute <B CLASS="command" >make</B > seguido de <B CLASS="command" >make install</B >. </P ></LI ></OL > </P ><P > Depois de fazer a instalação básica e ler o arquivo readme apropriado, você pode precisar executar alguns passos extras de configuração. </P ><DIV CLASS="formalpara" ><P ><B >Instruções de Configuração para o Sun/iPlanet/Netscape. </B > Primeiramente, você pode preciasr adicionar alguns caminhos para a váriavel de ambiente <CODE CLASS="varname" >LD_LIBRARY_PATH</CODE > para que o servidor ache as bibliotecas compartilhadas. A melhor maneira de fazer isso é no script de inicialização do ser servidor web. Esse script normalmente está localizado em: <TT CLASS="filename" >/caminho/para/servidor/https-nome_do_servidor/start</TT >. Você pode precisar também de editar os arquivos de configuração que estão localizados em: <TT CLASS="filename" >/caminho/para/servidor/https-nome_do_servidor/config/</TT >. <P ></P ><OL TYPE="1" ><LI ><P > Adicione a seguinte linha no arquivo <TT CLASS="filename" >mime.types</TT > (você pode fazer isso pelo servidor de administração): <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >type=magnus-internal/x-httpd-php exts=php</PRE ></TD ></TR ></TABLE > </P ></LI ><LI ><P > Edite o arquivo <TT CLASS="filename" >magnus.conf</TT > (para servidores >= 6) ou o arquivo <TT CLASS="filename" >obj.conf</TT > (para servidores < 6) e adicione a seguinte biblioteca compartilhada que pode variar dependendo do seu sistema, ela se parecererá com <TT CLASS="filename" >/opt/netscape/suitespot/bin/libphp4.so</TT >. Você deve colocar as seguintes linhas após <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="/opt/netscape/suitespot/bin/libphp4.so" Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/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 config 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 virtuais [versão 6.0+] no arquivo <TT CLASS="filename" >vserver.obj.conf</TT >): <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" ><Object name="default"> . . . .#NOTA Essa linha deve acontecer após todos as linhas 'ObjectType' e antes de todas as linas 'AddLog' Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...] . . </Object></PRE ></TD ></TR ></TABLE > (PHP >= 4.3.3) Como parâmetros adicionais, você pode acrescentar valores especiais do <TT CLASS="filename" >php.ini</TT >, por exemplo, você pode editar um <TT CLASS="literal" >docroot="/path/to/docroot"</TT > específico para o contexto <TT CLASS="literal" >php4_execute</TT > chamado. Para valores booleanos, use 0/1 como valor, não <TT CLASS="literal" >"On","Off",...</TT > (isso não funcionará corretamente) ,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ários se você quiser configurar um diretório que apenas consiste de scripts PHP (assim como um diretório <TT CLASS="filename" >cgi-bin</TT >): <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 que você pode configurar um diretório no servidor de Administração e atribuir a ele o estilo <TT CLASS="literal" >x-httpd-php</TT >. Todos os arquivo no diretório serão executados como PHP. Isso é bom para esconder uso do PHP renomeando os arquivos para <TT CLASS="filename" >.html</TT >. </P ></LI ><LI ><P > Configuração de autenticação: autenticação do PHP não pode ser usada com qualquer outra autenticação. TODA AUTENTICAÇÃO E PASSADA PARA O SEU SCRIPT PHP. Para configurar autenticação via PHP para o servidor todo, adicione a seguinte linha para o seu objeto padrão: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" ><Object name="default"> AuthTrans fn=php4_auth_trans . . . </Object></PRE ></TD ></TR ></TABLE > </P ></LI ><LI ><P > Para usar autenticação via PHP em apenas um diretório, adicione o seguinte: <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="programlisting" ><Object ppath="d:\path\to\authenticated\dir\*"> AuthTrans fn=php4_auth_trans </Object></PRE ></TD ></TR ></TABLE > </P ></LI ></OL > </P ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > O tamanho da pilha que o PHP usa depende da configuração do servidor web. Se você tiver problemas com scripts PHP muito grandes, é recomendado aumentar o tamanho da pilha com o Admin Server (na seção "MAGNUS EDITOR"). </P ></BLOCKQUOTE ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="install.unix.sun.phpini" >Ambiente CGI e modificações recomendadas ao arquivo php.ini</A ></H2 ><P > É importante ter em mente quando escrever scripts PHP que os servidores web Sun JSWS/Sun ONE WS/iPlanet/Netscape são multithreaded. Por isso, todas as requisições estão rodando no mesmo espaço de processo (o espaço do servidor web em si) 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 fazer da maneira como o PHP 3.x faz, com a função <A HREF="function.getenv.html" ><B CLASS="function" >getenv()</B ></A > ou de maneira similar (registrando globais ao ambiente, <TT CLASS="literal" >$_ENV</TT >). Você só pegaria o ambiente do servidor web sem qualquer variáveis CGI válidas. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Por que existem variáveis CGI inválidas no ambiente? </P ><P > Resposta: Isso é porque você iniciou o processo do servidor do admin server que roda o script de iniciação do mesmo, você queria iniciar como um script CGI (um script CGI dentro do admin server!). Isso é porque o ambiente do servidor web iniciado tem algumas variáveis CGI de ambiente nele. Você pode testar isso iniciando o servidor web sem ser do admin server. Use a linha de comando como usuário root e inicie-o manualmente - você verá que não exite nenhuma variável CGI de ambiente. </P ></BLOCKQUOTE ></DIV ><P > Simplesmente mudando seus scripts para pegar variáveis CGI é a maneira correta para o PHP 4.x usando o superglobal <TT CLASS="literal" >$_SERVER</TT >. Se você tiver scripts velhos que usam <TT CLASS="literal" >$HTTP_HOST</TT >, etc., você deve ligar <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 > de lá, porque voe não precisa do 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.unix.sun.specialpages" >Uso especial para páginas de erro e listagem 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 similares. Adicione a seguinte linha no objeto do arquivo <TT CLASS="filename" >obj.conf</TT > para cada página de erro que você quiser 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 do erro HTTP. Por favor remova qualquer outra diretiva <TT CLASS="literal" >Error</TT > que possa interferir com as suas. Se você quiser colocar uma página para todos os erros que podem existir, tire o parâmetro <TT CLASS="literal" >code</TT >. Seu script pode pegar o código do erro com <TT CLASS="literal" >$_SERVER['ERROR_TYPE']</TT >. </P ><P > Outra possibilidade é criar uma listagem do diretório auto-gerada. Apenas crie um script PHP que mostra uma listagem do diretório e substitua o padrão correspondente Service line for <TT CLASS="literal" >type="magnus-internal/directory"</TT > no arquivo <TT CLASS="filename" >obj.conf</TT > pelo 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 os erros e as páginas de listagem do diretório a URI original e a URL 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.unix.sun.notes" >Nota sobre <A HREF="function.nsapi-virtual.html" ><B CLASS="function" >nsapi_virtual()</B ></A > e sub-requisições(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ônima (alias): <A HREF="function.virtual.html" ><B CLASS="function" >virtual()</B ></A >) para fazer sub-requisições no servidor web e inserir o resultado na página web. Essa função usa algumas funcionalidades não documentadas da biblioteca NSAPI. No Unix, o módulo procura automaticamente para as funções necessárias e as usa se estiverem disponíveis. Se não, <A HREF="function.nsapi-virtual.html" ><B CLASS="function" >nsapi_virtual()</B ></A > é desabilitada. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Mas esteja avisado: 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.unix.fhttpd.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.unix.commandline.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Notas relacionadas à fhttpd</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="install.unix.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >CGI e instalações de linha de comando</TD ></TR ></TABLE ></DIV ></BODY ></HTML >