当前位置:首页 > PHP应用:PHP在linxu下的安装与配置

PHP应用:PHP在linxu下的安装与配置

点击次数:1381  更新日期:2011-01-04
\n

环境需求与准备工作

在安装 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 的原始文件目录中,若没有 MySQL 数据库,则可省略 –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=-lunix 及 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-debug
说明: 本选项一般不会使用,除非在开发 PHP 程序时比较有用。它可以显示额外的错误信息。

安全模式
语法: –enable-safe-mode
说明: 默认值是打开的,可以对系统安全提供比较多的保护。

变量追踪
语法: –enable-track-vars
说明: 让 PHP 能 追踪 HTTP_GET_VARS、HTTP_POST_VARS 及 HTTP_COOKIE_VARS 三个变量,一般是打开的。

自动加引入字符
语法: –enable-magic-quotes
说明: 可让程序在执行时自动加入反斜线的引入字符。

打开调试器
语法: –enable-debugger
说明: 打开内建的 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 的程序就不能使用短的 标记,一定要用 的长标记。

引入远端档宁
语法: –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 解析器。

\n