Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 05cd670d8a02b2b4a0ffb1756f2e8308 > files > 10639

php-manual-zh-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PHP 手册"
HREF="index.html"><LINK
REL="UP"
TITLE="Unix 系统下的安装"
HREF="install.unix.html"><LINK
REL="PREVIOUS"
TITLE="fhttpd 服务器"
HREF="install.fhttpd.html"><LINK
REL="NEXT"
TITLE="CGI 和命令行设置"
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"
>PHP 手册</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="install.fhttpd.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>章 4. Unix 系统下的安装</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="install.unix.commandline.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="install.unix.sun"
>Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器</A
></H1
><P
>&#13;     本节包含了在 Sun Solaris 平台的 Sun Java System web Server、Sun ONE web
     Server、iPlanet 和 Netscape 下安装 PHP 的说明和提示。
    </P
><P
>&#13;     从 PHP 4.3.3 起,可以使用基于 <A
HREF="ref.nsapi.html"
>NSAPI</A
>
     模块 PHP 脚本来<A
HREF="install.unix.sun.html#install.unix.sun.specialpages"
>生成自定义目录列表和错误页面</A
>。更多与
     Apache 兼容的功能也可以使用。要了解如何在当前的 web
     服务器中支持此功能,请阅读<A
HREF="install.unix.sun.html#install.unix.sun.notes"
>关于子请求(subrequests)的注释</A
>。
    </P
><P
>&#13;     可以在下面的链接中了解更多关于在 Netscape Enterprise Server(NES)中设置 PHP
     的信息:<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
>&#13;     要在 Sun JSWS/Sun ONE WS/iPlanet/Netscape web 服务器中编译
     PHP,请为 <A
HREF="configure.html#configure.with-nsapi"
>--with-nsapi=[DIR]</A
>
     输入合适的安装目录。默认的目录通常是
     <TT
CLASS="filename"
>/opt/netscape/suitespot/</TT
>。还可以阅读
     <TT
CLASS="filename"
>/php-xxx-version/sapi/nsapi/nsapi-readme.txt</TT
>。
    </P
><P
>&#13;     <P
></P
><OL
TYPE="1"
><LI
><P
>&#13;        从 <A
HREF="http://www.sunfreeware.com/"
TARGET="_top"
>&#13;        http://www.sunfreeware.com/</A
> 或其它下载站点安装下面的软件包:
        <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
>&#13;          <TT
CLASS="filename"
>mysql-3.23.24-beta</TT
>(如果想要 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
>&#13;        请确认 PATH 变量包含适当的目录
        <TT
CLASS="literal"
>PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin</TT
>,并使用
        <KBD
CLASS="userinput"
>export PATH</KBD
> 命令将其导出为环境变量。
       </P
></LI
><LI
><P
>&#13;        <KBD
CLASS="userinput"
>gunzip php-x.x.x.tar.gz</KBD
>(如果使用 .gz 版本,否则跳到 4)
       </P
></LI
><LI
><P
>&#13;        <KBD
CLASS="userinput"
>tar xvf php-x.x.x.tar</KBD
>
       </P
></LI
><LI
><P
>&#13;        进入 PHP 解压缩后的目录:<KBD
CLASS="userinput"
>cd ../php-x.x.x</KBD
>
       </P
></LI
><LI
><P
>&#13;        在下面的步骤中,请确认 Netscape 服务器安装在
        <TT
CLASS="filename"
>/opt/netscape/suitespot/</TT
>
        目录中。否则,将下面命令中的该路径修改为正确的路径并运行:
        <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
>&#13;        运行 <B
CLASS="command"
>make</B
>,然后运行 <B
CLASS="command"
>make install</B
>。
       </P
></LI
></OL
>
    </P
><P
>&#13;     在执行了基础的安装并阅读相应的 Readme 文件后,还需要执行一些额外的配置步骤。
    </P
><DIV
CLASS="formalpara"
><P
><B
>Sun/iPlanet/Netscape 的配置说明. </B
>
      首先需要为 <CODE
CLASS="varname"
>LD_LIBRARY_PATH</CODE
>
      环境变量添加一些路径,以便服务器找到所需的共享库。可以使用 web
      服务器的启动脚本很好的完成这一工作。启动脚本通常位于:<TT
CLASS="filename"
>/path/to/server/https-servername/start</TT
>。或许需要编辑其配置文件,它位于:<TT
CLASS="filename"
>/path/to/server/https-servername/config/</TT
>。
      <P
></P
><OL
TYPE="1"
><LI
><P
>&#13;         添加下面一行到 <TT
CLASS="filename"
>mime.types</TT
>(可以在管理服务器中添加):
         <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
>&#13;         编辑 <TT
CLASS="filename"
>magnus.conf</TT
>( 若服务器 &#62;= 6)或
         <TT
CLASS="filename"
>obj.conf</TT
>(若服务器 &#60; 6)并添加下述内容。shlib
         的值根据系统的配置会有所不同。它可能类似于
         <TT
CLASS="filename"
>/opt/netscape/suitespot/bin/libphp4.so</TT
>。应该在
         <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 &#62;= 4.3.3)<TT
CLASS="literal"
>php_ini</TT
> 参数是可选的。但是若使用它,便可以将
         <TT
CLASS="filename"
>php.ini</TT
> 放到 web 服务器的配置目录中去。
        </P
></LI
><LI
><P
>&#13;         在 <TT
CLASS="filename"
>obj.conf</TT
> 中配置默认对象(对于虚拟服务器的类
         [版本 6.0+] 是在 <TT
CLASS="filename"
>vserver.obj.conf</TT
> 中):
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="programlisting"
>&#60;Object name="default"&#62;
.
.
.
.#注意 下面一行添加在所有“ObjectType”之后,所有“AddLog”之前
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
&#60;/Object&#62;</PRE
></TD
></TR
></TABLE
>
         (PHP &#62;= 4.3.3)作为附加的参数,可以在
         <TT
CLASS="filename"
>php.ini</TT
> 中添加一些特别的配置选项。例如可以设置
         <TT
CLASS="literal"
>docroot="/path/to/docroot"</TT
> 指向
         <TT
CLASS="literal"
>php4_execute</TT
> 被调用的上下文(context)。对于布尔 ini
         键值,请使用 0/1 作为其值,而不是
         <TT
CLASS="literal"
>"On"、"Off"</TT
> 等(它们是无效的),例如,使用
         <TT
CLASS="literal"
>zlib.output_compression=1</TT
>,而不应使用
         <TT
CLASS="literal"
>zlib.output_compression="On"</TT
>。
        </P
></LI
><LI
><P
>&#13;         本步骤仅在需要配置一个由 PHP 脚本组成的目录时由必要执行(类似于一个
         <TT
CLASS="filename"
>cgi-bin</TT
> 目录):
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="programlisting"
>&#60;Object name="x-httpd-php"&#62;
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
&#60;/Object&#62;</PRE
></TD
></TR
></TABLE
>
         之后,可以在管理服务器中配置一个目录,分配给它 <TT
CLASS="literal"
>x-httpd-php</TT
>
         风格(style)。这样在该目录中的所有文件都会被当作 PHP 来执行。这样就能很方便的将
         PHP 文件更名为 <TT
CLASS="filename"
>.html</TT
> 以隐藏 PHP。
        </P
></LI
><LI
><P
>&#13;         认证的设置:PHP 认证不能与其它任何类型的认证一起工作。所有认证被传递到 PHP
         脚本。要为整个服务器配置 PHP 认证,在默认对象中添加下面一行:
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="programlisting"
>&#60;Object name="default"&#62;
AuthTrans fn=php4_auth_trans
.
.
.
&#60;/Object&#62;</PRE
></TD
></TR
></TABLE
>
        </P
></LI
><LI
><P
>&#13;         要在单一目录使用 PHP 认证,添加如下内容:
         <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="programlisting"
>&#60;Object ppath="d:\path\to\authenticated\dir\*"&#62;
AuthTrans fn=php4_auth_trans
&#60;/Object&#62;</PRE
></TD
></TR
></TABLE
>
        </P
></LI
></OL
>
     </P
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
      PHP 使用的堆栈大小取决于 web 服务器的配置。如果运行很大的 PHP
      脚本时程序崩溃,推荐在 Admin Server(在“MAGNUS EDITOR”一节)中增大此项。
     </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="install.unix.sun.phpini"
>CGI 环境和对 php.ini 推荐的修改</A
></H2
><P
>&#13;     当编写 PHP 脚本时,应特别注意 Sun JSWS/Sun ONE
     WS/iPlanet/Netscape 是一个多线程 web 服务器。因此,所有请求都运行在相同的进程空间(Web
     服务器自己的空间),该空间仅有一套环境变量。如果想获得 CGI
     变量,例如 <TT
CLASS="literal"
>PATH_INFO</TT
>、<TT
CLASS="literal"
>HTTP_HOST</TT
> 等,使用原有的
     PHP 3.x 的方式(<A
HREF="function.getenv.html"
><B
CLASS="function"
>getenv()</B
></A
>),或使用类似的方式(注册全局变量到环境变量,
     <TT
CLASS="literal"
>$_ENV</TT
>),都是不可行的。只能获得运行中的 web
     服务器的环境变量,而不能获得任何有效的 CGI 变量!
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
      为什么在环境中存在(无效的)CGI 变量?
     </P
><P
>&#13;      答:这是因为从管理服务器中启动 web 服务器进程时,运行了 web
      服务器的启动脚本,它事实上是一个 CGI 脚本(管理服务器中的一个 CGI
      脚本!)。这便是为什么启动的 web 服务器包含一些 CGI 变量。可以尝试不从管理服务器启动
      web 服务器,用 root 用户登录使用命令行手动启动它,会发现这些 CGI 形式的变量不复存在。
     </P
></BLOCKQUOTE
></DIV
><P
>&#13;     要在 PHP 4.x 中正确获得 CGI 变量,仅需修改脚本使用超级全局变量
     <TT
CLASS="literal"
>$_SERVER</TT
>。如果老脚本中使用了
     <TT
CLASS="literal"
>$HTTP_HOST</TT
> 等变量,应该在 <TT
CLASS="filename"
>php.ini</TT
> 中打开
     <TT
CLASS="literal"
>register_globals</TT
>,并且要修改变量顺序(注意:从中删除 <TT
CLASS="literal"
>"E"</TT
>,因为不需要这里的环境变量):
     <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"
>错误页面及自造目录列表的特别使用 (PHP &#62;= 4.3.3)</A
></H2
><P
>&#13;     可以使用 PHP 为 <TT
CLASS="literal"
>"404 Not Found"</TT
> 或类似的错误代码生成错误页面。将下面几行添加到
     <TT
CLASS="filename"
>obj.conf</TT
> 中以覆盖默认的错误页面:
     <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
>
     <TT
CLASS="literal"
>XXX</TT
> 是 HTTP 错误代码。请删除任何可能干扰 <TT
CLASS="literal"
>Error</TT
>
     设置的指令。如果想为所有可能存在的错误提供一个页面,则将 <TT
CLASS="literal"
>code</TT
> 参数删除。脚本可以通过
     <TT
CLASS="literal"
>$_SERVER['ERROR_TYPE']</TT
> 获得 HTTP 状态代码。
    </P
><P
>&#13;     另一种可能是生成自造目录列表。只要创建一个 PHP 脚本,来显示目录列表
     并在 <TT
CLASS="filename"
>obj.conf</TT
> 中为 <TT
CLASS="literal"
>type="magnus-internal/directory"</TT
>
     将相应的默认 <TT
CLASS="literal"
>Service</TT
> 行替换为:
     <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
>
     错误和目录列表页面中,原始的 URI 和翻译的 URI 均被分别储存在
     <TT
CLASS="literal"
>$_SERVER['PATH_INFO']</TT
> 和
     <TT
CLASS="literal"
>$_SERVER['PATH_TRANSLATED']</TT
> 变量中。
    </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="install.unix.sun.notes"
>关于 <A
HREF="function.nsapi-virtual.html"
><B
CLASS="function"
>nsapi_virtual()</B
></A
> 和子请求的注意事项(PHP &#62;= 4.3.3)</A
></H2
><P
>&#13;     NSAPI 模块现在支持 <A
HREF="function.nsapi-virtual.html"
><B
CLASS="function"
>nsapi_virtual()</B
></A
>
     函数(别名:<A
HREF="function.virtual.html"
><B
CLASS="function"
>virtual()</B
></A
>),用来在 web
     服务器上创建子请求(subrequests)和在
     web 页面插入请求的结果。此函数使用了一些 NSAPI 中还没有文档说明的函数。在 Unix
     下,该模块自动查找需要的函数,若它们存在则使用它们。若不存在,函数
     <A
HREF="function.nsapi-virtual.html"
><B
CLASS="function"
>nsapi_virtual()</B
></A
> 被禁用。
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
      但是要注意,对 <A
HREF="function.nsapi-virtual.html"
><B
CLASS="function"
>nsapi_virtual()</B
></A
> 的支持是试验性质的!
     </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.fhttpd.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>起始页</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="install.unix.commandline.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>fhttpd 服务器</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="install.unix.html"
ACCESSKEY="U"
>上一级</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>CGI 和命令行设置</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>