PHP的全名是“PHP:HYPERTEXT PREPROCESSOR”。是一种多平台无缝运行的服务器端嵌入式脚本语言,它融合了C、JAVA和PERL等编程语言,由于它是一种免费的软件,具有自由软件的性质,版本更新速度快,移植速度快,丰富的函数库功能,因而很快得到大家的喜欢,特别是PHP提供加密函数库,特别适合给安全性较高的电子商务网站的要求,在Apache环境下构建的PHP网站已经作为当前的流行的Web网站之一。
PHP能够作为Apache Web服务器的模块执行,使得它的执行效率要高于普通的CGI程序,而且能比CGI或者Perl更快速地执行动态网页。
PHP的工作原理如下(如下图1所示):
我们如果创建了一个PHP应用程序,实际上相当于创建了一个PHP脚本文件。在服务器将输出信息发送到客户端之前,网络服务器会率先将文件中的PHP语言进行加工处理。如果服务器不支持PHP,通常情况下,网络服务器会直接将超文本文件送到客户的浏览器上以表示对HTTP的要求作出应答;如果服务器支持PHP,则在服务器响应一个对PHP文件的请求时,会进行下列处理:首先在一个PHP文件内,标准的HTML编码会被直接送到浏览器上,而内嵌PHP程序却是先被网络服务器解释执行。如果是标准输出的话,输出信息也将作为标准的HTML而被送至浏览器。
PHP可以安装在Unix/Linux环境下,也可以安装在Windows环境下。目前网站使用最多的、也是最理想的便是PHP+MySQL+Apache基于Unix/Linux下的服务器策略。
本文中所说的Linux就选用大家比较熟悉的Red Hat Linux操作系统。
作为一个领先的开放源代码操作系统,红帽企业Linux提供了适用于从台式计算机到大型数据中心的系列产品:红帽企业 Linux AS 适用于高端的,用于关键业务处理的系统,红帽企业 Linux ES 适用于小到中型服务器,红帽企业 Linux WS 适用于技术/设计工作站,红帽企业 Desktop适用于安全,可管理的客户机环境。
我们采用最新的红帽企业 Linux AS4的环境中使用Apache来构建PHP网站,作为学习环境使用,在安装redhat AS4时选择为系统“定制软件包”,在定制安装中选择“全部”,会安装包括在红帽企业 Linux AS4中的所有软件包。Apache 2.0服务器版本、PHP 4.3.9以及MySQL 4.1.x等软件都已经安装成功。
我们也可以到http://www.apache.org/网站下载Apache最新版本, http://www.php.net/网站下载PHP新版本以及http://www.mysql.com/下载Linux的MySQL最新版本分别进行安装,由于篇幅有限,这里就不介绍如何分别编译、配置和安装了。
红帽企业 Linux AS4中使用 “HTTP 配置工具”来配置 Apache HTTP 服务器 的一般步骤如下所述:
1)在「主」标签下配置基本设置。
2)根据实际需要,点击「虚拟主机」标签来配置默认设置。在「虚拟主机」标签下,配置默认的虚拟主机。如果你想为不止一个 URL 或虚拟主机提供服务,则添加额外的虚拟主机。
3)在「服务器」标签下配置服务器设置。
4)在「性能微调」标签下配置连接设置。
5)把所有必要的文件复制到 DocumentRoot 和 cgi-bin 目录中。
6)退出程序并保存你的设置。
1、基本设置
使用「主」标签来配置基本服务器设置。
在「服务器名称」文本字段中输入有权使用的完整域名。该选项和 httpd.conf 中的 ServerName 指令相对应。ServerName 指令设置万维网(WWW或WEB)服务器的主机名。服务器名称不一定非要是它的 IP 地址。在这里服务器名称设为 www.ghq.com。
在「网主电子邮件地址」文本字段中输入万维网服务器维护者的电子邮件地址。该选项和 httpd.conf 中的ServerAdmin 指令相对应。如果配置服务器的错误页要包含电子邮件地址,该地址将会被用户用来向服务器的管理员提交问题。默认的值是:root@localhost。
使用「可用地址」文本字段来定义服务器接受进入连接请求的端口。该选项和 httpd.conf 中的Listen 指令相对应。红帽默认配置 Apache HTTP 服务器 在端口 80 上监听非安全万维网通讯。
为了简单明了,这里我们不配置虚拟主机。
「服务器」标签允许配置基本的服务器设置。默认设置在多数情况下都是适用的。
「锁文件」的值和LockFile 指令相对应。在服务器使用 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 编译时,该指令把路径设为锁文件所用的路径。它必须贮存在本地磁盘上。
「PID 文件」的值和PidFile 指令相对应。该指令设置服务器记录进程 ID(PID) 的文件。该文件应该只能够被根用户读取。多数情况下,应该使用默认值。
「核心转储目录」的值和CoreDumpDirectory 指令相对应。Apache HTTP 服务器在转储核心前会试图转换到该目录中。默认值是 ServerRoot。
「用户」的值和 User 指令相对应。它设置服务器回答请求所用的 userid。用户的设置决定服务器的访问权限。该用户所无法访问的文件,网站来宾也不能够访问。默认的 User 是 apache。
Group 的值与 Group 指令相对应。Group 指令和 User 指令很相似。它设置服务器回答请求所用的组群。默认组群也是 apache。
3、调整性能
点击「调整性能」标签来配置使用的服务器子进程的最大数量,以及客户连接方面的 Apache HTTP 服务器选项。这些选项的默认设置在多数情况下是恰当的。改变这些设置会影响你的万维网服务器的整体性能。
把「最多连接数量」设为服务器能够同时处理的客户请求的最多数量。服务器为每个连接创建一个 httpd 子进程。进程数量达到最大限度后,直到某子进程结束,Web服务器才能够接受新客户连接。如果不重新编译 Apache,该选项设置的值将不能超高 256。该选项与 MaxClients 指令相对应。
「连接超时」定义的服务器在通信时等候传输和回应的秒数。特别是,「连接超时」定义服务器在接收 GET 请求时要等多久,在接收 POST 或 PUT 请求的 TCP 包时要等多久,以及在回应 TCP 包的 ACK 之间要等多久。「连接超时」被默认设为 300 秒,这在多数情况下都是适用的。该选项与 TimeOut 指令相对应。
把「每次连接最多请求数量」设为每个持续连接所允许的最多请求次数。默认值为 100,这应该在多数情况下都适用。该选项与 MaxRequestsPerChild 指令相对应。
如果选择了「允许每次连接可有无限制请求」选项,MaxKeepAliveRequests 指令的值就会是 0,这会允许无限制的请求次数。
如果取消选择了「允许持久性连接」选项,KeepAlive 指令就会被设为 false。如果选择了它,KeepAlive 指令就会被设为 true,并且KeepAliveTimeout 指令的值会被设为「下次连接的超时时间」中选定的值。该指令设置的超时秒数是服务器在回答了一项请求之后,关闭连接之前,等待下一个请求时会等候的秒数。一旦接收到请求,服务器就会改用「连接超时」中的值。
把「持续连接」设为一个较大的数值可能会导致服务器速度减慢,这要依据试图连接该服务器的用户数量而定。该选项的数值越大,等候前一个用户再次连接的服务器进程就越多。
4、保存设置
如果不想保存所做的 Apache HTTP 服务器 配置,点击 HTTP 配置工具窗口右下角的「取消」按钮,会被提示确认。如果点击了「是」来确认该选择,设置就不会被保存。
如果你想保存你所做的 Apache HTTP 服务器 配置,点击 HTTP 配置工具窗口右下角的「确定」按钮。一个对话框就会出现。如果你点击了「是」,你的设置就会被保存在 /etc/httpd/conf/httpd.conf 中。
如果这是第一次使用 HTTP 配置工具,我们会看到一个警告配置文件已经被手工修改的对话框。如果 HTTP 配置工具检测到 httpd.conf 配置文件已被手工修改,它会把手工修改的文件保存为 /etc/httpd/conf/httpd.conf.bak。
Apache的配置文件httpd.conf位于/etc/httpd/conf目录下如图5所示,其中的主机名和网页存放的目录位置等都有相应的配置如图6所示。
红帽企业 Linux AS4中默认的 /etc/php.ini 配置文件已经把过去使用的默认值 "development" 改为使用 "production" 为默认值。这个软件包现在使用 "apache2handler" SAPI 与 Apache httpd 2.0 集成,而不是使用 "apache2filter" SAPI。如果从以前的发行版本升级,SetOutputFilter 会被从 /etc/httpd/conf.d/php.conf 文件中删除。
Php.ini文件在/etc目录下(如图7),打开文件内容如图8所示,其中有engine=On项,表示PHP语言模块已经集成在Apache中即启动Apache服务,PHP也就启动了。
首先编辑一个test.php文件,内容如图11所示,将该文件保存在/var/www/html目录中;然后启动Apache 服务如图12,在浏览器上输入http://192.168.1.68/test.php,调出页面如图13所示,至此在Apache服务器的构建PHP网站就算完成了。