在配置向导的下一个窗口中,系统询问你是否希望将MySQL安装为一项Windows服务,以及这项服务是否应随服务器一同启动。另外,还要求你决定是否将MySQL命令添加到Windows路径中。我做出明智选择,让MySQL服务随操作系统一起启动,并选择修改系统路径。(图11) PHP程序员站
PHP程序员站--PHP程序员之家
网络服务器和数据库的安全也是重要的因素。同样,你应该为数据库服务器设定一个安全的根密码;如果不是完全必要,禁止远程根访问,并且不要建立匿名账户。(图12) PHP程序员站
www.phperz.com
安全设置是向导中的最后配置项。一旦设置完成,向导准备进行配置,将配置信息写入C:\Program Files [{x86}]\MySQL\MySQL Server 5.0\my.ini文件中,然后启动数据库服务。 www.phperz.com
现在,你已经建立了一个运行正常的MySQL数据库服务器。现在我们转向PHP。 PHP程序员站--PHP程序员之家
第四步:安装并配置PHP PHP程序员站--PHP程序员之家
这可能是整个过程中最难的部分。让PHP与IIS 6协作有时是一种挑战。下面我将进行完整的说明。 PHP程序员站
安装PHP www.phperz.com
第一个任务是从前面下载的压缩文件中安装PHP。我一般将PHP安装到C:\PHP5文件夹中。在系统中完成以下操作: PHP程序员站--PHP程序员之家
在C盘上建立一个叫做PHP5的文件夹。 将下载的文件解压到这个位置。Windows Server 2003 R2内置的解压工具能够顺利完成这一任务。 不管你信不信,这就是PHP5的整个“安装过程”。现在,进入更难的操作:配置PHP。 PHP程序员站--PHP程序员之家
配置PHP PHP程序员站
需要采取几个步骤使PHP在 Windows下与IIS共同工作。 www~phperz~.com
在系统的路径变量中增加C:\PHP5。(图13)这样,系统能够更方便地定位它所需要的PHP DLL文件。 www~phperz~.com
www phperz com
选择开始并在我的电脑上右击鼠标。 在出现的快捷菜单中选择属性。 在属性窗口中选择高级标签。 点击环境变量按钮。 在系统变量列表中双击路径变量。 在路径变量的末尾增加“;C:\PHP”。(没有引号!) 重启服务器。 phperz.com
将C:\PHP5\php.ini-dist文件复制到C:\PHP5\php.ini,这是PHP的配置文件。-dist版本只是一个样本。 现在,建立一个名为PHPRC的系统变量,并将它分配到php.ini文件的路径中。如果你选择这样做,而不是建立一个注册表项来完成同样的任务,必须保证你的PHPRC变量只包含php.ini的路径,而不是路径和php.ini文件名。 最后,为使PHP与MySQL共同工作,你必须对c:\php5\php.ini进行一些修改。 用你最常用的文本编辑器打开c:\php5\php.ini。 找到extension_dir配置选项,保证这一行是:extension_dir = "./ext",它告诉PHP在哪找到其它要加载的模块。在应用MySQL和PHP时,你至少需要一个模块。 找到";extension=php_mysql.dll"这一行,删除前面的分号(;)。在php.ini文件中,分号用来注释配置行。在本例中,我希望反注释加载PHP MySQL模块的行。 在前面一行的正下方,添加:"extension=php_mysqli.dll"。这个模块激活新版MySQL的其它一些功能。 在命令提示符下输入”iisreset”命令,重新加载带新配置文件的IIS和PHP。 PHP程序员站--PHP程序员之家
配置IIS在32位模式下运行(仅用于64位Windows) www phperz com
正式的PHP Windows binaries还不能用于64位Windows构架上,但你还是可以在64位Windows上运行它。但要实现这一点,你必须在32位仿真模式下运行IIS 6。在你的Windows服务器中执行以下操作: www~phperz~.com
进入命令提示符。 从命令提示符窗口转入C:\Inetpub\Adminscripts文件夹。如果Windows安装在C盘以外的磁盘上,使用相应的盘符。 在Adminscripts文件夹中,输入下列命令:cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1,Enable32bitAppOnWin64的值1告诉Windows在32位模式下运行w3svc,而0值表示64位。 输入iisreset。 重启服务器。 配置IIS PHP程序员站
PHP配置完成后,在你开始应用它之前,你还必须告诉IIS如何使用这项新服务。否则,试图从IIS服务器中将PHP文件加载到网络浏览器只会得到错误的结果。 PHP程序员站--PHP程序员之家
有两种方法可在IIS中运行PHP——应用ISAPI,或以CGI扩展名的形式。由于应用ISAPI一般会得到较好的性能,在本文中我们应用此种方法。首先,我们将PHP ISAPI扩展名增加到IIS中。 www~phperz~.com
开始——管理工具——互联网信息服务(IIS)管理器。 选择服务器名称——网络服务扩展名。 在右方框中,点击“增加一个新的网络服务扩展名…”选项。 在结果窗口的“扩展名”中输入“PHP ISAPI”。 点击“添加”按钮。 浏览至C:\PHP5\php5isapi文件。 点击OK。 选中“允许设定扩展名状态”复选框。(图14) 点击OK。 PHP程序员站--PHP程序员之家
phperz.com
增加新的扩展名(.php) www.phperz.com
开始——管理工具——互联网信息服务(IIS)管理器。 右击网址,在出现的快捷菜单中选择属性。 在属性窗口中,选择“主目录”标签。 点击“配置”按钮。 点击“添加”按钮。 在“添加/编辑应用扩展名映射”窗口中,点击运行栏旁的“浏览”按钮并找到C:\PHP5\php5isapi.dll文件。 在扩展名输入框中输入“.php”。(图15) www.phperz.com
PHP程序员站
在动作(Verbs)标题下,选择“仅限于”选项,在文本框中输入“GET、POST、HEAD”. 点击OK,返回IIS管理器主窗口。
www phperz com
同时,在IIS中,确保你设定了网站许可,以便执行脚本: www phperz com
开始——管理工具——互联网信息服务(IIS)管理器。 右击网址,在出现的快捷菜单中选择属性。 在属性窗口中,选择“主目录”标签。 在“应用设置”中,将“执行许可”选项改为“仅用于脚本”。(图16) www.phperz.com
www phperz com
最后,在IIS中,确保你添加了一个默认的PHP页面,如index.php。这样,用户就不必为网络服务器上的一个特定文件夹指定完整的路径,以及PHP脚本名。相反,如果用户访问一个目录,其中含有一个名为index.php的文件,ISS就会自动加载它。 PHP程序员站
开始——管理工具——互联网信息服务(IIS)管理器。 右击网址,在出现的快捷菜单中选择属性。 在属性窗口中,选择“文件”标签。 点击“添加”按钮。 在“添加内容页面”窗口中输入“index.php”。(图17) PHP程序员站
www phperz com
点击OK。 再点击OK。如果你得到一个子节点也受到影响的信息,点击OK。 PHP程序员站--PHP程序员之家
测试PHP PHP程序员站
现在对PHP进行测试,保证它能够应用IIS实现动态页面。 www~phperz~.com
在IIS网络根目录下(一般为C:\Inetpub\wwwroot)建立一个名为phpinfo.php的文件。 在这个文件中,粘贴一行文本:<? phpinfo(); ?>。这实际是一段完整的PHP脚本,用来输出基于PHP的网络服务器的全部配置。 现在,在任务机器上访问http://{your server}/phpinfo.php,或从服务器上访问http://127.0.0.1/phpinfo.php。 如果出现错误,说明配置有错误。 你应该会得到类似于下图的窗口。(图18) PHP程序员站
www.phperz.com
确保在MySQL的phpinfo中有一个板块。如果没有,返回并保证你正确修改了php.ini文件,使它加载MySQL模块。
www.phperz.com
第五步:测试MySQL网络连接 PHP程序员站
在检测安装是否成功,你需要一个样本数据库再次进行测试。在本文中,我将使用MySQL命令行工具建立一个小型样本数据库,它的唯一目的在于保证PHP/MySQL连接正常。 phperz.com
要建立这个样本数据库: PHP程序员站--PHP程序员之家
1. 首先要建立一个真正的数据库。通过以下命令实现: mysqladmin -uroot –p******* create sample 注意:如果这里出现错误,确保密码正确(-u参数指定用户名,-p参数是你在MySQL 配置阶段分配的密码。) PHP程序员站
2. 现在,继续建立表格并添加一些数据。另外,从命令行中执行下列命令: www.phperz.com
C:>mysql -uroot -p******* sample 这时用前面使用的相同密码替代*。剩下的步骤在MySQL命令界面中完成。 在MySQL提示符下,输入 CREATE TABLE sample_table ( FirstName varchar(30), MiddleName varchar(30), LastName varchar(30) ); mysql> INSERT into sample_table Values ( "Scott", "David", "Lowe") ; mysql> INSERT into sample_table Values ( "Ralph", "John", "Malph") ; 注意:上面步骤中的分号极为重要。 从网络服务器利用根用户账号访问数据库是一个主要的安全威胁。所以,你应该为这一目的建立一个单独的账号。在MySQL界面中输入下列命令: GRANT ALL ON sample.* to Webuser@localhost identified by 'password'; 输入“离开”(quit)退出MySQL界面。 接下来,你需要网络服务器下的一个PHP脚本,它能够阅读这个新数据库的内容。如果成功做到这一点,你就拥有了一个运转正常的IIS/PHP/MySQL系统。 PHP程序员站
在网络根目录下(一般为C:\inetpub\wwwroot),建立一个名为dbtest.php的文件。 在这个文件中,粘贴下面的PHP代码: <? phperz.com
$Username = "Webuser"; PHP程序员站
$Password = "password"; PHP程序员站
$Database = "sample"; www phperz com
$Hostname = "localhost"; PHP程序员站--PHP程序员之家
$MySQLConnection = mysql_connect($Hostname, $Username, $Password) or die("Unable to connect to MySQL Database!!"); PHP程序员站
$MySQLSelectedDB = mysql_select_db($Database, $MySQLConnection) or die("Could not Set the Database!!"); www phperz com
$MySQLRecordSet = mysql_query("SELECT * FROM sample_table"); PHP程序员站
print "First Name-" . "Middle Name-" . "Last Name<br>"; PHP程序员站--PHP程序员之家
while ($MyRow = mysql_fetch_array($MySQLRecordSet, MYSQL_ASSOC)) phperz.com
{ PHP程序员站
print $MyRow['FirstName'] . "-" . $MyRow['MiddleName'] . "-" . $MyRow['LastName'] . "<br>"; www phperz com
} www phperz com
mysql_close($MySQLConnection); www phperz com
? > www~phperz~.com
保存这个文件,然后使网络浏览器指向http://{yourserver}/dbtest.php,你将得到类似于下图19的窗口。 PHP程序员站
www phperz com
更好的主意 www~phperz~.com
我从未说安装与配置过程很简单。但是,如果你遵循这些步骤,在较短的时间内你就可以建立一个正常的MySQL/PHP系统。如果你有使这一过程更为简化的说明或建议,我非常乐于接受。如果我收到足够好的建议,我将在另一篇文章中发表。 phperz.com
www phperz com
|