zoukankan      html  css  js  c++  java
  • [转]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

     

    2. MySQL(5.4.2)

    http://dev.mysql.com/downloads

    mysql-essential-5.4.2-beta-win32.msi

     

    3. 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具体信息。

  • 相关阅读:
    JVM 类加载过程
    JVM调优总结 -Xms
    JVM 内存模型
    git克隆远程项目并创建本地对应分支
    内存泄漏 和 内存溢出
    weblogic 乱码
    tomcat 、NIO、netty 本质
    Anything is possible if you have got enough nerve.
    maven build 的时候,卡死在Downloading metadata的解决方法
    TimeUnit
  • 原文地址:https://www.cnblogs.com/freeliver54/p/1835911.html
Copyright © 2011-2022 走看看