<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >怎样修改配置设定</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="运行时配置" HREF="configuration.html"><LINK REL="PREVIOUS" TITLE="运行时配置" HREF="configuration.html"><LINK REL="NEXT" TITLE="语言参考" HREF="langref.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="configuration.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >章 9. 运行时配置</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="langref.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="configuration.changes" >怎样修改配置设定</A ></H1 ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="configuration.changes.apache" >PHP 运行于 Apache 模块方式</A ></H2 ><P > 当使用 PHP 作为 Apache 模块时,也可以用 Apache 的配置文件(例如 <TT CLASS="filename" >httpd.conf</TT >)和 <TT CLASS="filename" >.htaccess</TT > 文件中的指令来修改 PHP 的配置设定。需要有“AllowOverride Options”或“AllowOverride All”权限才可以。 </P ><P > 在 PHP 4 和 PHP 5 中,有几个 Apache 指令可以使用户在 Apache 配置文件内部修改 PHP 的配置。哪些指令属于 <TT CLASS="constant" ><B >PHP_INI_ALL</B ></TT >,<TT CLASS="constant" ><B >PHP_INI_PERDIR</B ></TT > 或 <TT CLASS="constant" ><B >PHP_INI_SYSTEM</B ></TT > 中的哪一个,请参考附录中的 <A HREF="ini.html#ini.list" >php.ini 配置选项列表</A >。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 在 PHP 3 中,每个 <TT CLASS="filename" >php3.ini</TT > 中的配置设定都有相应的 Apache 指令,不过名字前要加上前缀“php3_”。 </P ></BLOCKQUOTE ></DIV ><P > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><SPAN CLASS="systemitem" >php_value</SPAN > <CODE CLASS="parameter" >name</CODE > <CODE CLASS="parameter" >value</CODE ></DT ><DD ><P > 设定指定的值。只能用于 <TT CLASS="constant" ><B >PHP_INI_ALL</B ></TT > 或 <TT CLASS="constant" ><B >PHP_INI_PERDIR</B ></TT > 类型的指令。要清除先前设定的值,把 value 设为 <TT CLASS="literal" >none</TT >。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 不要用 <SPAN CLASS="systemitem" >php_value</SPAN > 设定布尔值。应该用 <SPAN CLASS="systemitem" >php_flag</SPAN >(见下面)。 </P ></BLOCKQUOTE ></DIV ></DD ><DT ><SPAN CLASS="systemitem" >php_flag</SPAN > <CODE CLASS="parameter" >name</CODE > <CODE CLASS="parameter" >on|off</CODE ></DT ><DD ><P > 用来设定布尔值的配置指令。仅能用于 <TT CLASS="constant" ><B >PHP_INI_ALL</B ></TT > 和 <TT CLASS="constant" ><B >PHP_INI_PERDIR</B ></TT > 类型的指令。 </P ></DD ><DT ><SPAN CLASS="systemitem" >php_admin_value</SPAN > <CODE CLASS="parameter" >name</CODE > <CODE CLASS="parameter" >value</CODE ></DT ><DD ><P > 设定指定的指令的值。<SPAN CLASS="emphasis" ><I CLASS="emphasis" >不能用于</I ></SPAN > <TT CLASS="filename" >.htaccess</TT > 文件。任何用 <SPAN CLASS="systemitem" >php_admin_value</SPAN > 设定的指令都不能被 <TT CLASS="filename" >.htaccess</TT > 或 virtualhost 中的指令覆盖。要清除先前设定的值,把 value 设为 <TT CLASS="literal" >none</TT >。 </P ></DD ><DT ><SPAN CLASS="systemitem" >php_admin_flag</SPAN > <CODE CLASS="parameter" >name</CODE > <CODE CLASS="parameter" >on|off</CODE ></DT ><DD ><P > 用来设定布尔值的配置指令。<SPAN CLASS="emphasis" ><I CLASS="emphasis" >不能用于</I ></SPAN > <TT CLASS="filename" >.htaccess</TT > 文件。任何用 <SPAN CLASS="systemitem" >php_admin_flag</SPAN > 设定的指令都不能被 <TT CLASS="filename" >.htaccess</TT > 或 virtualhost 中的指令覆盖。 </P ></DD ></DL ></DIV > </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN2607" ></A ><P ><B >例 9-2. Apache 配置例子</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="ini" ><IfModule mod_php5.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag safe_mode on </IfModule> <IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag safe_mode on </IfModule> <IfModule mod_php3.c> php3_include_path ".:/usr/local/lib/php" php3_safe_mode on </IfModule></PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><DIV CLASS="caution" ><P ></P ><TABLE CLASS="caution" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >小心</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P > PHP 常量不存在于 PHP 之外。例如在 <TT CLASS="filename" >httpd.conf</TT > 中不能使用 PHP 常量如 <TT CLASS="constant" ><B >E_ALL</B ></TT > 或 <TT CLASS="constant" ><B >E_NOTICE</B ></TT > 来设定 <A HREF="ref.errorfunc.html#ini.error-reporting" >error_reporting</A > 指令,因为其无意义,实际等于 <SPAN CLASS="emphasis" ><I CLASS="emphasis" >0</I ></SPAN >。应该用相应的掩码值来替代。这些常量可以在 <TT CLASS="filename" >php.ini</TT > 中使用。 </P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="configuration.changes.windows" >通过 Windows 注册表修改 PHP 配置</A ></H2 ><P > 在 Windows 下运行 PHP 时,可以用 Windows 注册表以目录为单位来修改配置。配置值存放于注册表项 <TT CLASS="literal" >HKLM\SOFTWARE\PHP\Per Directory Values</TT > 下面,子项对应于路径名。例如对于目录 <TT CLASS="literal" >c:\inetpub\wwwroot</TT > 的配置值会存放于 <TT CLASS="literal" >HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot</TT > 项下面。其中的设定对于任何位于此目录及其任何子目录的脚本都有效。项中的值的名称是 PHP 配置指令的名字,值的数据是字符串格式的指令值。值中的 PHP 常量不被解析。不过只有可修改范围是 PHP_INI_USER 的配置值可以用此方法设定,PHP_INI_PERDIR 的值就不行。 </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="configuration.changes.other" >其它接口下的 PHP</A ></H2 ><P > 无论怎样运行 PHP,都可以在脚本中通过 <A HREF="function.ini-set.html" ><B CLASS="function" >ini_set()</B ></A > 而在运行时修改某个值。更多信息见手册中 <A HREF="function.ini-set.html" ><B CLASS="function" >ini_set()</B ></A > 的页面。 </P ><P > 如果对自己系统中的配置设定及其当前值的完整列表感兴趣,可以运行 <A HREF="function.phpinfo.html" ><B CLASS="function" >phpinfo()</B ></A > 函数并查看其结果的页面。也可以在运行时用 <A HREF="function.ini-get.html" ><B CLASS="function" >ini_get()</B ></A > 或 <A HREF="function.get-cfg-var.html" ><B CLASS="function" >get_cfg_var()</B ></A > 取得个别配置指令的值。 </P ></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="configuration.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="langref.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >运行时配置</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="configuration.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >语言参考</TD ></TR ></TABLE ></DIV ></BODY ></HTML >