PHP在linxu下的安装与配置

  在安装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的程序就不能使用短的<?....?>标记,一定要用<?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解析器。