第三章 安装

本章目录
 
在UNIX下从源码安装
 
在Windows 95/NT下安装PHP
 
常见问题?
 
安全问题
 

本章将指导你PHP3的整个安装配置过程。你需要具备以下知识和软件:
(译者注:此处是指在UNIX下安装)

在UNIX下从源码安装 UNIX

下载源码

最新版的源码可以从次网站下载 http://www.php.net

安装的指令序列 (Apache模块版)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-3.0.x.tar.gz
4.  tar xvf php-3.0.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-3.0.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9.  make
10. make install
11. cd ../apache_1.3.x
12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
13. make
14. make install
  Instead of this step you may prefer to simply copy the httpd binary overtop
  of your existing binary.  Make sure you shut down your server first though.

15. cd ../php-3.0.x
16. cp php3.ini-dist /usr/local/lib/php3.ini
You can edit /usr/local/lib/php3.ini file to set PHP options.
If you prefer this file in another location, use --with-config-file=/path in step 8.

17. Edit your httpd.conf or srm.conf file and add: 
      
            AddType application/x-httpd-php3 .php3
 
  You can choose any extension you wish here.  .php3 is simply the one we suggest.   

18. Use your normal procedure for starting the Apache server.  

	

配置

有两种方法配置PHP3。

下面详细列出了一些不同的选项。

Apache 模块

要将PHP3建立为一个Apache的模块,请在问到"Build as an Apache module?" (用选项 --with-apache=DIR 来配置) 时回答 "yes ",并且提供Apache所在的目录。例如你将Apache解压到 /usr/local/www/apache_1.2.4,那么这就是你的Apache 所在的目录。默认的目录是 /usr/local/etc/httpd.

fhttpd 模块

要将PHP3建立为一个fhttpd的模块,请在问到"Build as an fhttpd module?" (用选项 --with-fhttpd=DIR 来配置)时回答 "yes ",并且提供fhttpd所在的目录。默认的目录是   /usr/local/src/fhttpd。如果你使用 fhttpd, 把PHP3建立为一个fhttpd的模块将提供良好的性能,更容易控制和远端执行的能力。

CGI 版本

默认设置是将PHP3安装成一个CGI程序。如果你使用可将PHP3作为模块的web server,建议你将它作为模块安装,这将获得更好的性能,CGI版本允许Apache的不同用户使用不同方式来运行含有PHP3程序的网页。 如果要做为CGI程序来用的话,请你先阅读有关 安全性的章节

数据库支持的选项

PHP3支持大量native数据库(和ODBC一样):

Adabas D

      --with-adabas=DIR
     

支持Adabas D的编译。该参数给出Adabas D的安装目录,其默认目录是 /usr/local/adabasd.

Adabas 的主页

dBase

      --with-dbase
     

允许绑定的DBase数据库的支持,不需要额外的库。

filePro

      --with-filepro
     

允许绑定的只读的filePro的支持,不需要额外的库。

mSQL

      --with-msql=DIR
     

允许mSQL的支持,该参数指明了mSQL的安装目录,默认目录是 /usr/local/Hughes 。这是mSQL 2.0的默认目录。 configure 程序会自动检测你的mSQL的版本,PHP3支持1.0 和2.0版,但是如果你将PHP3和mSQL 1.0一同编译则它只能存取mSQL 1.0的数据库。

参看 配置文件mSQL的配置

mSQL 的主页

MySQL

      --with-mysql=DIR
     

允许MySQL的支持,该参数指明了MySQL的安装目录,默认目录是 /usr/local

参看 配置文件MySQL 的配置

MySQL 的主页

iODBC

      --with-iodbc=DIR

允许iODBC的支持,该参数指明了iODBC的安装目录,默认目录是 /usr/local。iODBC是著名的运行于UNIX系统下的可自由分发的ODBC管理器。

FreeODBC 的主页

OpenLink ODBC

      --with-openlink=DIR
     

 

允许OpenLink的支持,该参数指明了OpenLink的安装目录,默认目录是 /usr/local/openlink.

OpenLink Software's 的主页

Oracle

      --with-oracle=DIR
     

允许Oracle的支持。经测试PHP至少和Oracle 7.0到7.3的各个版本能良好协作。该参数指明了ORACLE_HOME的目录。如果你已经建立起了Oracle的运行环境就不必再指定该参数了。

Oracle 的主页

PostgreSQL

      --with-pgsql=DIR
     

允许PostgreSQL的支持,该参数指明了PostgreSQL的安装目录,默认目录是 /usr/local/pgsql.

参看 配置文件Postgres 的配置

PostgreSQL 的主页

Solid

      --with-solid=DIR
     

 

允许Solid的支持,该参数指明了Solid的安装目录,默认目录是 /usr/local/solid.

Solid 的主页

Sybase

      --with-sybase=DIR
     

允许Sybase的支持,该参数指明了Sybase的安装目录,默认目录是 /home/sybase.

参看 配置文件Sybase 的配置

Sybase 的主页

Sybase-CT

      --with-sybase-ct=DIR
     

允许Sybase-CT的支持,该参数指明了Sybase-CT的安装目录,默认目录是 /home/sybase.

参看 配置文件Sybase-CT 的配置

Velocis

      --with-velocis=DIR
     

 

允许Velocis的支持,该参数指明了Velocis的安装目录,默认目录是   /usr/local/velocis.

Velocis 的主页

A custom ODBC library

      --with-custom-odbc=DIR
     

 

允许用户ODBC的支持,该参数指明了用户ODBC的目录,默认目录是 /usr/local 。这个选项是指当你运行configure程序时定义了 CUSTOM_ODBC_LIBS 。你还必须有一个可用的odbc.h的头文件,包含在你的include路径里。如果你没有,你必须建立它并在此包含你特定的头文件。你的头文件也许还需要一些扩展的定义, 尤其是当它支持多平台的时候。在CFLAGS中定义。

例如,你可以在通过这个办法在QNX中运行Sybase SQL Anywhere: CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50

统一的 ODBC

      --disable-unified-odbc
     

取消统一的ODBC的支持,统一的ODBC通常是对于所有的数据库的基于ODBC的接口, 例如Solid 和 Adabas D,以及普通的ODBC库。iODBC, Solid, Adabas D 和Sybase SQL Anywhere 已经通过测试。要使用此选项需要这些模块中的一个(也仅仅是一个)或Velocis模块是开启的, 或者指定了一个用户ODBC库。这个选项适用于使用了以下任意选项的情况: --with-iodbc, --with-solid, --with-adabas, --with-velocis, or --with-custom-odbc,

参考 配置文件Unified ODBC 的配置

LDAP

      --with-ldap=DIR
     

允许LDAP的支持,该参数指明了LDAP的安装目录,默认目录是 /usr/local/ldap.

更多信息请参考 RFC1777RFC1778

其他配置选项

--enable-maintainer-mode

      --enable-maintainer-mode
     

开启扩展的倚赖性检查和编译警告。用于部分PHP3开发者

--with-system-regex

      --with-system-regex
     

使用系统的正则表达式库来代替内置的库。如果你将PHP3建立为一个服务模块,则当你连接到这个服务器时你必须使用建立时的库。要是系统库提供给你一些你所需要的特殊方面,请将此项打开。如果可能的话建议采用内置的正则表达式。

--with-config-file-path

      --with-config-file-path=DIR
     

用于PHP启动时查找 php3.ini 文件

--with-exec-dir

      --with-exec-dir=DIR
     

在安全模式中只允许运行DIR目录下的程序。默认目录是 /usr/local/bin 。这是PHP的默认设置,以后可以按配置文件安全模式执行目录 所讲的方法重新设置。

--disable-debug

      --disable-debug
     

不要在库或可执行程序中包含调试信息。使用调试信息可以准确的找出bug,所以在PHP3程序的alpha或beta测试阶段可以打开它。

--enable-safe-mode

      --enable-safe-mode
     

默认为允许"safe mode" 。这强制限定了PHP能作什么,例如只能打开文档目录下的文件。要获得更多信息请阅读关于安全的章节 。 CGI用户通常允许安全模式。这是默认的选项,以后可以按配置文件安全模式 所讲的方法重新设置。

--enable-track-vars

      --enable-track-vars
     

使PHP3保留GET/POST/cookie变量来源的信息到HTTP_GET_VARS,HTTP_POST_VARS and HTTP_COOKIE_VARS数组中。这是默认选项,以后可以按配置文件track_vars 所讲的方法重新设置。

--enable-magic-quotes

      --enable-magic-quotes
     

默认为允许magic quotes。以后可以按配置文件 中  magic_quotes_runtime 所讲的方法重新设置。参看 magic_quotes_gpcmagic_quotes_sybase 项。

--enable-debugger

      --enable-debugger
     

允许内部的PHP3调试器支持。本功能尚在实验阶段。参看配置文件Debugger Configuration 。 

--enable-discard-path

      --enable-discard-path
     

如果这一选项开启,PHP程序包可以安全的放在WEB树以外的任何地方,没人能绕过 .htaccess文件规定的安全设置存取它。请阅读本选项在安全性章节中的相应部分

--enable-bcmath

      --enable-bcmath
     

允许bc类型的任意精度的数学函数。请参考 配置文件bcmath.scale 选项。

--enable-force-cgi-redirect

      --enable-force-cgi-redirect
     

允许内部服务器重定向的安全性检查。如果你在Apache中使用PHP的CGI版本,将要用到这一选项。

当把PHP作为一个CGI程序来运行时,默认情况下PHP总是首先检查它是否用于重定向执行(例如在Apache下, 使用Action操作)。这样就确保了PHP程序包不能越过标准的web server认证而直接调用。例如 http://my.host/cgi-bin/php/secret/doc.html,这个直接调用会忽略任何Apache对于/secret目录的安全性检查,而存取http://my.host/secret/doc.html这个文件。

不要关闭这项检查,也不要越过Apache的安全和认证设置。在你的Web server没有安全重定向功能时要采用这个选项,否则任何人都可以存取你的Web server根目录和用户目录下的所有文件。

请阅读 安全性章节中相应的部分

--disable-short-tags

      --disable-short-tags
     

禁止缩写的PHP3标记--<? ?>。如果你在XML中使用PHP3,则必须禁止缩写的PHP3标记而采用PHP3的完整标记 --<?php ?>这是默认的设置,你可以参考 配置文件 关于 PHP3缩写标记 的设置。

--enable-url-includes

      --enable-url-includes
     

允许PHP3的include()函数直接运行其他HTTP或FTP服务器下的代码。请参考配置文件i包含路径 的选项。

--disable-syntax-hl

      --disable-syntax-hl
     

关闭语法的高亮度显示。

CPPFLAGS and LDFLAGS

为了使 PHP3 安装程序在不同的目录下查找头文件和库文件,可以修改各自相应的环境变量CPPFLAGSLDFLAGS 。如果你使用智能型的shell, 你可以这样设置 LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure 。

Building

配置了PHP3后,你就可以使用 make 命令来建立可执行的CGI程序或PHP3库了。如果执行失败了,你又没能找出为什么,请看 问题解答部分

VPATH

Testing

当你把PHP3安装成一个CGI程序后,你可以通过敲入 make test 来测试安装结果。这是你及早发现PHP3在你的平台上运行所存在的问题,避免以后麻烦的的一个好办法。

Benchmarking

当你把PHP3安装成一个CGI程序后,你可以通过敲入 make bench 来评估一下安装结果。注意:如果在默认的安全模式下,测试程序执行时间超过允许的最长时间(即30秒)还没结束,它将不能结束。这是因为在安全模式下 设置时间限制 不可用。你需要使用 最长执行时间 控制你自己的script的执行时间。另外 make bench 会忽略 配置文件