文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP的安装与配置

PHP的安装与配置

时间:2008-04-13  来源:剑心通明


原文地址:
http://blog.csdn.net/husn/archive/2005/05/04/371901.aspx
2.1 环境需求与准备工作
在安装PHP做为WWW服务器的一部份时,可以考虑用UNIX系统,或者是 Windows NT/95 等
Win32 API 的平台。当然,在实际应用中大部份的人都会使用 UNIX 来当作 PHP 的执行平台 (在 Windows NT 的使用者大多数都会选择 IIS + ASP),但在学习中使用Windows平台是非常方便的。实际上,Linux + Apache + PHP是最经济的选择,因为这样的组合几乎是不用钱的,成本与效益之比几乎为零。而许多成功网站的经验,更是采用这种
组合最好的典范。
Linux系统方面,用户可以随便选择自己喜爱的Linux套件,包括 Slackware Linux、RedHat、OpenLinux、SuSE等等,因为这方面的软件使用上很容易而且很便宜就可以买到。
对学生而言,也可以去各大 FTP 站下载完整的系统安装。
Apache 服务器则是目前最多 WWW 网站所采用服务器。用户可以到 http://www.apache.org 下载最新版的程序及相关文件,若觉得从国外下载太慢的话,也可以到它的镜像站点去下载。
PHP 则可以去它的官方网站 http://www.php.net 下载所需要的程序。
虽然目前 WindowsNT 或者 Windows98 等 Win32 的作业平台也能安装 PHP 及 Apache 服务器,不过这似乎没什么优势,因为PHP和Apache在UNIX下可以跑得更快更好。
当然,若想使用商业化的平台,SUN、IBM、HP、DEC、SGI、NEC 等公司都有提供相关的UNIX 或者是 Windows NT 平台。加上高安全性调整过后的 Apache 服务器Stronghold
或是其它支持 SSL 的 Apache 版本,这种组合相信能满足商业化的需求。而 PHP 就扮演着快速方便的 CGI 角色,让客户对站点的服务品质更加满意
本章将指导PHP的整个安装配置过程。用户需要具备以下知识和软件:(注:此处是指在UNIX下安装)
l 基本的UNIX技能 (会操作"make"程序和一种 C 编译器)
l ANSI C 编译器
l 一个 Web Server (显然)
2.2 在UNIX下安装PHP
下载源码,最新版的源码可以从网站http://www.php.net下载。
2.2.1 快速设置及安装
以下是基本的安装动作,环境是UNIX系列的平台。在安装之前,要先下载 apache_1.3.x.tar.gz 及 php-3.0.x.tar.gz 二个文件。可以将这二个文件放在 /usr/src 中再开始执行以下的动作。而下面每个行号后的动作都是整串字连在一起的,这可以避免分行而造成误会。
l gzip -d -c apache_1.3.x.tar.gz | tar xvf -
l gzip -d -c php-3.0.x.tar.gz | tar xvf -
l cd apache_1.3.x
l ./configure --prefix=/www
l cd ../php-3.0.x
l ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars

l make
l make install
l cd ../apache_1.3.x
l ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
l make
l make install
第一、二行利用 gzip 及 tar 加上管道功能,将压缩文件解压还原。然后在 Apache 的原始文件目录中执行环境设置,--prefix 选项指示 Apache 的安装目录路径。之后进入
PHP3 的原始文件目录中,若没有 MySQL 数据库,则可省略 --with-mysql 的选项,重要的是一定要加入 --with-apache 选项,而且 Apache 原始文件的路径要正确。设置完PHP3 之后就编译、安装到 Apache 的原始文件目录中。之后在 Apache 原始文件目录中再加入 PHP 的模块文件。在编译及安装 Apache 之后就初步完成了。之后就是要设置 Apache 才能让 Web Server 顺利运作。
值得注意的是,PHP要和任何数据库连接,都要在执行这些动作之前先将数据库设好,并确定 Web Server 上可以顺利存取数据库系统。若有需要其它的一些 PHP 外部模块也要先设置好这些模块。
l cd ../php-3.0.x
l cp php3.ini-dist /usr/local/lib/php3.ini
之后将 php3.ini 放在指定的目录,若有需要,也可以手动修改php3.ini 文件,以符合使用的要求。
在 Apache 服务器的设置方面,要在 Apache 的设置文件 httpd.conf 或 srm.conf 文件中加入下面的字串。告诉 Apache 服务器,扩展名php3 是一个特殊的程序文件。当然扩展名可以设成别的扩展名,还有一些站点将 php 的程序扩展名设为 phtml 也是不错的选择,这就要看 Webmaster 的规划了。
l AddType application/x-httpd-php3 .php3
在 PHP 4.x 版的方法大致和 PHP 3.0.x 版相同,不同的地方在于 PHP 4.x 的目录名称及编译后的模块放置目录不同。此外,内定的扩展名也由 .php3 变成了 .php。当然在安装前还是要先下载 PHP 4.x 的程序才行。
l gzip -dc apache_1.3.x.tar.gz | tar xvf -
l gzip -dc php-4.0.x.tar.gz | tar xvf -
l cd apache_1.3.x
l ./configure --prefix=/www
l cd ../php-4.0.x
l ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
l make
l make install
l cd ../apache_1.3.x
l ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
l make
l make install
l cd ../php-4.0.x
l cp php.ini-dist /usr/local/lib/php.ini
l 在 httpd.conf 或 srm.conf 加入
l AddType application/x-httpd-php .php
l AddType application/x-httpd-php-source .phps
而 PHP 4.x 版中对 Apache 服务器加入了新的环境变量设置项。
l php_value [PHP directive name] [value]
l php_flag [PHP directive name] [On|Off]
l php_admin_value [PHP directive name] [value]
l php_admin_flag [PHP directive name] [On|Off]
在 PHP 3.0.x 版中,有些目录可能会有 .htaccess 的文件,使用 PHP 4.0.x 版的系统,必须将这个文件拿掉,可以使用改名字的方式或者直接删除。
当一切设置好了之后,重新启动Apache 服务器。在 Apache 目录下有 bin 或是 sbin 的目录,其中会有 apachectl 的 shell 程序,输入 apachectl restart 就可以重新启动 Apache 服务器了。赶快试看看 hello, world 程序吧!
2.2.2 配置
有两种方法配置PHP3。
1. 使用PHP3自带的"setup"程序
这个程序会问你一系列的问题(类似于PHP/FI 2.0的"install"程序 ), 最后执行"configure"程序。键入 ./setup 执行此程序 。
这个程序会建立一个叫"do-conf"的文件,这个文件包含了传送到配置中的选项。 你可以编辑它,更改其中一些选项,然后键入 ./do-conf 来配置新的选项,而不需要重新运行"setup"。
2. 手工配置
键入 ./configure --help 来查看配置的可选项。
下面详细列出了一些不同的选项。
l 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.l fhttpd 模块
要将PHP3建立为一个fhttpd的模块,请在问到"Build as an fhttpd module?" (用选项--with-fhttpd=DIR 来配置)时回答 "yes ",并且提供fhttpd所在的目录。默认的目录是 /usr/local/src/fhttpd。如果你使用 fhttpd, 把PHP3建立为一个fhttpd的模块将提供良好的性能,更容易控制和远端执行的能力。
l CGI 版本
默认设置是将PHP3安装成一个CGI程序。如果你使用可将PHP3作为模块的web server,建议你将它作为模块安装,这将获得更好的性能,CGI版本允许Apache的不同用户使用不同
方式来运行含有PHP3程序的网页。
l 数据库支持的选项
PHP3支持大量native数据库(和ODBC一样)。
l Adabas D
--with-adabas=DIR
支持Adabas D的编译。该参数给出Adabas D的安装目录,其默认目录是 /usr/local/ad
abasd.
l dBase
--with-dbase
允许绑定的DBase数据库的支持,不需要额外的库。
l filePro
--with-filepro
允许绑定的只读的filePro的支持,不需要额外的库。
l 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的数据库。
l MySQL
--with-mysql=DIR
允许MySQL的支持,该参数指明了MySQL的安装目录,默认目录是 /usr/local。
l iODBC
--with-iodbc=DIR
允许iODBC的支持,该参数指明了iODBC的安装目录,默认目录是 /usr/local。iODBC是
著名的运行于UNIX系统下的可自由分发的ODBC管理器。
l OpenLink ODBC
--with-openlink=DIR
允许OpenLink的支持,该参数指明了OpenLink的安装目录,默认目录是 /usr/local/op
enlink.
l Oracle
--with-oracle=DIR
允许Oracle的支持。经测试PHP至少和Oracle 7.0到7.3的各个版本能良好协作。该参数
指明了ORACLE_HOME的目录。如果你已经建立起了Oracle的运行环境就不必再指定该参数
了。
l PostgreSQL
--with-pgsql=DIR
允许PostgreSQL的支持,该参数指明了PostgreSQL的安装目录,默认目录是 /usr/loca
l/pgsql.
l Solid
--with-solid=DIR
允许Solid的支持,该参数指明了Solid的安装目录,默认目录是 /usr/local/solid.
l Sybase
--with-sybase=DIR
允许Sybase的支持,该参数指明了Sybase的安装目录,默认目录是 /home/sybase.
l Sybase-CT
--with-sybase-ct=DIR
允许Sybase-CT的支持,该参数指明了Sybase-CT的安装目录,默认目录是 /home/sybas
e.
l Velocis
--with-velocis=DIR
允许Velocis的支持,该参数指明了Velocis的安装目录,默认目录是 /usr/local/ve
locis.
l 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 LD
FLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odb
c=/usr/lib/sqlany50
l 统一的 ODBC
--disable-unified-odbc
取消统一的ODBC的支持,统一的ODBC通常是对于所有的数据库的基于ODBC的接口, 例如
Solid 和 Adabas D,以及普通的ODBC库。iODBC、Solid、Adabas D 和Sybase SQL Any
where 已经通过测试。要使用此选项需要这些模块中的一个(也仅仅是一个)或Velocis模
块是开启的, 或者指定了一个用户ODBC库。这个选项适用于使用了以下任意选项的情况
: --with-iodbc, --with-solid, --with-adabas, --with-velocis, or --with-c
ustom-odbc,
l LDAP
--with-ldap=DIR
允许LDAP的支持,该参数指明了LDAP的安装目录,默认目录是 /usr/local/ldap.
l 其他配置选项
? --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和HTTP
_COOKIE_VARS数组中。这是默认选项,以后可以按配置文件 中 track_vars 所讲的方法
重新设置。
? --enable-magic-quotes
? --enable-magic-quotes
默认为允许magic quotes。以后可以按配置文件 中 magic_quotes_runtime 所讲的方
法重新设置。
? --enable-debugger
? --enable-debugger
允许内部的PHP3调试器支持。本功能尚在实验阶段。参看配置文件 中 Debugger Confi
guration 。
? --enable-discard-path
? --enable-discard-path
如果这一选项开启,PHP程序包可以安全的放在WEB树以外的任何地方,没人能绕过 .ht
access文件规定的安全设置存取它。
? --enable-bcmath
? --enable-bcmath
允许bc类型的任意精度的数学函数
? --enable-force-cgi-redirect
? --enable-force-cgi-redirect
允许内部服务器重定向的安全性检查。如果你在Apache中使用PHP的CGI版本,将要用到
这一选项。
当把PHP作为一个CGI程序来运行时,默认情况下PHP总是首先检查它是否用于重定向执行
(例如在Apache下,使用Action操作)。这样就确保了PHP程序包不能越过标准的web ser
ver认证而直接调用。例如 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的完整标记 --。这是默认的设置,可以参考配置文件关于 PHP3缩
写标记的设置。
? --enable-url-includes
? --enable-url-includes
允许PHP3的include()函数直接运行其他HTTP或FTP服务器下的代码。请参考配置文件 中
i包含路径的选项。
? --disable-syntax-hl
? --disable-syntax-hl
关闭语法的高亮度显示。
? CPPFLAGS和LDFLAGS
为了使 PHP3 安装程序在不同的目录下查找头文件和库文件,可以修改各自相应的环境
变量CPPFLAGS和LDFLAGS 。如果你使用智能型的shell, 你可以这样设置 LDFLAGS=-L/
my/lib/dir CPPFLAGS=-I/my/include/dir ./configure 。
? Building
配置了PHP3后,就可以使用 make 命令来建立可执行的CGI程序或PHP3库了。
2.2.3 测试
把PHP3安装成一个CGI程序后,用户就可以通过敲入 make test 来测试安装结果。这是
用户及早发现PHP3在你的平台上运行所存在的问题,避免以后麻烦的一个好办法。
2.2.4 评估
当把PHP3安装成一个CGI程序后,还可以通过敲入 make bench 来评估一下安装结果。注
意:如果在默认的安全模式下,测试程序执行时间超过允许的最长时间(即30秒)还没
结束,它将不能结束。这是因为在安全模式下设置时间限制不可用。用户需要使用最长
执行时间来控制自己的script的执行时间。另外 make bench 会忽略配置文件。
2.2.5 PHP.INI文件
php.ini或php3.ini是PHP在启动时会读取的设置文件。该文件的存放路径为 /usr/loca
l/lib/。在 PHP 3.x 版的设置文件为 php3.ini;而在 PHP 4.x 版改为 php.ini。若
PHP 安装成服务器的模块,则在 Web 服务器启动执行时会读取,之后就不再读取,因此
改动设置的话就要重新启动 Web 服务器。若使用独立 PHP CGI 方式,则每次都读一次

要看目前的系统设置,可以用phpinfo() 看到。以下为选项设置:
? php_value name value
设置变量名称和值。本选项需 PHP 4.x 版之后方可使用。
? php_flag name on|off
设置旗标布尔变量选项。本选项需 PHP 4.x 版之后方可使用。
? php_admin_value name value
设置 Apache 的设置文件变量。原来在 .htaccess 的设置改到这个选项设置。本选项需
PHP 4.x 版之后方可使用。
? php_admin_flag name on|off
设置布尔变量当标志。本选项需 PHP 4.x 版之后方可使用。
? asp_tags boolean
设置 PHP 程序是否剖析以 ASP Script 语法  的标记 (tag)。本选项在 PHP 3.0
.4 之后才可使用。
? auto_append_file string
设置本选项可以让指定的文件附加在原PHP程序后面自动执行。若 PHP 程序中有用到 e
xit() 函数,则指定的文件不会执行。参数 string 即为指定自动执行的文件。
? auto_prepend_file string
设置本选项可以让指定的文件在原 PHP 程序之前自动执行。参数 string 即为指定自动
执行的文件。
? cgi_ext string
本选项设置 CGI 程序的扩展名。
? display_errors boolean
本选项设置是否要将执行的错误讯息显示在使用者的浏览器上。
? doc_root string
设置服务器的文件及 PHP 文件放置的根目录。
? engine boolean
本选项需要使用阿帕奇的模块方式使用PHP。可设置是否要使用 PHP 引擎。在 httpd.c
onf 中加入 php3_engine on/off 亦可设置某目录或某虚拟站点是否要用 PHP 解译器。
? error_log string
本选项用来设置错误记录档。在 UNIX 系统上参数 string 即为文件名。Windows NT 会
将记录记在事件检视器的日志之中。Windows 95/98 则不支持系统记录。
? error_reporting integer
本选项用来设置系统记录的等级。参数 integer 即为等级的级数旗标,可以加在一起,
默认值为 7,见下表2-1。
表2-1 级数说明表
等级数 级数说明
1 一般的错误
2 一般的警告
4 剖析错误
8 非关键的警告
? open_basedir string
本选项用来设置提供 PHP 存取的最底层目录。从该指定目录之下的文件或目录,PHP 程
序方可存取。使用本选项主要是为了系统安全性的考量。参数 string 即为欲限制的最
底层目录节点。值得注意的是在 UNIX 系统中,若该节点之下的文件或目录有符号链结
(symbolic link),则可能会让使用本选项的目的打折,因此在目录的设计上考量,也
是 Webmaster 的重要任务。默认值是所有文件均可存取。在 PHP 3.0.7 版之后,可以
设置多个底层目录。
? gpc_order string
设置 GET/POST/COOKIE 三种模块的顺序及规则。参数 string 即为欲设置的规则,例如
:设置成 "GP" 表示忽视 cookie,并在存取方法 (method) 相同时,以 POST 取代 GE
T。
? ignore_user_abort string
默认值为Off。用来设置当传输未完成时,使用者端断线是要继续处理。
? include_path string
为 PHP 程序中 require、include 及 fopen_with_path 等函数的文件搜寻路径。在 U
NIX 或 Windows 中的斜线方向不同。
? log_errors boolean
指定程序错误时是否要记录在 log 文件中。
? magic_quotes_gpc boolean
设置 GET/POST/COOKIE 三种模块的特殊字符,包含单引号、双引号、反斜线、及空字符
(NUL) 是否要自动加入反斜线当溢出字符。
? magic_quotes_runtime boolean
设置传回数据是否自动加入反斜线当溢出字符。
? magic_quotes_sybase boolean
设置 sybase 数据中单引号要自动加上反斜线当溢出字符。
? max_execution_time integer
设置程序最久执行时间。单位是秒。
? memory_limit integer
设置程序最多使用多少内存。
? short_open_tag boolean
设置是否使用短的 PHP标记 ()。若不使用,则必须要用

相关阅读 更多 +
排行榜 更多 +
夕鸟

夕鸟

生活实用 下载
partyplay

partyplay

聊天通讯 下载
婚礼纪

婚礼纪

生活实用 下载