MySQL[转]XP下IIS+PHP+MySQL安装

本文转自:http://blog.sina.com.cn/s/blog_602f87700100ftbh.html

作者:Sam(甄峰) sam_code@hotmail.com

 

及时段时光Sam需要树立一个STB使用的网站。有同事推荐了AppServ,这个软件设置MySQL和Apache,PHP,并自动配置,很是利于。但考虑到未来或者还欲拿LUA,Perl,ASP等。还是自己依次安装配置更发生可控性。

因IIS要支持PHP,所以用针对IIS配置。而PHP与MySQL连接老好。

 

一致:软件准备:

  1. PHP(PHP-5.2.11)

http://cn2.php.net/get/php-5.2.11-Win32.zip/from/a/mirror

php-5.2.11-Win32.zip

 

  1. MySQL(5.4.2)

http://dev.mysql.com/downloads

mysql-essential-5.4.2-beta-win32.msi

 

  1. PHPMyAdmin

phpMyAdmin-3.2.0.1-all-languages.zip

 

 

老二:软件设置设置:

 

1. PHP安装:

php-5.2.11-Win32.zip解开压缩后,放置到C:\public\php-5.2.11-Win32中。

1.1 DLL文件copy:

将C:\public\php-5.2.11-Win32索引下的装有dll文件copy到c:\Windows\system32下.

 

1.2 可执行文件和ini文件的copy:

将C:\public\php-5.2.11-Win32索引下的php.exe、php-win.exe和php.ini-dist三单文本拷到C:\Windows
( Windows 2000 下为
C:\WINNT)下;将C:\Windows\php.ini-dist改名为php.ini.

1.3. 修改PHP ini文件:

使用UltraEdit打开C:\Windows\php.ini

register_globals = Off

,将 Off 改成 On ;

extension_dir =

,并将其路径指到你的 PHP 目录下之 extensions 目录,比如:extension_dir
= “C:\public\php-5.2.11-Win32\ext” ;
找寻找到

;Windows Extensions

以脚罗列的

;extension=php_dbase.dll

可选

;extension=php_gd2.dll

斯是用来支撑GD库的,一般用,必择

 

;extension=php_ldap.dll

可选

;extension=php_mbstring.dll

即时不挑一般用PHPMYADMIN会来红色提示,故一定选

  

;extension=php_mssql.dll

本条是为此来支撑MSSQL的,可卜

  

;extension=php_mysql.dll

这是故来支撑MYSQL的,要支持MYSQL必选
以这些前的”;”去丢,其他的乃待的也罢可以去丢前面的;然后关门保存该公文。

 

 

2. IIS配置:

IIS安装好简单,但要给其支持PHP,则用做更加安排。

 

PHP 支持 CGI 和 ISAPI 两种安装模式,推荐以 ISAPI 模式。这里只解介绍
ISAPI 模式安装方式:

 

 

2.1: 添加ISAPI筛选器:

在“控制面板->性能及维护->管理工具->Internet
信息服务”中精选”默认网站”。停止的。

反键点选”默认网站”->属性->ISAPI筛选器,添加筛选器。

筛选器名称:”:PHP”

可执行文件:”C:\public\php-5.2.11-Win32\php5isapi.dll”

Sam: 这里是受IIS指出:遇到PHP,使用php指定的筛选器.

 

2.2: 添加应用程序映射:

反键点选”默认网站”->属性->主目录->配置,添加应用程序映射。

.php和C:\public\php-5.2.11-Win32\php5isapi.dll。

Sam:这里叫IIS指出:遇到.php文件,使用何种程序解析的。

 

2.3: 添加文档index.php

反键点选”默认网站”->属性->文档

添加一个index.php.

可以用 index.php 升到最高优先级,这样,访问站点时即会首先自动检索并打开
index.php 文档.

 

2.4. 再度起动IIS:

net stop w3svc
net stop iisadmin
net start w3svc

 

2.5.写index.php.

率先以反键点选”默认网站”->属性->主目录下看本地路径,通常也:C:\Inetpub\wwwroot

虽于是目录中起:一个index.php,内容如下:

<?php
phpinfo();
?>

 

这儿,IIS已经支撑PHP。

行使浏览器:http://localhost

虽说产出php info页面,且Server API的模式也:ISAPI , MySQL也为Enable.

或下其他电脑http://ipaddr如:http://172.16.1.46
没有显得,请察看防火墙。

 

 

3. 设置配备MySQL:

3.1 安装MySQL:

运行mysql-essential-5.4.2-beta-win32.msi。

安装在C:\Program Files\MySQL\MySQL Server 5.4。

 

3.2 配置 MySQL:

开始菜单->MySQL->MySQL Server Instance Config Wizar.

着力顺序Next,Sam 只修改了字符集为gb2312. root密码也改了。

 

3.3: PHP与MySQL连接:

哪些证明PHP是否跟MySQL连接成也,当然是用PHP能够读取MySQL内容了。

 

PHP想使读取MySQL数据库内容,则要MySQL首先发出一个数据库。

3.3.1:创建MySQL数据库:

开始菜单-> run ->cmd
(因为之前安装MySQL时,已经入选了见面设置至令执行,所以一直运行MySQL命令是有效的)

mysqladmin -u root -p654321 create mydb

坐事先Sam已经给root创建了密码:654321
所以创建database时要动用-p来输入密码,否则server不容许连接。

 

3.3.2: 给database写副内容:

在C:\Program Files\MySQL\MySQL Server
5.4\bin中开创mydb.dump文件,并形容副内容如下:

 

CREATE TABLE employees
(
id tinyint(4)  NOT NULL AUTO_INCREMENT, 
first varchar(20), 
last varchar(20), 
address varchar(255), 
position varchar(50), 
PRIMARY KEY (id), 
UNIQUE id (id)
);

INSERT INTO employees VALUES (1,’Bob’,’Smith’,’128 Here St,
Cityname’,’Marketing Manager’);

INSERT INTO employees VALUES (2,’John’,’Roberts’,’45 There St ,
Townville’,’Telephonist’);

INSERT INTO employees VALUES (3,’Brad’,’Johnson’,’1/34 Nowhere Blvd,
Snowston’,’Doorman’);

指令行进入C:\Program Files\MySQL\MySQL Server 5.4\bin目录,运行

mysql -u root -p654321 mydb < mydb.dump
拿mydb.dump内容写副mydb 这个database了。

 

3.3.3:  PHP读取MySQL database:

先后如下:

<html>

<body>

<?php

$db = mysql_connect(“localhost”, “root”, “654321”);

mysql_select_db(“mydb”,$db);

$result = mysql_query(“SELECT * FROM employees”,$db);

printf(“First Name: %s<br>\n”,
mysql_result($result,0,”first”));

printf(“Last Name: %s<br>\n”, mysql_result($result,0,”last”));

printf(“Address: %s<br>\n”,
mysql_result($result,0,”address”));

printf(“Position: %s<br>\n”,
mysql_result($result,0,”position”));

?>

</body>

</html>

 

以的存储吗test.php.

则http://localhost/test.php

结果为:

First Name: Bob
Last Name: Smith
Address: 128 Here St, Cityname
Position: Marketing Manager

证明PHP已经足以读取MySQL数据库了。

 

 

 

三:PHP与MySQL进阶:

例1:

优先研一下上次PHP读取MySQL数据库的次序:

<html>
<body>

<?php

$db = mysql_connect(“localhost”, “root”, “654321”);

mysql_select_db(“mydb”,$db);

$result = mysql_query(“SELECT * FROM employees”,$db);

printf(“First Name: %s<br>\n”,
mysql_result($result,0,”first”));

printf(“Last Name: %s<br>\n”, mysql_result($result,0,”last”));

printf(“Address: %s<br>\n”,
mysql_result($result,0,”address”));

printf(“Position: %s<br>\n”,
mysql_result($result,0,”position”));

?>

</body>
</html>

 

讲解:

$db = mysql_connect(“localhost”, “root”, “654321”);

Open a connection to a MySQL Server,

参数1:MySQL Server. (连接至地头MySQL)

参数2:用户名:root

参数3:密码:654321

 

连接后,

mysql_select_db(“mydb”,$db);

db这个连续着, 读取database –mydb(之前起的),也叫做Active database

$result = mysql_query(“SELECT * FROM employees”,$db);

从Active database中读取employees,resource
放到result中。利用刚才取的接连结果标识,该函数把一行SQL语句送给MySQL服务器去处理。返回的结果保存于变量$result中。

 

mysql_result($result,0,”first”)

从resource(result)中取到first项,返回之。

参数2:表示first项目被之第几只。相当给index.因为result中推广着方方面面的数据。

 

 

 

 

例2:

<html>

<body>

<?php

$db = mysql_connect(“localhost”, “root”, “654321”);

mysql_select_db(“mydb”,$db);

$result = mysql_query(“SELECT * FROM employees”,$db);

echo “<table border=1>\n”;

echo
“<tr><td>姓名</td><td>职位</td></tr>\n”;

while ($myrow = mysql_fetch_row($result)) {
printf(“<tr><td>%s
%s</td><td>%s</td></tr>\n”, $myrow[1],
$myrow[2], $myrow[4]);
}

echo “</table>\n”;

?>

</body>

</html>

 

讲解:

$db = mysql_connect(“localhost”, “root”, “654321”);

mysql_select_db(“mydb”,$db);

与齐,用来连续MySQL Server.并摘Active Database.

 

$result = mysql_query(“SELECT * FROM employees”,$db);

管Active data中多少读取到result 中。

 

$myrow = mysql_fetch_row($result))

把result中之data读来一行来,也就是是取出一个笔录,放到myrow的数组中。则myrow[0],
myrow[1]…依次为0-n个数据。

 

 

 

例3:

<html>

<body>

<?php

$db = mysql_connect(“localhost”, “root”, “654321”);

mysql_select_db(“mydb”,$db);

$result = mysql_query(“SELECT * FROM employees”,$db);

if ($myrow = mysql_fetch_array($result)) {

  echo “<table border=1>\n”;

  echo
“<tr><td>姓名</td><td>住址</td></tr>\n”;

  do {

    printf(“<tr><td>%s
%s</td><td>%s</tr>\n”, $myrow[“first”],
$myrow[“last”], $myrow[“address”]);

  } while ($myrow = mysql_fetch_array($result));

echo “</table>\n”;

} else {

echo “对不起,没有找到记录!”;

}

?>

</body>

</html>

 

暨齐一个次类似。

不同点在于:

mysql_fetch_array()函数。该函数和mysql_fetch_row()十分看似,只出几许见仁见智:使用是函数时,我们可以通过字段名如非是数组下标来访问它回到的字段,比如$myrow[“first”]。

 

 

 

 

例4:超级链接和MySQL取多少:

<html>
<body>

<?php

$db = mysql_connect(“localhost”, “root”, “654321”);

mysql_select_db(“mydb”,$db);

// display individual record
// 显示只条记下内容

if ($id) {

   $result = mysql_query(“SELECT * FROM employees WHERE id=$id”,$db);

   $myrow = mysql_fetch_array($result);

   printf(“名: %s\n<br>”, $myrow[“first”]);

   printf(“姓: %s\n<br>”, $myrow[“last”]);

   printf(“住址: %s\n<br>”, $myrow[“address”]);

   printf(“职位: %s\n<br>”, $myrow[“position”]);

} else {

    // show employee list
    // 显示员工列表

   $result = mysql_query(“SELECT * FROM employees”,$db);

    if ($myrow = mysql_fetch_array($result)) {

      // display list if there are records to display
      // 如果发记录,则显示列表

      do {

        printf(“<a href=\”%s?id=%s\”>%s
%s</a><br>\n”, $PATH_INFO, $myrow[“id”],
$myrow[“first”], $myrow[“last”]);

      } while ($myrow = mysql_fetch_array($result));

    } else {

      // no records to display
  // 没有记录但展示

      echo “对不起,没有找到记录!”;

    }

}

?>

</body>
</html>

 

讲解

先后第一坏上时,id为空,则直接上取多少打印为超级链接,其中PATH_INFO用来保存程序自身之称谓以及目录位置。

但是如若点击超级链接,则以同样赖跻身次,此时id为对诺ID号码,则打印是ID具体信息。

网站地图xml地图