PHP在linxu下的安装与配置
环境 需求 与准备工作 在安装 PHP 做为 WWW 服务器 的一部份时,我们可以考虑用 UNIX 操作系统;或者是 Windows NT/95 等 Win32 API 的平台。当然,大部份的人都会使用 UNIX 来当作 PHP 的执行平台 (在 Windows NT 的用户大多数都会选择 IIS + ASP),因此,
环境
需求与准备工作
在安装 PHP 做为 WWW
服务器的一部份时,我们可以考虑用 UNIX 操作系统;或者是
Windows NT/95 等 Win32 API 的平台。当然,大部份的人都会使用 UNIX 来当作 PHP 的执行平台 (在
Windows NT 的用户大多数都会选择 IIS + ASP),因此,本书的所有内容以及范例程序都是在 UNIX 上为主。实际上,
Linux + Apache + PHP 应是最经济的选择,因为这样的组合几乎是不用钱的,成本与效益比这也是最好的选择。而许多成功网站的经验,更是采用这种组合最好的佐证。
Linux 操作系统方面,您可以选择各式的 Linux 套件,包括 Slackware Linux、RedHat、OpenLinux、SuSE....等等,反正这方面的软件在店里也是很容易而且很便宜就可以买到。对学生而言,也可以去各大 FTP 站
下载完整的系统安装。
Apache
服务器则是目前最多 WWW 网站所采用的
服务器。您可以到 http://www.apache.org 下载最新版的程序及相关文件,若您觉得从国外下载要很久的话,也可以用它的 Mirror 网站下载。
PHP 则可以去它的官方网站 http://www.php.net 下载所需要的程序。
虽然目前 WindowsNT 或者 Windows98 等 Win32 的系统平台也能安装 PHP 及 Apache 服务器,不过这似乎没什么道理,因为 PHP 和 Apache 在 UNIX下可以跑得更快更好。
当然,若想使用商业化的系统平台,SUN、IBM、HP、DEC、SGI、NEC 等公司都提供相关的 UNIX 或者是 WindowsNT 的系统平台。加上高
安全性调整过后的 Apache 服务器:Stronghold 或是其它支持 SSL 的 Apache 版本。这种组合,相信能满足商业化的
需求。而 PHP 就扮演着快速方便的 CGI 角色,让客户对网站的服务品质更加满意。
快速配置及安装
以下是基本的安装步骤,运行环境是 UNIX 系列的系统平台。在安装之前,要先下载 apache_1.3.x.tar.gz 及 php-3.0.x.tar.gz 两个文件。可以将这两个文件放在 /usr/src 中再开始执行以下的步骤。下面每个行号后是一个步骤,步骤中的所有选项是连在一起的,请不要分开执行。
gzip -d -c apache_1.3.x.tar.gz | tar xvf -
gzip -d -c php-3.0.x.tar.gz | tar xvf -
cd apache_1.3.x
./configure --prefix=/www
cd ../php-3.0.x
./configure --with-
mysql --with-apache=../apache_1.3.x --enable-track-vars
make
make install
cd ../apache_1.3.x
./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
make
make install
第一、二行利用 gzip 及 tar 加上管道功能,将压缩文件解压还原。然后在 Apache 的原始文件目录中执行环境配置,--prefix 选项指示 Apache 的安装目录路径。之后进入 PHP3 的原始文件目录中,若没有 My
SQL 数据库,则可省略 --with-
mysql 的选项,重要的是一定要加入 --with-apache 选项,而且 Apache 原始文件的路径要正确。配置完 PHP3 之后就编译、安装到 Apache 的原始文件目录中。之后在 Apache 原始文件目录中再加入 PHP 的模块文件。在编译及安装 Apache 之后就初步完成了。之后就是要配置 Apache 才能让
Web Server 顺利运作。
需要注意的是,PHP 要和任何数据库连接,都要在执行这些步骤之前先将数据库设好,并确定 Web Server 上可以顺利存取数据库系统。如果需要其它的一些 PHP 外部模块也要先配置好这些模块。
cd ../php-3.0.x
cp php3.ini-dist /usr/local/lib/php3.ini
之后将 php3.ini 放在指定的目录,如果需要,也可以手动修改 php3.ini 文件文件,以符合使用的要求。
在 Apache 服务器的配置方面,要在 Apache 的配置文件 httpd.conf 或 srm.conf 文件中加入下面的字符串。告诉 Apache 服务器,扩展名 php3 是一个特殊的程序文件。当然扩展名可以设成别的扩展名,还有一些网站将 php 的程序扩展名设为 phtml 也是不错的选择,反正这就要看 Webmaster 的规划了。
AddType application/x-httpd-php3 .php3
--------------------------------------------------------------------------------
在 PHP 4.x 版的方法大致和 PHP 3.0.x 版相同,不同的地方在于 PHP 4.x 的目录名称及编译后的模块放置目录不同。此外,默认的扩展名也由 .php3 变成了 .php。当然在安装前还要先下载 PHP 4.x 的程序才行。
gzip -dc apache_1.3.x.tar.gz | tar xvf -
gzip -dc php-4.0.x.tar.gz | tar xvf -
cd apache_1.3.x
./configure --prefix=/www
cd ../php-4.0.x
./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
make
make install
cd ../apache_1.3.x
./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
make
make install
cd ../php-4.0.x
cp php.ini-dist /usr/local/lib/php.ini
在 httpd.conf 或 srm.conf 加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
而 PHP 4.x 版中对 Apache 服务器加入了新的环境变量配置项。
php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
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 程序吧!
PHP 的编译配置详细选项
在详细选项上,除了上述的安装简介外,也可以在编译时加入其它的选项。
apache模块
语法: --with-apache=DIR
说明: 用本选项可以让 PHP 以apache的模块方式使用,DIR 的字符串可以是 /usr/local/apache 或其它安装apache的目录
范例: --with-apache=/var/lib/apache
fhttpd 服务器模块
语法: --with-fhttpd=DIR
说明: 若使用 fttpd 服务器,可以使用本指令编译 PHP。用模块的方式配合 fttpd 服务器,可以有较好的效率。
Adabas D 数据库
语法: --with-adabas=DIR
说明: 数据库系统为 Adabas D 数据库时需要加本选项。关于 Adabas D 数据库的细节,可以参考 http://www.adabas.com。
范例: --with-adabas=/usr/local/adabasd
dBase
资料表
语法: --with-dbase
说明: 只要加本选项,不用其它的参数或函数库,PHP 就会让系统有存取 dBase 资料表的功能。
filePro 数据库
语法: --with-filepro
说明: 不用指定数据库路径及其它函数库等,可以读取 filePro 数据库 (唯读)。
mSQL 数据库
语法: --with-msql=DIR
说明: 提供存取 mSQL 数据库。更多的细节请参考 mSQL 的网站 http://www.hughes.com.au。
范例: --with-msql=/usr/local/Hughes
MySQL 数据库
语法: --with-mysql=DIR
说明: 提供存取 MySQL 数据库。更多的细节请参考 MySQL 的网站 http://www.tcx.se。
范例: --with-mysql=/usr/local/mysql
iODBC 数据库装置
语法: --with-iodbc=DIR
说明: 提供 ODBC 数据库装置,用来存取后端数据库。更多的细节请参考 iODBC 的网站 http://www.iodbc.org。
范例: --with-iodbc=/usr/local/iodbc
OpenLink ODBC 数据库装置
语法: --with-openlink=DIR
说明: 使用 OpenLink ODBC 数据库装置,用来存取后端数据库。更多的细节请参考 OpenLink ODBC 的网站 http://www.openlinksw.com。
范例: --with-openlink=/usr/local/openlink
Oracle 数据库
语法: --with-oracle=DIR
说明: 使用 Oracle 数据库。Oracle 的版本要在 7.3 版以上。您也可以在 PHP 程序中使用环境变量 ORACLE_HOME 来指定 Oracle 的路径。更多有关 Oracle 的信息请参考 Oracle 的网站 http://www.oracle.com。
范例: --with-oracle=/export/app/oracle/product/7.3.2
PostgreSQL 数据库
语法: --with-pgsql=DIR
说明: 使用 PostgreSQL 数据库。更多有关 PostgreSQL 的信息请参考 PostgreSQL 的网站 http://www.postgreSQL.org 或台湾的 Mirror 站 http://postgresql.ccit.edu.tw。
范例: --with-pgsql=/usr/local/pgsql
Solid 数据库
语法: --with-solid=DIR
说明: 使用 Solid 数据库。更多有关 Solid 的信息请参考 Solid 的网站 http://www.solidtech.com。
范例: --with-solid=/usr/local/solid
Sybase 数据库
语法: --with-sybase=DIR
说明: 使用 Sybase 数据库。更多有关 Sybase 的信息请参考 Sybase 的网站 http://www.sybase.com。
范例: --with-sybase=/home/sybase
Sybase-CT 数据库
语法: --with-sybase-ct=DIR
说明: 使用 Sybase-CT 数据库。
范例: --with-sybase-ct=/home/sybase
Velocis 数据库
语法: --with-velocis=DIR
说明: 使用 Velocis 数据库。有关 Velocis 数据库的进一步资料请参考 Raima 公司的网站 http://www.raima.com。
范例: --with-velocis=/usr/local/velocis
自订 ODBC 数据库驱动程序
语法: --with-custom-odbc=DIR
说明: 使用自订的 ODBC 函数库。当然,在使用本方式时要指定 CUSTOM_ODBC_LIBS 及 CFLAGS 变量。例如在 QNX 机器上使用 Sybase SQL Anywhere 时可能要配置系统环境变量 CFLAGS=-DODBC_QNX、LDFLAGS=-l
unix 及 CUSTOM_ODBC_LIBS="-ldblib -lodbc",并要在 PHP 配置加入 --with-custom-odbc=/usr/lib/sqlany50
范例: --with-custom-odbc=/usr/local/odbc
不使用 ODBC 数据库驱动程序
语法: --disable-unified-odbc
说明: 使用本选项将使所有的 ODBC 数据库驱动程序不作用。本选项不用指定路径,而受本选项影响的选项有 --with-iodbc、--with-solid、--with-adabas、--with-velocis 及 --with-custom-odbc。
LDAP 目录协议
语法: --with-ldap=DIR
说明: 若要使用目录协议 (Lightweight Directory Access Protocol, LDAP) 则必须要打开本选项。有关 LDAP 的细节,可以参考 RFC 文件的 RFC1777 及 RFC1778。
范例: --with-ldap=/usr/local/ldap.
mcrypt 编码函数库
语法: --with-mcrypt=DIR
说明: 当安装了 mcrypt 函数库后,可在编译 PHP 时加入本选项,让程序可以使用编解码功能。
范例: --with-mcrypt=/usr/local/include
Sys V 信号
语法: --enable-sysvsem
说明: 要使用 SysV 的信号 (semaphores) 机制,则要打开本选项。
XML 支持
语法: --with-xml
说明: 打开本选项可以支持 James Clark's 写的 XML 解析程序库。
维护模式
语法: --enable-maintainer-mode
说明: 本选项一般不会打开,除非是 PHP
开发人员比较有用。
正则表达式程序库
语法: --with-system-regex
说明: 若您需要额外的正则表达式功能,可以加入本选项。
PHP 配置文件
语法: --with-config-file-path=DIR
说明: 用来指定 php3.ini 或 php4.ini 的路径,供 PHP 初始化时使用。
范例: --with-config-file-path=/usr/local/lib
PHP 执行路径
语法: --with-exec-dir=DIR
说明: 有时为了系统的
安全性考虑,会指定 PHP 程序一定要在哪个目录执行。
范例: --with-exec-dir=/usr/local/bin
调试模式
语法: --enable-de
bug
说明: 本选项一般不会使用,除非在
开发 PHP 程序时比较有用。它可以显示额外的错误信息。
安全模式
语法: --enable-safe-mode
说明: 默认值是打开的,可以对系统安全提供比较多的保护。
变量追踪
语法: --enable-track-vars
说明: 让 PHP 能 追踪 HTTP_GET_VARS、HTTP_POST_VARS 及 HTTP_COOKIE_VARS 三个变量,一般是打开的。
自动加引入字符
语法: --enable-magic-quotes
说明: 可让程序在执行时自动加入反斜线的引入字符。
打开调试器
语法: --enable-de
bugger
说明: 打开内建的 PHP 调试器。目前本功能还在实验阶段,尚未成熟。
取消路径 (discard path)
语法: --enable-discard-path
说明: 打开这个选项,用户就不能透过浏览器读取 .htaccess 等和系统安全相关的文件。
高精确度数学函数
语法: --enable-bcmath
说明: 打开高精确度函数。必须要先安装本函数库,本选项方有效。
强制 CGI 重定向
语法: --enable-force-cgi-redirect
范例: 若使用 CGI VERSION 模式来执行 PHP 的设,打开本选项会增加安全性。例如用户读 http://my.host/cgi-bin/php/secret/doc.html 遇到比较了解 PHP 系统的黑客级用户可能会自已输入以下网址 http://my.host/secret/doc.html 来读取相关信息。若 PHP 和 Apache 编译在一起,让 PHP 变成 Apache 的一部份,则不需要加入本选项。
不使用短的标记
语法: --disable-short-tags
说明: 配置本选项后,PHP 的程序就不能使用短的 <? .... ?> 标记,一定要用 <?php ...... ?> 的长标记。
引入远端档宁
语法: --enable-url-includes
说明: 配置本选项可让 PHP 程序可以引入 (include) 远端的 HTTP 或 FTP 服务器中的文件。
关闭语法效果
语法: --disable-syntax-hl
说明: 使用本选项会关闭 PHP 语法的彩色效果。
函数库路径
语法: CPPFLAGS=-IDIR 及 LDFLAGS=-LDIR
说明: 若 PHP 在安全或编译所需的函数库在值得的路径,需要加入本选项,LDFLAGS 表示函数库的路径,CPPFLAGS 表示标头文件的路径。
范例: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure
php.ini 配置详细选项
php.ini 或 php3.ini 是 PHP 在启动时会读取的配置文件。该文件的存放路径为 /usr/local/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 程序中有用到 exit() 函数,则指定的文件不会执行。参数 string 即为指定自动执行的文件。
auto_prepend_file string
配置本选项可以让指定的文件在原 PHP 程序之前自动执行。参数 string 即为指定自动执行的文件。
cgi_ext string
本选项配置 CGI 程序的扩展名。
display_errors boolean
本选项配置是否要将执行的错误信息显示在用户的浏览器上。
doc_root string
配置服务器的文件及 PHP 文件放置的根目录。
engine boolean
本选项需要使用apache的模块方式使用 PHP。可配置是否要使用 PHP 引擎。在 httpd.conf 中加入 php3_engine on/off 亦可配置某目录或某虚拟网站是否要用 PHP 解析器。
原文转自:http://www.ltesting.net
|