第2章 PHP与MySQL开发环境的搭建
2.1 在Windows上安装IIS
IIS(Internet Information Service,互联网信息服务)是由微软公司提供的基础互联网服务,它是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成为一件很容易的事情。
下面以在Windows Server 2003中安装IIS 6.0为例,为大家讲解IIS组件的安装。
首先打开控制面板,然后选择“添加或删除程序”,并在左侧选择“添加/删除Windows组件”,接下来会显示Windows组件向导界面,在“Windows组件向导”中选中“应用程序服务器”,如图2-1所示。
图2-1 添加应用程序服务器
单击“详细信息”按钮,选中“Internet信息服务(IIS)”,如图2-2所示。
图2-2 选择安装IIS 6.0
单击“确定”按钮,会出现如图2-3所示的界面。
图2-3 开始安装IIS 6.0
单击“下一步”按钮后开始安装,安装完成后根据图2-4的提示打开“Internet信息服务(IIS)管理器”。
图2-4 打开Internet信息服务(IIS)管理器
打开“Internet信息服务(IIS)管理器”,检验安装是否完成。
至此,IIS组件已安装完成,界面如图2-5所示。
图2-5 IIS 6.0安装成功
2.2 PHP的安装和配置
本节将分别介绍PHP在Windows和Linux下的安装配置过程。PHP的官方下载地址为http://cn.php.net/downloads.php。
2.2.1 在Windows下的安装和配置
目前有很多基于Windows的多合一安装包,但是我们建议用户自己手动安装PHP,这样可以更加详细地了解PHP的使用和配置,并且能够根据需要非常方便地安装PHP扩展。下面以PHP 5.2.14版本为例介绍PHP的安装和配置过程。
(1)下载PHP安装包php-5.2.14-Win32.zip,然后将其解压缩到一个选定的目标位置,如“C:\php\”,解压后的文件目录如图2-6所示。
图2-6 PHP安装图解:PHP安装包解压后的文件目录
(2)为PHP设置一个有效的配置文件php.ini。在解压后的目录中有两个ini文件php.ini-dist和php.ini-recommended,可将其中任何一个复制到Windows(有的系统是Winnt)目录下,并改名为php.ini(建议使用php.ini-recommended,该文件在性能和安全方面做了优化)。
(3)打开php.ini文件并找到“extension_dir="./"”这一行,将其值修改为在PHP目录下“ext”文件夹的路径,如“extension_dir="C:/php/ext"”。然后找到“;extension=php_gd2.dll”和“;extension=php_mysql.dll”并将前面的分号“;”去掉,这样PHP既可以支持GD绘图函数库,也可以支持MySQL数据库。php.ini中还有很多其他的扩展,可以根据自己的环境配置所需来开启或关闭相应的扩展,这里不再一一介绍。
(4)将PHP的目录配置到系统path中。右击“我的电脑”,然后选择“属性”,会弹出一个对话框,在该对话框中选择“高级”标签,如图2-7所示。
图2-7 “高级”标签窗口
然后单击“环境变量”按钮,会出现如图2-8所示的对话框。
图2-8 环境变量窗口
在该对话框中选择系统变量名中的“Path”,然后单击“编辑”按钮,出现如图2-9所示的对话框。
图2-9 将PHP的目录配置到系统Path中
在“变量值”输入框的末尾添加“;php的目录;”,如“;C:\php”,然后单击“确定”按钮,环境变量配置结束。
至此,PHP5安装结束。下面介绍IIS服务器与PHP的集成。
(1)打开“Internet信息服务(IIS)管理器”,右击“网站”,在弹出的快捷菜单中选择“属性”,弹出“目录属性”对话框,然后在弹出的对话框中选择“主目录”选项卡。将“执行权限”设置为“脚本和可执行文件”,如图2-10所示。
图2-10 “主目录”选项卡
注意
“纯脚本”与“脚本和可执行文件”的区别。如果将应用程序的权限设置为“纯脚本”,则可以让映射到脚本引擎的应用程序在此目录中运行,但不拥有可执行文件的执行权限;如果将应用程序的权限设置为“脚本和可执行文件”,则允许应用程序在此目录中运行,其中包括映射到脚本引擎的应用程序和Windows的二进制文件(.dll和.exe文件),所以将权限设置为“纯脚本”比将权限设置为“脚本和可执行文件”更安全。
(2)添加PHP支持。单击图2-10中的“配置”按钮,将弹出“应用程序配置”对话框,如图2-11所示。
图2-11 “应用程序配置”对话框
在“映射”选项卡中,单击“添加”按钮,会出现如图2-12所示的对话框,在“可执行文件”位置单击“浏览”按钮,选择php目录下的“php5isapi.dll”,“扩展名”处输入“.php”,然后单击“确定”按钮。
图2-12 添加/编辑应用程序对话框
(3)关闭网站属性对话框,在“Internet信息服务(IIS)管理器”中选择“Web服务扩展”,点击“添加一个新的Web服务扩展”选项,如图2-13所示。
图2-13 Internet信息服务(IIS)管理器界面
然后在弹出的“新建Web服务扩展”对话框中填写“扩展名”为“.php”,在“要求的文件”后单击“添加”按钮,选择php目录下的php5isapi.dll,勾选下方的“设置扩展状态为允许”,再单击“确定”按钮,如图2-14所示。
图2-14 新建Web服务扩展界面
(4)关闭所有界面,重启Internet信息服务(IIS)管理器,至此设置完成。
测试Internet信息服务(IIS)管理器对PHP的支持性,在“C:\Inetput\wwwroot\”目录下创建页面phpdemo.php,使用记事本打开该文件,输入如下内容:
<?php phpinfo(); ?>
打开浏览器,输入“http://localhost/phpdemo.php”,如果出现如图2-15所示的界面,则说明PHP安装成功。
图2-15 设置成功
2.2.2 在Linux下的安装和配置
在Linux系统下搭建PHP环境要比Windows复杂一些,需要先安装一些相关的工具,并设置必要的参数。而且,如果要使用PHP扩展库,不像在Windows下修改php.ini那样简单,而是需要对PHP重新进行编译。下面将详细讲解PHP在Linux系统下的安装和配置,所选择的Linux版本为Red Hat Enterprise Linux 5。安装之前要准备的安装包有:libxml2-2.6.27.tar.gz、httpd-2.2.17.tar.gz、mysql-5.1.53-linux-i686-glibc23.tar.gz、php-5.2.14.tar.gz。
在Linux下安装软件,均需要在Linux终端下进行(选择“主菜单/应用程序/附件/终端”)(以下安装须按顺序进行)。在Linux系统下,PHP所用到的Web服务器为Apache下的HTTP Server,所以在安装PHP之前要先安装Apache服务器,安装步骤如下所示。
(1)拷贝安装包到“/usr/local”下。
#cp httpd-2.2.17.tar.gz /usr/local/
(2)切换目录为“/usr/local”,创建目录“httpd”。
#cd/usr/local #mkdir httpd
(3)解压安装包,解压完成后进入刚解压的目录。
#tar zxvf httpd-2.2.17.tar.gz #cd httpd-2.2.17
(4)配置项检测,并生成makefile文件,为make做准备。
#./configure --prefix=/usr/local/httpd --enable-so
(5)编译。
#make
(6)开始安装。
#make install
Apache服务的管理。
启动服务: #/usr/local/httpd/bin/apachectl start 停止服务: #/usr/local/httpd/bin/apachectl stop
测试Apache安装是否成功,先启动Apache服务,然后打开浏览器,输入“http://localhost”,按下“Enter”键,如果出现如图2-16所示的界面,表示安装成功。
图2-16 安装成功图示一
或者出现如图2-17所示界面,也表示安装成功。
图2-17 安装成功图示二
libxml2是一个XML C语言版的解析器,PHP访问XML文件时需要libxml2类库的支持,因此安装PHP之前,需要先安装libxml2。安装步骤如下所示:
(1)拷贝安装包到“/usr/local”下。
#cp libxml2-2.6.27.tar.gz /usr/local/
(2)切换目录为“/usr/local”,创建目录“libxml2”。
#cd /usr/local #mkdir libxml2
(3)解压安装包,解压完成后,进入刚解压的目录。
#tar zxvf libxml2-2.6.27.tar.gz #cd libxml2-2.6.27
(4)配置项检测,并生成makefile文件,为make做准备。
# ./configure --prefix=/usr/local/libxml2
(5)编译。
#make
(6)开始安装。
#make install
MySQL的安装和配置(详见2.3.2节)。
在Apache、libxml2和MySQL都安装成功之后就可以开始准备安装PHP 5了,安装步骤如下所示。
(1)拷贝安装包到“/usr/local”下。
#cp php-5.2.14.tar.gz /usr/local/
(2)切换目录为“/usr/local”,创建目录“php”。
#cd /usr/local #mkdir php
(3)解压安装包,解压完成后进入刚解压的目录。
#tar zxvf php-5.2.14.tar.gz #cd php-5.2.14
(4)配置项检测,并生成makefile文件,为make做准备。
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-libxml-dir=/usr/local/libxml2 --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql
(5)编译。
#make
(6)开始安装。
#make install
PHP安装结束之后,需要修改Apache的配置文件httpd.conf(该文件在httpd/conf/下),使Apache服务器支持PHP脚本语言。
#gedit /usr/local/httpd/conf/httpd.conf
在该文件的末尾添加如下两行语句:
AddDefaultCharset UTF-8 AddType application/x-httpd-php .php
(有些httpd版本中第一行语句为AddDefaultCharset ISO-8859-1,如果遇到这种情况,则将其值修改为UTF-8)。
Apache默认的访问主目录为“htdocs”。在Linux下由于用户权限的问题,因此需要将该文件夹授权给Linux系统安装时的普通用户,并设置访问权限。
#chown -R /usr/local/httpd/htdocs/ Linux系统普通用户账号 #chmod -R 755 /usr/local/httpd/htdocs/
测试PHP的安装和配置是否成功,在“/usr/local/httpd/htdocs/”目录下创建页面phpdemo.php,打开该文件,输入如下内容:
<?php phpinfo(); ?>
启动Apache服务器,然后打开浏览器,输入“http://localhost/phpdemo.php”,按Enter键将看到如图2-18所示的界面。
图2-18 phpinfo();显示界面
图2-18中指出PHP的配置文件php.ini并没有被加载,按照图中所指的路径,即“/usr/local/php/lib”,拷贝配置文件到该位置。
#cp /usr/local/php-5.2.14/php.ini-recommended /usr/local/php/lib/php.ini
至此,Linux系统下PHP的安装和配置就结束了。
2.3 MySQL的安装和配置
MySQL是一个中小型的关系型数据库管理系统,由于其体积小、速度快、总体使用成本低,以及开放源码这些特点,许多中小型网站都选择MySQL作为网站数据库,而且一直被认为是PHP的最佳搭档。
本节分别为大家讲解MySQL在Windows和Linux下的安装和配置过程。MySQL的官方下载地址为http://www.mysql.com/downloads/mysql/。
2.3.1 Windows下的安装和配置
下面以mysql-essential-5.1.52-win32.msi版本为例详细讲解MySQL在Windows下的安装和配置,步骤如下所示。
(1)双击MySQL安装文件mysql-essential-5.1.52-win32.msi,进入欢迎界面,单击“Next”按钮,进入Setup Type界面,如图2-19所示。
图2-19 选择安装方式
(2)Setup Type界面中有3个单选按钮,其中“Typical”和“Complete”两种安装方式的安装路径不能改变,“Custom”方式可以让用户选择安装组件和安装路径。在此选择“Custom”选项,单击“Next”按钮。
(3)进入Custom Setup界面后,选择要安装的组件;然后单击“Change...”按钮,在弹出的对话框中选择安装路径,选择完成后单击“Next”按钮,如图2-20所示。
图2-20 选择安装组件和路径
(4)进入MySQL的准备安装界面,界面中显示了用户在以上步骤中所选择的信息。信息确认无误后,单击“Install”按钮,如图2-21所示。
图2-21 确认已选的安装信息
(5)安装完成后,会出现一些关于MySQL功能和版本的介绍。连续单击“Next”按钮,直到出现图2-22所示的界面。
图2-22 安装完成
(6)单击图2-22中的“Finish”按钮,开始MySQL服务器的配置,会出现如图2-23所示的界面。选择默认项“Detailed Configuration”,单击“Next”按钮。
图2-23 MySQL服务器的配置界面
(7)选择服务器运行模式界面。这里选择第一个默认项“Developer Machine”(该模式下MySQL服务器占用的内存空间最小,进行本地测试足够使用),单击“Next”按钮,如图2-24所示。
图2-24 服务器运行模式选择
(8)选择数据库的类型,可以选择支持MyISAM、InnoDB等多种存储引擎的数据系统,也可以选择只支持其中一种的数据库系统。默认选择“Multifunctional Database”,单击“Next”按钮,如图2-25所示。
图2-25 选择数据类型
(9)选择InnoDB数据文件的存放路径。请注意选择路径后下方所选分区的剩余空间,单击“Next”按钮,如图2-26所示。
图2-26 选择InnoDB数据文件的存放路径
(10)选择MySQL服务器的最大并发连接数量。这里可选择第一个默认项“Decision Support(DSS)/OLAP”,单击“Next”按钮,如图2-27所示。
图2-27 选择MySQL服务器的最大并发连接数量
(11)选择MySQL端口设置,默认“3306”即可,单击“Next”按钮,如图2-28所示。
图2-28 选择MySQL端口设置
(12)选择MySQL字符集设置,选中第三项“Manual Selected Default Character Set/Collation”手动设置字符集,在下方的下拉菜单中选择“utf8”,单击“Next”按钮,如图2-29所示。
图2-29 MySQL字符集设置
(13)在图2-30所示的界面中勾选两个复选框,单击“Next”按钮。
图2-30 其他相关选项
(14)设置“root”账号、密码(root账号为MySQL默认的管理员账号),单击“Next”按钮,如图2-31所示。
图2-31 设置MySQL管理员账号
(15)准备执行以上所选择的配置,单击“Execute”按钮,如图2-32所示。
图2-32 确认MySQL服务器配置信息
至此,MySQL在Windows下的安装和配置全部完成。
2.3.2 Linux下的安装和配置
Linux下MySQL的安装要复杂一些,需要先创建MySQL账号(因为Linux下root的权限太大),并将该账号加入到组群中,具体安装步骤如下。
(1)创建MySQL账号,并加入组群。
#/usr/sbin/groupadd mysql #/usr/sbin/useradd -g mysql mysql
(2)拷贝安装包到“/usr/local”下。
#cp mysql-5.1.53-linux-i686-glibc23.tar.gz /usr/local/
(3)解压安装包。
#tar zxvf mysql-5.1.53-linux-i686-glibc23.tar.gz
(4)创建到刚解压的文件夹的链接,并命名为MySQL(创建链接方式的目的是考虑到MySQL数据库以后升级的需要)。
#ln -s mysql-5.1.53-linux-i686-glibc23 mysql
(5)进入目录MySQL,并安装MySQL数据库。
#cd mysql #./scripts/mysql_install_db --user=mysql
(6)拷贝MySQL配置文件到系统目录,并重命名为“my.cnf”。
#cp ./support-files/my-medium.cnf /etc/my.cnf
用下面的命令可以启动和停止MySQL服务:
#/usr/local/mysql/bin/mysqld_safe --user=mysql& #/usr/local/mysql/bin/mysqladmin -u root -p shutdown
Linux系统下初次安装MySQL后,root账号的密码为空,所以当使用root账号提示输入密码时直接回车即可。进入MySQL客户端,使用如下命令:
#/usr/local/mysql/bin/mysql -u root -p
退出时,使用“exit”。
至此,MySQL在Linux下的安装和配置全部完成。
2.4 PHP与MySQL连接
在Windows系统下,如果需要在PHP 5中使用MySQL,则要在Windows系统下的php.ini文件中启动MySQL模块支持,打开php.ini,将如下3项前的分号“;”去掉。
;extension = php_mysql.dll ;extension = php_mysqli.dll ;extension = php_pdo_mysql.dll
在Linux系统下,编译PHP时需要将MySQL相关的模块也编译进去。
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql
检查PHP是否支持MySQL的相关模块,打开浏览器,输入“http://localhost/phpdemo.php”,按Enter键将在页面中看到3个和MySQL相关的表格“mysql”、“mysqli”和“pdo_mysql”。
下面简单介绍PHP访问MySQL数据库的方式。
PHP访问MySQL数据库的方式有多种,可以使用PHP内建的数据库访问函数,也可以使用数据库抽象层来实现。
先来简单介绍一下如何使用PHP的内建函数访问MySQL数据库。PHP提供mysql_connect()来连接数据库,然后通过mysql_close()来关闭该连接资源。示例如下:
<?php $link = mysql_connect('localhost', 'username','password'); //建立一个MySQL连接,三个参数分别表示服务器名、用户名和密码 mysql_select_db('test'); //访问test数据库 $rs = mysql_query('select * from tb_object'); //执行SQL语句 while($row = mysql_fetch_row($rs)){ //配合while循环输出结果 print_r($row); //打印一行 echo "<br/>"; } mysql_close($link); //关闭打开的MySQL连接 ?>
使用PHP的内建函数访问数据库虽然方便,性能也高,但MySQL、SQL Server、Oracle等数据库的扩展却使用着不同且互不兼容的应用程序接口(API),这导致应用程序难以维护和移植。为了解决这些问题,PHP开发出了一套API来统一各种不同的关系型数据库管理系统的共有特性,从而使PHP脚本实现最大程度的抽象性和兼容性,这就是数据库抽象层。
使用数据库抽象层,意味着当从一个数据库系统向另一个数据库系统迁移时,几乎不用更改太多的程序代码。目前,比较主流的数据库抽象层有Metabase、PEAR:DB、PDO(PHP Data Object)及ADODB(Active Data Object Data Base)等,而PDO和ADODB是当今最快的数据库抽象类。
要使用数据库抽象层ADODB来操作数据库,需要先获取和安装ADODB,只需要在网上下载ADODB包,然后解压到Web服务器目录下即可(要使用ADODB,PHP必须是4.01以上的版本)。下面是使用ADODB访问MySQL数据库的简单示例。
<?php require_once 'adodb/adodb.inc.php'; //载入adodb.inc.php文件 $conn = ADONewConnection('mysql'); //连接MySQL数据库 $conn->connect('localhost' , 'username' , 'password , 'test');//访问test数据库 $rs = $conn->execute('SELECT * FROM tb_object'); //执行SQL语句 while ($row = $rs->FetchRow()) { //配合while循环输出结果 print_r($row); //打印一行 echo "<br/>"; } $rs->close(); $conn->close(); ?>
数据库抽象层PDO是一个使用C语言开发的数据库抽象层,它是和PHP 5.1版本一起发行的,默认包含在PHP 5.1中。由于PDO需要PHP 5的核心面向对象特性的支持,因此它无法在PHP 5之前的版本中运行。下面是使用PDO访问MySQL数据库的简单示例。
<?php $dsn = 'mysql:dbname=test;host=localhost'; //设置数据源 try { //捕获异常 $pdo = new PDO($dsn, 'username', 'password'); //创建PDO对象 $rs = $pdo->query('SELECT * from tb_object'); //执行SQL语句 foreach ($rs as $row) { //循环输出结果 print_r($row); echo "<br/>"; } $pdo = null; //销毁PDO对象 } catch (PDOException $e) { //异常处理 print "Error!: " . $e->getMessage() . "<br/>"; die(); } ?>
以上演示了使用3种方式来访问MySQL数据库,各有各的特点。使用内建函数的方式最为直接方便,但是数据库移植性差。PDO的设计继承了PHP的特点,简洁易用,它在使用上依然使用原生的SQL,这就使得它当PHP环境中的数据库发生变化时无法做出相应的反应,也就是说,PDO不适合用在打算或有可能会变更数据库的系统中。不管后端数据库如何,ADODB存取数据库的方式都是一致的,转移数据库平台时,程序代码也不必做太大的更改,只需要改动数据库相关的配置文件即可。经过比较,ADODB比PDO更强大,但是这个抽象层的体积似乎过于庞大,全部文件加起来大约有1MB,如果只是做一个较小的网站,似乎有些大材小用,同时也会使你的网站程序看起来有些肥胖。读者可以根据自己的网站设计合理地选择一种适合的方式。
2.5 小结
本章详细介绍了开发PHP应用所需的3种软件—PHP、MySQL和IIS的安装和配置方法。首先介绍了如何在Windows下安装和配置IIS,然后分别介绍了PHP和MySQL在Windows和Linux这两个平台下的安装和配置方法,最后进解了PHP和MySQL的连接。本章特别强调了PHP运行时的多种配置选项,具有很大的参考价值。