<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Unix 系统下的 Apache 2.0</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="Unix 系统下的安装" HREF="install.unix.html"><LINK REL="NEXT" TITLE="Caudium 服务器" HREF="install.caudium.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.unix.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.caudium.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="install.unix.apache2" >Unix 系统下的 Apache 2.0</A ></H1 ><P > 本节包括在 Unix 平台的 Apache 2.0 下安装 PHP 的说明和提示。 </P ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >警告</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P >不推荐将线程化 MPM 用于实际运作的 Apache 2 环境中去。用 prefork MPM 替代,或者用 Apache 1。其原因见 FAQ 中的<A HREF="faq.installation.html#faq.installation.apache2" >使用线程化 MPM 的 Apache2</A >。</P ></TD ></TR ></TABLE ></DIV ><P > 推荐阅读 <A HREF="http://httpd.apache.org/docs/2.0/" TARGET="_top" >Apache 文档</A >,了解一下 Apache 2.0 服务器。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >PHP 和 Apache 2.0.x 兼容性注意事项: </B > 已知下列版本的 PHP 可以工作于最近版本的 Apache 2.0.x 之下: <P ></P ><UL COMPACT="COMPACT" ><LI ><SPAN > PHP 4.3.0 或更高版本,可从 <A HREF="http://www.php.net/downloads.php" TARGET="_top" >http://www.php.net/downloads.php</A > 下载。 </SPAN ></LI ><LI ><SPAN > 最新的稳定开发版。取得源代码 <A HREF="http://snaps.php.net/php5-latest.tar.gz" TARGET="_top" >http://snaps.php.net/php5-latest.tar.gz</A > 或下载 Windows 可执行程序 <A HREF="http://snaps.php.net/win32/php5-win32-latest.zip" TARGET="_top" >http://snaps.php.net/win32/php5-win32-latest.zip</A >。 </SPAN ></LI ><LI ><SPAN > 预发布版,可从 <A HREF="http://qa.php.net/" TARGET="_top" >http://qa.php.net/</A > 下载。 </SPAN ></LI ><LI ><SPAN > 总是可以通过<A HREF="http://www.php.net/anoncvs.php" TARGET="_top" >匿名 CVS</A > 取得 PHP。 </SPAN ></LI ></UL > 以上版本的 PHP 与 Apache 2.0.40 或更高版本兼容。 </P ><P > Apache 2.0 <TT CLASS="literal" >SAPI</TT > 支持自 PHP 4.2.0 起。PHP 4.2.3 可工作于 2.0.39,不要用任何其它版本的 Apache 与 PHP 4.2.3 配合。不过推荐的设置是用 PHP 4.3.0 或更高版本与最新版的 Apache2 配合使用。 </P ><P > 所有提及的 PHP 版本仍然能工作于 Apache 1.3.x 之下。 </P ></BLOCKQUOTE ></DIV ><P > 下载最新版本的 <A HREF="http://www.apache.org/" TARGET="_top" >Apache 2.0</A >,并且根据上文选择合适版本的 PHP 下载。本向导仅包含最基础的内容,只能让 Apache 2.0 和 PHP 能够正常工作。更多信息请阅读 <A HREF="http://httpd.apache.org/docs/2.0/" TARGET="_top" >Apache 文档</A >。这里省略所有的版本号,以保证本文的正确性。需要将本文的“NN”替换为相应的版本号。 </P ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN528" ></A ><P ><B >例 4-4. 安装说明(Apache 2 共享模块版本) </B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >1. gzip -d httpd-2_0_NN.tar.gz 2. tar xvf httpd-2_0_NN.tar 3. gunzip php-NN.tar.gz 4. tar -xvf php-NN.tar 5. cd httpd-2_0_NN 6. ./configure --enable-so 7. make 8. make install 现在已经将 Apache 2.0.NN 安装在 /usr/local/apache。本安装支持可装载模块 和标准的 MPM prefork。之后,可以使用如下命令启动 Apache 服务器: /usr/local/apache2/bin/apachectl start 如果成功,可以停止 Apache 服务器并继续安装 PHP: /usr/local/apache2/bin/apachectl stop. 9. cd ../php4-NN 10. 现在需要配置 PHP。在这里可以用各种各样的参数来自定义PHP,例如启动哪些 扩展功能包的支持等。用 ./configure --help 命令可以列出当前可用的所有参 数。在此例中,将给出一个在有 MySQL 支持的 Apache 2 上进行配置的范例。 用户本地的 apxs 的路径可能会不同,事实上,在用户的系统中,它可能被命名为 apxs2。 ./configure --with-apxs2=/usr/local/apache2/bin/apxs 11. make 12. make install 如果决定在安装后改变配置选项,只需重复最后的三步,然后需要重新启动 Apache 使新模块生效。无需重新编译。 请注意,除非明确有提示,否则“make install”命令将安装 PEAR、各种 PHP 工具 诸如 phpize,安装 PHP CLI 等等。 13. 配置 php.ini cp php.ini-dist /usr/local/lib/php.ini 可以编辑 php.ini 文件以修改 PHP 的选项。如果想要把此文件放到另外的位置, 需要在步骤 10 添加 --with-config-file-path=/path 选项。 如果选择 php.ini -recommended,请务必阅读其中的变更的列表,它们将影响 PHP 的执行。 14. 编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 表达式右边的路径必须指向 系统中的 PHP。以上的 make install 命令可能已经完成了这些,但务必要检查。 对于 PHP 4: LoadModule php4_module modules/libphp4.so 对于 PHP 5: LoadModule php5_module modules/libphp5.so 15. 告知 Apache 将特定的扩展名解析成 PHP,例如,让 Apache 将扩展名 .php 解析成 PHP。可以将任何扩展名指定为 PHP,只需添加它们,每一个用空格分隔。 例如,要添加 .phtml: AddType application/x-httpd-php .php .phtml 通常还将 .phps 扩展名设置成显示高亮的 PHP 源文件,可以这样来完成: AddType application/x-httpd-php-source .phps 16. 启动 Apache 服务器: /usr/local/apache2/bin/apachectl start</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ><P > 按照上面的步骤便可以使 Apache 2.0 将 PHP 作为 <TT CLASS="literal" >SAPI</TT > 模块了。当然 Apache 和 PHP 都还有很多配置选项,可以在相应的源代码目录中使用 <B CLASS="command" >./configure --help</B > 获得更多信息。假如要编译一个多线程版本的 Apache 2.0,必须覆盖标准的 MPM-Module <TT CLASS="filename" >prefork</TT >,或者 <TT CLASS="filename" >worker</TT > 或者 <TT CLASS="filename" >perchild</TT >。要这样,需要在上面的第 6 步使用 <CODE CLASS="option" >--with-mpm=worker</CODE > 或者 <CODE CLASS="option" >--with-mpm=perchild</CODE > 选项。之前需要了解自己在做什么。更多信息请参考 Apache 文档中关于 <A HREF="http://httpd.apache.org/docs/2.0/mpm.html" TARGET="_top" >MPM-Modules</A > 的部分。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 如果要使用内容协商(content negotiation)机制,请阅读 <A HREF="faq.installation.html#faq.installation.apache.multiviews" >Apache MultiViews 常见问题</A >。 </P ></BLOCKQUOTE ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > 要编译多线程版本的 Apache,系统必须支持多线程。这也意味着需要将 PHP 编译为正处在试验阶段的 Zend Thread Safety(ZTS),因此并不是所有的扩展都可以使用了。推荐编译 Apache 使用标准的 <TT CLASS="filename" >prefork</TT > MPM-Module。 </P ></BLOCKQUOTE ></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.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.caudium.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Unix 系统下的安装</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="install.unix.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Caudium 服务器</TD ></TR ></TABLE ></DIV ></BODY ></HTML >