精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● PHP>>安装配置>>PHP安装手册 - Apache

主题:PHP安装手册 - Apache
发信人: dalasthunder(Dallas)
整理人: dalasthunder(2002-07-30 15:52:21), 站内信件
(本文翻译自2002-07-26 PHP安装文档Apache部分,原文见:
http://www.php.net/manual/en/install.apache.php
包括部分用户加贴,但需要自行验证。
注意!在Apache for Windows下安装之前需要先进行
PHP安装手册 - Windows
一文中所提到的步骤!


Server-Apache

本节包括Apache下安装PHP(包括Unix和Windows)的说明和提示。

Unix下的Apache中安装PHP的详细资料

你可以根据完整配置选项列表在以下第10行中加入你选择的参数。这里把具体版本号
略去了以确保本说明的正确性。你需要把下面的'xxx'替换成你得到的文件中确切的数值。

例 3-5. PHP 4的Apache共享模块版本安装说明

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx
10. ./configure --with-mysql --with-apxs=/www/bin/apxs
11. make
12. make install

  如果在安装之后你决定修改配置选项,那么只需重复以上最后三步。
  只须重新启动Apache就可以使新模块生效。不需要重新编译Apache。

11. cp php.ini-dist /usr/local/lib/php.ini

  你可以编辑php.ini来设置PHP选项。如果你想把php.ini放在其他
  目录,在第10步加上以下选项:
  --with-config-file-path=/path

12. 编辑 httpd.conf 或者 srm.conf 文件,确认以下两行存在并且
    没有被注释:
  
   AddType application/x-httpd-php .php
   LoadModule php4_module        libexec/libphp4.so
 
  你可以在这里使用任何后缀。.php 只是我们建议的一个。你甚至可以
  加上 .html,以及 .php3 以确保向下兼容。
 
  在 LoadModule 语句右边的路径必须指向你的PHP模块所在的路径。
  如果按照以上步骤进行那么上面的语句是正确的。

13. 用你通常的过程启动Apache。(你必须完全停止Apache,再重新启动。
    而不是用 HUP 或者 USR1 信号使Apache重新加载。)

根据你的Unix系统和Apache安装方法的不同,有很多方法停止和重启动Apache。
以下是一些不同的Apache/Unix下重启动Apache的典型命令。你需要把
/path/to/ 替换成你系统上的确切路径。

1. 在一些 Linux 和 SysV 的变种下:
/etc/rc.d/init.d/httpd restart

2. 使用 apachectl 脚本:
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl 和 httpsdctl (使用了 OpenSSL), 类似 apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. 使用了 mod_ssl,或其他 SSL 服务器,你可能需要手工重启动:
/path/to/apachectl stop
/path/to/apachectl startssl

apachectl和http(s)dctl程序所在的路径通常不固定。如果你的系统中有 locate
或者 whereis 或者 which 命令,那么可以帮你找到这些控制程序。

编译PHP for Apache的不同例子还有:

./configure --with-apxs --with-pgsql

这个配置将生成在Apache的httpd.conf文件中用LoadModule加载的 libphp4.so 共享库。
而PostgreSQL支持将嵌入到 libphp4.so 库中。

./configure --with-apxs --with-pgsql=shared

这个配置将生成Apache的libphp4.so共享库,并且还生成 pgsql.so 共享库,可以在
php.ini文件中用 extension 指令加载,或者在PHP程序中用 dl() 函数加载。

./configure --with-apache=/path/to/apache_source --with-pgsql

这个配置将生成 libmodphp4.a 库,mod_php4.c 和一些相关的文件并且拷贝到Apache
源程序目录中的 src/modules/php4 目录中。然后用
--activate-module=src/modules/php4/libphp4.a
编译Apache,Apache编译系统会生成 libphp4.a 并且将其静态地连接到 httpd 程序中。
PostgreSQL支持也直接包括在这个 httpd 程序中了,因此最终结果是单一的一个包括了
所有Apache和PHP支持的 httpd 可执行文件。

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

这个配置和上面一样 - 除了没有在最后的 httpd 可执行文件中包括 PostgreSQL的支持
以及生成了一个 pgsql.so 共享库以外。该共享库可以在php.ini中或者用 dl()函数加载。

当选择不同的方法编译PHP时,需要考虑每种方法的优势和缺点。用共享对象方式编译
PHP意味着可以单独编译Apache,并且不用在添加或修改了PHP的时候重新编译所有程序。
用内置方法编译PHP(静态方式)意味着PHP可以加载和运行得更快。更多信息见Apache的
DSO支持网页

  注意:Apache默认的httpd.conf文件中目前包括以下内容:
  
  User nobody
  Group "#-1"
  

  除非你把它修改成 "Group nogroup" 或者类似的("Group daemon"也很通用),PHP
  将不能打开文件。

  注意:确认在使用 --with-apxs=/path/to/apxs 时指向Apache安装后的目录
  中的apxs。绝对不能用Apache源程序中的apxs而要用安装后的apxs。

Windows下在Apache 1.3.x中安装PHP

有两种方式使PHP工作于Windows下的Apache 1.3.x。一种是CGI方式(php.exe),另一种
是使用Apache模块DLL。不管哪种方式都需要停止Apache,编辑 srm.conf 或者 httpd.conf
来配置Apache以加入PHP支持。

值得在这里指出现在Windows下的SAPI模块更加稳定了,我们推荐使用模块方式,因为
更加透明和安全。

尽管有几种不同方法在Apache下配置PHP,但是对新手来说还是非常简单易用的。
有关更多的httpd.conf配置指令请参考Apache文档。

如果你按照PHP安装手册 - Windows一文中的“手工安装步骤”部分把PHP解压缩到了
c:\php\ 目录下,那么需要加入以下三行到Apache配置文件中以CGI方式安装:

ScriptAlias /php/ "c:/php/" 
AddType application/x-httpd-php .php .phtml 
Action application/x-httpd-php "/php/php.exe"

注意上面第二行在原来的httpd.conf中就有的,不过被注释了。还有记住用你自己
放置PHP的路径替代 c:/php/ 。

警告
在CGI方式下,你的服务器可能会受到几种攻击的影响。阅读CGI安全部分学习如何
防止攻击。

如果你想在Apache中用模块方式使用PHP,确认把 php4ts.dll 拷贝到 
windows/system(Windows 9x/Me) 或者 winnt/system32(Windows NT/2000/XP)目录下,
覆盖原来的文件。然后再Apache配置文件中加入以下两行:

LoadModule php4_module c:/php/sapi/php4apache.dll 
AddType application/x-httpd-php .php .phtml 

修改了配置文件之后记住重新启动Apache,例如 NET STOP APACHE 然后再 NET START APACHE,
如果你的Apache作为Windows的服务安装。或者用你通常使用的快捷方式。

  注意:在用Apache的Windows installer安装之后,你可能发现需要在
  httpd.conf文件中用AddModule指令定义mod_php4.c。在配置文件接近开头的地方
  有一些AddModule指令,在其中加入 AddModule mod_php4.c 一行。如果定义了
  ClearModuleList指令的话这一步尤其重要。如果不这么做可能会导致PHP不能
  被注册为Apache的模块。

有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了
Apache的SAPI模块方式使用PHP,那么加入下面一行就可以使用本特色:
AddType application/x-httpd-php-source .phps 

如果你用CGI方式使用PHP,那你需要用 show_source() 函数。建立一个PHP文件,
加入以下代码:<?php show_source("original_php_script.php"); ?>。用你想
要显示源代码的文件名替换掉 original_php_script.php。

  注意:在Windows-Apache组合中,所有路径中的反斜线例如
  "c:\directory\file.ext"都必须转换成斜线,如 "c:/directory/file.ext"。

用户添加贴
Servers-Apache

[email protected]
24-Nov-2001 05:34

Windows XP (Windows NT 5.1 build 2600)
Apache/1.3.22 (Win32) PHP/4.0.6

Apache错误日志中得到如下错误:
"[error] Cannot remove module mod_php4.c: not found in module list"
阅读了一小时手册后我尝试了官方的建议,在httpd.conf中的
"ClearModuleList" 列表之后加入
"AddModule mod_php4.c"
结果不灵。

不过我得到启示,在"ClearModuleList"之后加入以下三行:

LoadModule php4_module c:/php4/sapi/php4apache.dll
AddType application/x-httpd-php .php
AddModule mod_php4.c

最后测试代码运行通过了。
<?php phpinfo();?>

/Jorgen Hedlund
 
[email protected]
26-Feb-2002 07:54

 
PHP 4.1.1附带的INSTALL文件非常好使(而且比这一页的说明更清楚)。
但是有一小点,如果你用了附带 mod_ssl 的Apache,那你需要在
httpd.conf中把LoadModule和AddModule两行放在<IfDefine SSL>标签
的外面,否则如果你的Apache没有SSL(例如没有定义SSL),PHP不能运行。

[email protected]
01-Mar-2002 04:09

如果你想在Apache 2.0.x下使用PHP,你需要这么做:

首先,确认你再配置PHP时使用了 --with-apxs2 选项,例如
 --with-apxs2=/path/to/apache2/apxs
你需要用这个替代  --with-apxs。其次,编辑httpd.conf时,
用以下内容:

<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
</Files>

替代AddType,放在你通常添加AddType的地方。
此方法在 PHP 4.1.2 和 Apache 2.0.28 下通过

[email protected]
08-Apr-2002 09:23

以上关于AddModule的安装中有一小点“注意”,这应该放在安装指南的正文部分
而不只是一个“注意”。Apache如今默认安装时清除了所有的模块然后再一个接一个
重新添加,所以在使用DSO时确认有以下几行:

LoadModule php4_module c:/php/sapi/php4apache.dll 
AddType application/x-httpd-php .php .php3 .inc

然后在:

ClearModuleList
AddModule mod_so.c ...

的后面加上:

AddModule mod_php4.c

很可惜 msi 安装时没有添加这些。

[email protected]
19-Apr-2002 02:45

为了使PHP在Apache 2.0.35下运行,在Apache配置文件中我添加了
以下两行:

LoadModule php4_module /usr/libexec/libphp4.so
AddType application/x-httpd-php .php

不知道什么原因,编译PHP时没有把libphp4.so加入到Apache的路径中。
我发现可以在Load Module中用完整的路径,这样就可以运行了。

[email protected]
24-Apr-2002 08:38

Windows下怎样在Apache/2.0.35中安装PHP 4.2:

- 按照通常的安装指南进行
- 编辑Apache 2的 "httpd.conf" 文件
- 加入以下两行:

LoadModule php4_module c:\php\experimental\apache2filter.dll
AddType application/x-httpd-php .php .phtml .php3

[email protected]
21-May-2002 07:06

以上所有的解决方案在win2k server, apache 2.0.36和php4.2.1下都好使
只除了一点,我要用:

LoadModule php4_module c:\php\sapi\php4apache2.dll

用反斜线代替路径中的斜线,否则Apache不启动。希望能帮到一些人。

[email protected]
22-May-2002 12:23
?
好使的 FREEBSD 4.5/APACHE 2.0.36 下安装 PHP 4.2.1 方法
注意:你必须安装 GNU PTH  (从 ftp://ftp.gnu.org/gnu/pth/ 下载,或者
从你的Freebsd光盘中安装)

(APACHE)
gunzip apache_xxx.tar.gz
tar -xvf apache_xxx.tar
cd apache_xxx
./configure --prefix=/var/www --enable-module=so  
(修改 --prefix 为你想要的安装目录)

make clean
make
make install

(PHP)
gunzip php-xxx.tar.gz
tar -xvf php-xxx.tar
cd ../php-xxx
./configure --with-mysql --with-tsrm-pth  --with-apxs2=/var/www/bin/apxs 
make clean
make
make install

此方法在我的系统下通过。

[email protected]
26-Jun-2002 02:23

PHP 4.2.1 不支持 Apache 2.0.39,但是在开发版本中支持。你需要到:
http://snaps.php.net/win32
去看
snapshot-STABLE.log
文件,如果其中有一行:
Building php4apache2 OK
那么就下载该版本,此版本应该能够运行。

[email protected]
26-Jun-2002 05:11

经过长时间寻找我终于找到一个PHP 4的SAPI模块可以在Win32的Apache 2.0.39下运行。
如果你访问我的站点(建设中),在 downloads 部分。

http://insodus.servehttp.com/Exosoft/

或者直接点击下载:

http://insodus.servehttp.com/Exosoft/_downloads/php4apache2.dll

如果此文件有问题(不要问别的问题!)请给我发邮件:[email protected]

[email protected]
27-Jun-2002 03:25

我在Suse Linux下安装Apache 2.0.39和PHP 4.2.1,结果不行。先是Apache说原先
PHP 4.2.0的模块不兼容,然后在编译 PHP 4.2.1 时又出错。
最终我搞定了。解决方法是:
1. 按照INSTALL文件上的方法安装apache 2.0.39
2. 修改文件 <PHP4.2.1source>/sapi/apache2filter/php_functions.c 中的
   第 93 行,把
    MODULE_MAGIC_AT_LEAST  改成
    AP_MODULE_MAGIC_AT_LEAST
3. ./configure --with-mysql --with-apxs2=<path to apxs within Apache 2>
4. make clean
5. make (注意观察错误信息。原先在这里会出错,但是经过上述修改后不出错了)
6. make install -i (-i 用来忽略错误。本来在安装到 install-sapi: 部分时会出错,
   但是忽略错误后就没问题了。)

希望我帮到了一些可怜的家伙使他们没有浪费一整天。

                           Siderite
 
[email protected]
05-Jul-2002 01:40

这里有一个最新的php4apache2.dll文件,我放在两台服务器上:

http://www.ubbdev.com/columns/mattjacob/server/php4apache2.dll
http://www.rocketweasel.com/files/php4apache2.dll

你需要下载此文件,保存到你的 /php/sapi 目录下(覆盖原来的文件),
然后修改httpd.conf文件。在我的环境下工作正常。

LoadModule php4_module c:/php/sapi/php4apache2.dll
 
[email protected]
10-Jul-2002 05:10

PHP 4.2.1 and Apache 2.0.39

终于搞定了!我是这样做的:

1) 下载和安装以下东东:
        snaps.php.net 下载最新稳定版 PHP (2002-7-10 9 AM 的版本)
        ftp.gnu.org/gnu/pth/ 下载 pth-1.4.1.tar.gz (可能有用)

2) 配置 apache:
        ./configure --prefix=/path/to/apache --with-module=so
make clean, make, make install
        (注意:这一步非必需,我只是想说清楚一些,我自己也没有做这一步。)

3) 安装新的稳定版 PHP 4.2.1 并且做以下修改:
        在 'path/to/php/ext/standard 目录下修改文件 microtime.c,
        把第 31 行注释掉:
        #ifedf HAVE_SYS_RESOURCE_H 改成
        /* #ifedf HAVE_SYS_RESOURCE_H */
        还有第 33 行:
        #endif 改成
        /* #endif */
        我不知道问题出在哪里。我只知道第 32 行是需要的,所以这么干。
        前面那个 php_functions.c 的问题似乎已经搞好了,所以不用修改。

4) 配置 php:
        make distclean
        ./configure --with-mysql --with-zlib --with-apxs2=/usr/local/apache/bin/apxs
        注意:/usr/local/apache 是我的Apache所在路径!你的路径可能是:
        /I/like/grandma/bin/apxs  (呵呵...)
        make clean, make 
        注意:在make的过程中我得到了6个有关RLIM_INFINITY被再次定义的警告。
        这个可能和我的 resource.h 版本不同有关,可能是我升级内核导致的。
        不用担心,如果你遇到了,只是警告而已。
make install

5) 到 /usr/local/apache/conf 目录下编辑 httpd.conf
        确认有 'AddType application/x-httpd-php .php' 这一行
        居然没有!谣传会自动放上这一行,哼!
        还要确认有 'LoadModule php4_module modules/libphp4.so' 这一行
        确实有。嗯,很好。
        apachectl start 
        编辑一个 helloworld.php
        打开你的浏览器,搞定了!
        一边跳舞一边大叫“哈里路亚”!办公室的人好笑地望着你。

伙计,希望我节约了一些人一些时间!
 
[email protected]
15-Jul-2002 07:31

在Apache2下尝试用SAPI方式使用PHP简直让我发疯,最后我加入:
   ScriptAlias /php/ "c:/php/"
   AddType application/x-httpd-php .php
   Action application/x-httpd-php "/php/php.exe"

这样就可以了。
 
[email protected]
15-Jul-2002 11:49

我编写了一个在Windows XP Pro下安装Apache 2.0.39, PHP 4.2.1和Tomcat 4.0.4
(JSP 支持)的快速指南。如果你觉得有用请告诉我。

http://mpcon.org/temp/how2install_apache_w_php_jsp_support.doc
 




----
┏━━━━┯━━━━┓
┃孝敬父母│爱护兄弟┃
┠────┼────┨
┃体贴老婆│关心朋友┃
┗━━━━┷━━━━┛
        

[关闭][返回]