Profiel van 鉴鉴赏空间Foto'sWeblogLijsten Extra Help

Weblog


    11 februari

    如何在duplicateMovieClip中传递变量(转载)

     在论坛上看到一个HTML里的FLASH图片切换效果,JS跟FLASH通信,本来觉得没啥特别的,不过仔细看了下发现里面有行代码比较“怪异”,在使用duplicateMovieClip复制MC时,它传递了三个参数:MC新名称、深度、Object类型的一个变量。顿时奇怪了,这个Object有什么作用了?查了下帮助手册,才发现,一直以来自己居然忽视了这么好一个东东,呵呵 太惭愧了下面就来说说这个object到底能干些啥了!
      这是文档里对duplicateMovieClip方法的说明:
      public duplicateMovieClip (name:String, depth:Number, [initObject:Object]) : MovieClip
    参数
      name:String - 已重制的影片剪辑的唯一标识符。
      depth:Number - 一个唯一整数,指定要放置新影片剪辑的深度。使用深度 -16384 可将新影片剪辑实例放置在创作环境中创建的所有内容之下。介于 -16383 和 -1(含)之间的值是保留供创作环境使用的,不应与此方法一起使用。其余的有效深度值介于 0 和 1048575(含)之间。
      initObject:Object [可选] - (Flash Player 6 和更高版本支持。)包含用于填充复制影片剪辑的属性的对象。此参数使动态创建的影片剪辑能够接收剪辑参数。如果 initObject 不是对象,则忽略它。initObject 的所有属性都已复制到新实例中。使用 initObject 指定的属性对于构造函数是可用的。
      正是因为intiObject参数可选,我才忽视了这个参数的作用,我想肯定也有朋友跟我一样,这也是我写这篇文章的目的,呵呵 给某些朋友也提个醒。
      从参数说明中可以看出,我们使用initObject参数可以在MC复制时初始化MC的属性,这里的属性可以理解为两方面:
      第一、它是MovieClip类的属性,例如,_x _y _alpha等等我们经常使用的属性
      第二、不是MC固有的属性,而是一个自定义的变量,例如自定义一个link变量。
      在没有使用initObject参数前,我完成MC复制以后还需要一个with来初始化MC的属性,例如:
     
    程序代码
    for( i=0;i<5;i++){
    _mc.duplicateMovieClip("_mc"+i,i);
    var _mc = eval("_mc"+i);
    with (_mc){
      _x=120*i;
    }
    }
    我们还会遇到一个很常见的问题,例如,我要给每个复制出来的MC初始化一个link,当MC点击时,我要trace出这个link,需求很简单,我们可以尝试写如下代码:
     
    程序代码
    for (i=0; i<5; i++) {
    _mc.duplicateMovieClip("_mc"+i, i);
    var _mc = eval("_mc"+i);
    //_mc里设置一个_txt文本,用来记录i,假设link等于i
    _mc._txt.text = i;    
    _mc._x = 120*i;//为每个MC赋予按钮事件,让它能够trace出指定的link
    _mc.onRelease = function() {
      trace(i);
    };
    }

      测试我们发现,复制出来的5个MC的文本显示的确实是0到4,不过当我们点击的时候我们会发现trace出来的都是5,奇怪了,为何我们看到的link是0到4,而我们trace出来的为何是5了?如果对程序内存分配稍微有些了解的话这个就很好理解了,在FLASH里,对于5个MC,我们trace的link变量是占用同一个内存地址。那么如何解决这个问题了?我之前的做法是在复制MC时就给MC一个变量,用来记录link。
     
    程序代码
    for (i=0; i<5; i++) {
    _mc.duplicateMovieClip("_mc"+i, i);
    var _mc = eval("_mc"+i);
    _mc._txt.text = i;
    _mc._x = 120*i;
    _mc.link=i;
    _mc.onRelease = function() {
      trace(this.link);
    };
    }
    测试,达到我们预期的效果。
    现在如果使用initObject参数,那么上面的问题就可以很容易解决了,同时精简了代码量。
     
    程序代码
    for (i=0; i<5; i++) {
    var _obj={link:i,_x:120*i,num:i};
    _mc.duplicateMovieClip(”_mc”+i, i,_obj);
    var _mc = eval(”_mc”+i);
    _mc._txt.text = _mc.num;
    _mc.onRelease = function() {
      trace(this.link);
    };
    }
    我们定义了一个名为_obj的Object类型变量,它传递了三个变量,link, _x ,num,其中_x是MC固有属性,那么MC复制出来以后_x坐标自动初始化,不需要我们去设置,对于link , num两个变量相当于我们给每个复制出来的MC都分配了独立的内存空间来存储这两个变量,任何时候我们都可以使用_mc.link来访问这个变量值,而不会出现之前我们遇到的共用内存地址所造成的麻烦了。
      再查阅一下attachMovie方法,它也有一个initObject参数,方式使用和duplicateMovieClip的一样。因此在我们动态复制MC时,如果好好利用这个参数,那么是可以让我们的复制更简洁,更方便。
    11 januari

    如何用flash调用windows user account

    想去实现用flash 调用windows user account,但是flash自己根本无法做到。 有人说用php 调用win32 api. 来实现。 但是用php实现window api真是件困难的事情。 因为要涉及在php中调用php_w32api.dll。php本身版本之间就用很多差异。像w32api_register_function这个function 在php4.23以后的版本就不能用了。完全被这个manual 误导了 http://au2.php.net/w32api
     
    最后改用ASP 很快就实现了这个功能。
     
    username=<%
    Dim objNet
    Dim username
    Set objNet=CreateObject("WScript.NetWork")
    response.write(objNet.UserName)
    Set objNet = Nothing
    %>

    如何能完全卸载mysql

    有的时候想卸载 mysql但是不能成功。 用一下命令可以实现。
    cmd
    sc delete mysql
    16 december

    如何在swf中使用fscommand("exec")命令

     Malcolm 真是难为我,要把flash做的像个Teleport Ultra的正式软件。 还要有什么帮助文件(.hlp)。 flash 可以用fscommand("exec")调用外部exe文件,但是由于安全原因,flash player禁止使用fscommand("exec")此命令在swf文件上。 找了很多网站都没有答案,回答只有一个,不可以,因为安全缘由。 甚至上了Macromedia的论坛询问,据说里面有Macromedia Development Team Member.
     
    最后连搜带试终于知道,最简单的方法就是,把fscommand文件夹拷贝到"C:\Program Files\Macromedia\Flash 8\Players\"下。
     
    但是当用html读取swf文件又出现问题。 无法使用exe文件。这是因为在html里(pluginspage="http://www.macromedia.com/go/getflashplayer")我们用的是在 Macomedia网站里的flashplayer, 而不是自己机器本身的flashplayer. 所以有些人无法找到“C:\Program Files\Macromedia\Flash 8\Players\“一样可以使用flash.
     
    所以无法根本解决读取exe文件的问题。 真是让人为难。

    关于fscommand调用EXE的一点心得体会(转载)

    我认为以下是对flash 中fscommand介绍的很有用的文章, 详细有根有据。
     
     
    //----------------------------------------------

    今天一位朋友问我关于fscommand的问题,是关于调用EXE文件的看到论坛上很多朋友都提到了这个问题,但是每次都无功而返,今天我也尝试做了一次,在实验中,多亏了卢巧音中文网朋友的支持和帮忙,在这儿我同样要感谢他!

    很多朋友在贴子里常常问:为什么我的FLASH无法调用本地机器里的EXE文件呢,可是AS写得却没有错误,我是这样写的啊 on (release) { fscommand("exec", "***.exe"); } 是的!粗粗看来,确实在AS中没有任何错误,我一开始的时候也是这个模式,可是就是调用不了文件。

    现在我们先来了解一下fscommand的几个命令的意思

    fscommand(cmd_string, arg_string) 执行主机端指令。
    cmd_string指定所要执行的指令名,可为FlashPlayer的 指令或浏览器JavaScript函数。
    arg_string声明该指令所用到的参数。

    FlashPlayer的指令有(只能在独立播放器时使用):
     "fullscreen" 是否全屏播放,参数为true或false
    "allowscale" 是否允许通过拉伸窗口缩放影片,参数为true或false
    "showmenu" 是否在播放器显示菜单,参数猼rue或false
    "trapallkeys" 是否屏蔽播放器的快捷键(如Esc表示停止播放并恢复 "save" 隐藏属性,作用是存变量到文本文件. 视窗显示),参数为true或false。但Alt+F4系统快捷 键(关闭窗口)依然可用。
    "exec" 运行arg_string所指定的文件。

    以下只介绍exec命令的用法 EXEC是通过FLASH文件调用本地EXE文件的一个命令

    首先,新建一文件夹,命名为myflash

    打开flash,在场景中添加一按钮,在AS面板中写下代码: on (release) { fscommand("exec", "popo.exe"); } 至于为什么要取EXE文件的名字为popo,这个在后面会解释!

    将刚才的flash文件保存为1.fla,另外创建一个1.swf文件,在同一文件夹下新建一文件夹,命名为fscommand,这个文件夹是放置以后要调用的EXE文件的这时候你可以把EXE文件先放置到fscommand文件夹下了,刚才我用的popo.exe文件其实是网易泡泡的安装程序,其实是不是 POPO无所谓,只要是以EXE为扩展名的文件都可以。这个时候有些朋友就开始ENTER+CTRL进行测试了,可是没有反应没错啊,我刚才写的代码也没问题啊,我的路经也没问题啊,为什么就无法调用文件呢?

    其实问题在这里!Flash MX中增强了安全性,它虽然也可以调用exe文件,但它是有条件的

    (PS: Macromedia 公司这样做为了网络的安全性,可见他们是煞费苦心啊!把MX的exec给改造的非常之安全,否则一个网站的Banner都有可能把机器给格式化了吧! )

    1.你的flash文件不能是swf,而应该是exe文件,比如1.exe;

    2.要在1.exe同一目录中新建一命名fscommand目录,你要调用的外部可执行文件要在fscommand目录下这句话不知道大家有没有看懂,说得通俗一点:SWF文件不能直接调用EXE文件!也就是说,只有将你刚才做好的那个带按钮想调用popo.exe的 1.swf文件转换成EXE文件才可以调用popo.exe,其实也就是EXE调用EXE拉,只不过是前面的这个EXE必须是SWF转换过来的

    导出exe格式 发布方法如下:

    1. 选中 File -> Publish Settings 或按ctrl+shift+F12 它默认的发布类型为HTML(.html)与Flash(.swf), 你将这两项取消,选中Windows Projectors(.exe) 即可将你的Flash文件直接发布为exe可执行文件 按ctrl+F12即可发布 若你的文件尚未保存则它会发布在你flash的安装目录中 。

    2. 若你的文件已保存则会发布在你的文件同一目录下 还有一种比较简便的方法是: 先用 File -> Export Movie...或按Ctrl+Alt+Shift+S 导出swf文件 再打开这个文件,通过 文件 -> 创建播放器即可产生EXE可执行文件!

    现在打开你的1.exe,点一下中间的按钮试试看? 是不是可以直接调用该文件了?
    经过以上的步骤,你是不是自己摸索出了一点规律和失败的原因了吗?

    下面我替各位总结一下以上的内容:

    首先,调用EXE文件最重要的一点,必须把你的SWF文件先转换成EXE,也就是FLASH的播放器,为什么要先转换成EXE文件?我们都知道,随着MACROMEDIA公司的flash软件在全球的兴起,也带来了一股flash热潮,当然了,更多的人是用在了商业用途中,比如说做flash首页,做动画,这都是有利益驱使的,如果没有金钱,谁也不会去做(当然除了象我们这些业余爱好者除外),所以也出现了一些利用flash转空子的人,他们利用flash强大的功能在网络中进行破坏活动,使一些用户遭受了巨大的损失,其中很大的一方面就是因为fscommand命令而造成的,在flashmx推出之前,使用flash5的用户在使用这个命令的时候,都可以直接通过SWF来调用EXE文件(只要你把EXE文件放在fscommand文件夹下就行),破坏分子就是利用这个漏洞对一些网上的FLASH文件进行攻击和破坏活动,现在flashmx的推出的同时,也把AS中的此代码改成了EXE调用EXE来执行命令,从而保护了用户的安全。

    其次,必须把你要调用的EXE文件放在同一目录的 fscommand文件下,不然flash就无法查找该文件的具体路?另外说一下,如果你不想放在该文件夹下也可以,但是要具体写明它的位置具体的方法如下:开启一个外部可执行程序:扩展名.exe可以省略。

    具体来说,若一个exe文件(假设为another.exe)和该 swf文件本身在同一个目录下,则直接键入程序文件名即可。如: fscommand("exec","another") 否则,应写明路径。

    如打开IE浏览器窗口: fscommand("exec","c:\\progra~1\\intern~1\\iexplore") //注意DOS下对长文件(夹)名的处理形式。

    下面两种情况也可以不写路径——

    (1)当可执行程序是在c:\windows目录下时,可以不写路径。如调用windows的计算器,下面三种写法均可: fscommand("exec","c:\\windows\\calc.exe") fscommand("exec","c:\\windows\\calc") fscommand("exec","calc")

    (2)调用DOS命令也可省略路径。如下例打开MS-DOS下的Edit编辑器: fscommand("exec","edit.com") 如果熟悉批处理文件写法,通过FSCommand->exec命令执行批处理文件可以一举多得。当然,我个人认为,保持一个良好的习惯是必要的,所以还是复制一个EXE文件到fscommand文件夹下吧:)

    常见的共享软件保护方式(转载)

    最近老师希望我修改我做的flash做成共享软件的形式。 想了解如何做共享软件,就需要先知道,别人是如何破解它的, 以下文章我觉得简练精辟的概括了共享软件的保护形式
     
    //----------------------------------------------
    常见的共享软件保护方式(转载)

      1.网上注册
     
      目前大约80%的共享软件都采用网上注册。通常这类共享染件都会有使用时间上的限制,一旦过了试用期,就必须向软件开发者驻册才能够继续使用。注册过程一般都是用户把自己的私人信息告诉给开发者,开发者再根据这些信息,按照一定的规则计算出注册码,用户付费后即可得到。最后,用户在软件的注册项中输入得到的注册码,完成注册。

      2.警告窗口

      警告窗口是软件设计者用来不断提醒用户购买正版软件的窗口,这样的窗口会在软件启动或运行过程中不时弹出,非常令人讨厌。此类软件注册后,窗口会自动消失。

      3.限时器保护

      有些共享软件具有时间限制功能,比如每次运行时间超过多少分钟就会自动关闭程序,必须重新启动才能正常运行。还有一种保护模式就是程序只能运行有限的次数和天数等,这是由软件内部的定时器控制运行时间的。

      4.注册稳当保护

      这是一种利用文本文件来注册软件的方式。注册文档是纯文字文件或二进制的文件,其内容是一些加密或未加密的数据,内容包括用户的注册信息,文件格式由开发者自行定义。试用版本软件中没有这个注册文档,只有当用户向开发者付费注册后,才会收到软件的注册文档。用户只要将该文档放入指定的目录中,就可以将软件注册。软件在每次启动的时从注册文档中读取数据,然后利用某种算法判断注册信息是否正确,进而决定以何种模式运行。

    二、使用工具破解保护

      了解了“共享软件”通常使用的保护方式后,我们再来看看目前常用的破解工具软件。

      这里,我们推荐使用 Sunny FreeWizard 3.0

      软件名称 Sunny FreeWizard 3.0

      软件版本 3.0

      授权方式 共享软件

      STEP1:下载安装 Sunny FreeWizard ,http://www.xdowns.com/soft/6/99/2001/Soft_3403.html 并运行安装程序。

      STEP2:选择你要截取程序的限制,包括使用日期限制,使用天数限制,使用次数限制,启动时候弹出的确认窗户提醒注册。

      STEP3:输入要阻止的软件提醒注册窗口,在这里可以随便输入。,进行窗户检测并确认启动程序。

      STEP4:破解后再次启动 被破解的工具,软件不再提示注册。

    三、破解软件的类型

      通常在网上供下载的破解软件有四种类型:第一种是软件的破解版,即下载的程序已被修改过,屏遮掉了注册功能:第二种是软件的破解补丁,即我们安装了原始软件后还需要运行破解补丁对软件进行破解:第三种就是内存破解程序,也就是通过修改程序执行时在内存中的注册信息,让软件认为用户已经注册:第四种则是同通过软件的注册机计算出注册码,再进行软件注册。

    四、"Cracker"的破解方法

      其实现在大多数“共享软件”的注册码,破解程序和补丁都可以在网上找到,大可不必自己费力气来破解软件。不过,你想知道."Cracker"面对这些软件如何做的吗?下面就详细说说。

      1. “TNT”法——暴力破解

      暴力破解最常见也最简单的破解方法。."Cracker"直接利用编辑工具<例如ULTRAEDIT-32>对可执行文件进行修改,也就是说通过修改可属性程序的源文件来达到破解目的。某些元件在验证用户注册信息和注册码时候,如果用户输入的信息与软件通过的算法生成的注册码相等,程序就会注册成功,否则就会注册失败。

      2. “翻箱倒柜”法——追查软件注册码

      从软件中找到注册码一般都是稍微有些功力的."Cracker"做的,软件在进行注册码认证的时候会有个比较的过程,就是水软件会通过我们输入的用户或者根据我们的其他注册信息,生成一个正确的注册码与我们输入的注册码进行比较,如果2个相同,表示注册码正确并通过注册认证,否者就会提示出错。而对于采用明码的软件来说<就是将计算机出的注册码直接放在内寸中>,."Cracker"就会利用调试器对内存程序进行分析,找出存储在内存里面的正确注册码。

      3.破解之大成——编写软件注册机

      "Cracker"中的高手一般亲自写软件的注册机。这样做其一是由于某些加密程度较高的软件很难使用上述方法找到注册码,其二是."Cracker"进行破解通常并不仅仅是为了一个注册码,而是要对其软件结构,加密算法进行系统的分析和了解。当然,要想真正的写出软件的注册机,破解者需要具备相当熟练的代码分析能力和扎实的对软件开发功底,这也需要破解者进行刻艰苦的学习和长期的积累。

     

    14 december

    Open .hlp file with fscommand


    最近在做flash project, 需要用到 fscommand function 来调用外部 .hlp文件。很多方法都不理想,最后google到理想的用法: 
     
    question:
    Hi all,
    I've created a Flash file to be distributed on CD. I want to user to click on a button to open an external .hlp file called "glossary", but can't get the fscommand function to work, even though the .hlp file is stored in the correct "fscommand" subdirectory. Any help would be unbelievably appreciated! I've tried all of the following code:

    Code:
    fscommand ("exec", "winhlp32.exe"+chr(9)+ "glossary.hlp");
    fscommand ("exec", "glossary.hlp");
    fscommand ("exec", "winhelp.exe"+chr(9)+ "glossary.hlp");
     
    answer:
    1. Put a bat file in the fscommand folder and call it glossary.bat, it should contain only one line:
    Code:
    start glossary.hlp
     
    2. Then change your exec command to this:
    Code:
    fscommand("exec", "glossary.bat");
     
    And you should be in business. If you don't like the ugly DOS box that appears then you can download a copy of my FREE proxy utility (http://www.northcode.com/misc/proxy.zip).
     
    3. To use it, take a copy of proxy.exe, rename it to glossary.exe and drop it in the fscommand folder with glossary.bat and glossary.hlp. Then change your exec command to this:
    Code:
    fscommand("exec", "glossary.exe");
     
    And you're done. The proxy utility looks at its own name, then looks for a BAT file with the same name and runs it BUT it hides the DOS box so everything looks clean and professional.
    11 december

    Click to activate and use this control

    最近做flash project, 发现安装windows的更新,重启后就发现浏览网页中的flash文件,会在文件四周出现一个框,显示"Click to activate and use this control",感觉很不爽,必须点一下那个flash文件,网页才会显示正常. 解决方法如下

    ----------------------------------------------------------------------

    Why do I see a message prompting me to “click to activate and use this control” when I roll my mouse over a Flash animation?

    This is a result of the latest Internet Explorer update.

    Microsoft recently lost a legal battle with a patent holder about the way Internet Explorer displays OBJECTs and EMBEDs in webpages. Microsoft then decided to update its Internet Explorer browser with changes requiring user input to display and activate ActiveX based media.

    This affects all Flash animations but also other files such as QuickTime, RealPlayer, Java and Adobe Acrobat among others. It means users have to click the object first in order to activate its functions.

    Luckily, there are ways for website developers to modify their website so that the user experience is not impacted by Microsoft’s changes. I have selected the easiest and most user-friendly option available at this time and have implemented this solution throughout this website.

    To fix the problem, please follow these steps:

    1) Just below the last <object> in your HTML page, insert the following Javascript:

    <script type="text/javascript" src="ieupdate.js"></script>

    2) Add a small .js file to your website directory.

    open "NotePad" input:

    objects = document.getElementsByTagName("object");
    for (var i = 0; i < objects.length; i++)
    {
        objects[i].outerHTML = objects[i].outerHTML;
    }

    3) Save this file as ieupdate.js to the root of your website (or where you save your html pages)

    4) Upload both files to your webserver, and the problem should be solved.

     

    07 november

    IIS+PHP+MySQL类环境安装配置 (转载)

     

    IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置[完整修正实用版]

    [补充]关于参照本贴配置这使用中使用的相关问题请参考
    关于WIN主机下配置PHP的若干问题解决方案总结这个帖子尽量自行解决,谢谢
    http://bbs.xqin.com/viewthread.php?tid=86

    一、软件准备:以下均为截止2006-1-20的最新正式版本,下载地址也均长期有效

    1.PHP,推荐PHP4.4.0的ZIP解压版本:

    PHP(4.4.0):http://cn.php.net/get/php-4.4.0-Win32.zip/from/a/mirror

    PHP(5.1.2):http://cn.php.net/get/php-5.1.2-Win32.zip/from/a/mirror

    2.MySQL,配合PHP4推荐MySQL4.0.26的WIN系统安装版本:

    MySQL(4.0.26):http://download.discuz.net/mysql-4.0.26-win32.zip

    MySQL(4.1.16):http://www.skycn.com/soft/24418.html

    MySQL(5.0.18):http://www.skycn.com/soft/1262.html
     

    3.Zend Optimizer,当然选择当前最新版本拉:

    Zend Optimizer(2.6.2):http://www.zend.com/store/free_download.php?pid=13

    (Zend软件虽然免费下载,但需要注册用户,这里提供注册好的帐户名:xqincom和密码:xqin.com,方便大家使用,请不要修改本帐号或将本帐户用于其他费正当途径,谢谢!)

    登陆后选择Windows x86的Platform版本,如最新版本2.6.2 https://www.zend.com/store/getfreefile.php?pid=13&zbid=995

    4.phpMyAdmin


    当然同样选择当前最新版本拉,注意选择for Windows 的版本哦:

    phpMyAdmin(2.8.0.3):http://www.crsky.com/soft/4190.html

    假设 C:\ 为你现在所使用操作系统的系统盘,如果你目前操作系统不是安装在 C:\ ,请自行对应修改相应路径。同时由于C盘经常会因为各种原因重装系统,数据放在该盘不易备份和转移 选择安装目录,故本文将所有PHP相关软件均安装到D:\php目录下,这个路径你可以自行设定,如果你安装到不同目录涉及到路径的请对应修改以下的对应路径即可

    二、安装 PHP :本文PHP安装路径取为D:\php\php4\(为避混淆,PHP5.1.x版本安装路径取为D:\php\php5\)


    (1)、下载后得到 php-4.4.0-Win32.zip ,解压至D:\php目录,将得到二级目录php-4.4.0-Win32,改名为 php4,
    也即得到PHP文件存放目录D:\php\php4\

    [如果是PHP5.1.2,得到的文件是php-5.1.2-Win32.zip,直接全部接压至D:\php\php5目录即可得PHP文件存放目录D:\php\php5\];


    (2)、再将D:\php\php4目录和D:\php\php4\dlls目录

    [PHP5为D:\php\php5\]下的所有dll文件 copy 到 c:\Windows\system32 (win2000系统为 c:/winnt/system32/)下,覆盖已有的dll文件;
     


    (3)、将php.ini-dist用记事本打开,利用记事本的查找功能搜索并修改:


    搜索 register_globals = Off

    将 Off 改成 On ,即得到 register_globals = On

    注:这个对应PHP的全局变量功能,考虑有很多PHP程序需要全局变量功能故打开,打开后请注意-PHP程序的严谨性,如果不需要推荐不修改保持默认Off状态
    搜索 extension_dir =

    这个是PHP扩展功能目录 并将其路径指到你的 PHP 目录下的 extensions 目录,比如:

    修改 extension_dir = "./" extension_dir = "D:/php/php4/extensions/"

    [PHP5对应修改为 extension_dir = "D:/php/php5/ext/" ]
    D:\php 下建立文件夹并命名为 tmp

    查找 upload_tmp_dir =

    ;upload_tmp_dir 该行的注释符,即前面的分号" ”去掉,

    使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以修改并给其定义一个绝对路径,这里设置的目录必须有读写权限。

    这里我设置为 upload_tmp_dir = D:/php/tmp (即前面建立的这个文件夹呵)
    搜索 ; Windows Extensions

    将下面一些常用的项前面的 ; 去掉 ,红色的必须蓝色的供选择
     

    ;extension=php_mbstring.dll

    这个必须要

    ;extension=php_curl.dll

    ;extension=php_dbase.dll

    ;extension=php_gd2.dll
    这个是用来支持GD库的,一般需要,必选



    ;extension=php_ldap.dll

    ;extension=php_zip.dll


    对于PHP5的版本还需要查找

    ;extension=php_mysql.dll

    并同样去掉前面的";"

    这个是用来支持MYSQL的,由于PHP5将MySQL作为一个独立的模块来加载运行的,故要支持MYSQL必选


    查找 ;session.save_path =

    去掉前面 ; 号,本文这里将其设置置为

    session.save_path = D:/php/tmp

    其他的你可以选择需要的去掉前面的;


    然后将该文件另存为为 php.ini C:\Windows ( Windows 2000 下为 C:\WINNT)目录下,注意更改文件后缀名为ini,

    得到 C:\Windows\php.ini ( Windows 2000 下为 C:\WINNT\php.ini)


    若路径等和本文相同可直接保存到C:\Windows ( Windows 2000 下为 C:\WINNT) 目录下 使用



    一些朋友经常反映无法上传较大的文件或者运行某些程序经常超时,那么可以找到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下的PHP.INI以下内容修改:

    max_execution_time = 30 ; 这个是每个脚本运行的最长时间,可以自己修改加长,单位秒
    max_input_time = 60 ; 这是每个脚本可以消耗的时间,单位也是秒
    memory_limit = 8M ; 这个是脚本运行最大消耗的内存,也可以自己加大
    upload_max_filesize = 2M ; 上载文件的最大许可大小 ,自己改吧,一些图片论坛需要这个更大的值


    (4)、配置 IIS 使其支持 PHP :

    首先必须确定系统中已经正确安装 IIS ,如果没有安装,需要先安装 IIS ,安装步骤如下:
    Windows 2000/XP 下的 IIS 安装:

    用 Administrator 帐号登陆系统,将 Windows 2000 安装光盘插入光盘驱动器,进入“控制面板”点击“添加/删除程序”,再点击左侧的“添加/删除 Windows 组件”,在弹出的窗口中选择“Internet 信息服务(IIS)”,点下面的“详细信息”按钮,选择组件,以下组件是必须的:“Internet 服务管理器”、“World Wide Web 服务器”和“公用文件”,确定安装。

    安装完毕后,在“控制面板”的“管理工具”里打开“服务”,检查“IIS Admin Service”和“World Wide Web Publishing Service”两项服务,如果没有启动,将其启动即可。

    Windows 2003 下的 IIS 安装:

    由于 Windows 2003 的 IIS 6.0 集成在应用程序服务器中,因此安装应用程序服务器就会默认安装 IIS 6.0 ,在“开始”菜单中点击“配置您的服务器”,在打开的“配置您的服务器向导”里左侧选择“应用程序服务器(IIS,ASP.NET)”,单击“下一步”出现“应用程序服务器选项”,你可以选择和应用程序服务器一起安装的组件,默认全选即可,单击“下一步”,出现“选择总结界面”,提示了本次安装中的选项,配置程序将自动按照“选择总结”中的选项进行安装和配置。

    打开浏览器,输入:http://localhost/,看到成功页面后进行下面的操作:

    PHP 支持 CGI 和 ISAPI 两种安装模式,CGI 更消耗资源,容易因为超时而没有反映,但是实际上比较安全,负载能力强,节省资源,但是安全性略差于CGI,本人推荐使用 ISAPI 模式。故这里只解介绍 ISAPI 模式安装方法:(以下的截图因各个系统不同,窗口界面可能不同,但对应选项卡栏目是相同的,只需找到提到的对应选项卡即可)

    在“控制面板”的“管理工具”中选择“Internet 服务管理器”,打开 IIS 后停止服务,对于WIN2000系统在”Internet 服务管理器“的下级树一般为你的”计算机名“上单击右键选择“属性”,再在属性页面选择主属性”WWW 服务“右边的”编辑“
     

    对于XP/2003系统展开”Internet 服务管理器“的下级树一般为你的”计算机名“选择”网站“并单击右键选择“属性”
     

    在弹出的属性窗口上选择“ISAPI 筛选器”选项卡找到并点击“添加”按钮,在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:

    PHP ,再将浏览可执行文件使路径指向 php4isapi.dll 所在路径,

    如本文中为:D:\php\php4\sapi\php4isapi.dll

    [PHP5对应路径为 D:\php\php5\php5isapi.dll]
     

    打开“站点属性”窗口的“主目录”选项卡,找到并点击“配置”按钮

    在弹出的“应用程序配置”窗口中的”应用程序映射“选项卡找到并点击“添加”按钮新增一个扩展名映射,在弹出的窗口中单击“浏览”将可执行文件指向 php4isapi.dll 所在路径,如本文中为:D:\php\php4\sapi\php4isapi.dll[PHP5对应路径为D:\php\php5\php5isapi.dll],扩展名为 .php ,动作限于”GET,HEAD,POST,TRACE“,将“脚本引擎”“确认文件是否存在”选中,然后一路确定即可。如果还想支持诸如 .php3 ,.phtml 等扩展名的 PHP 文件,可以重复“添加”步骤,对应扩展名设置为需要的即可如.PHPX。

    此步操作将使你服务器IIS下的所有站点都支持你所添加的PHP扩展文件,当然如果你只需要部分站点支持PHP,只需要在“你需要支持PHP的Web站点”比如“默认Web站点”上单击右键选择“属性”,在打开的“ Web 站点属性”“主目录”选项卡,编辑或者添加PHP的扩展名映射即可或者将你步需要支持PHP的站点中的PHP扩展映射删除即可
     

    再打开“站点属性”窗口的“文档”选项卡,找到并点击“添加”按钮,向默认的 Web 站点启动文档列表中添加 index.php 项。您可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档。
     

    确定 Web 目录的应用程序设置和执行许可中选择为纯脚本,然后关闭 Internet 信息服务管理器
    对于2003系统还需要在“Internet 服务管理器”左边的“WEB服务扩展”中设置ISAPI 扩展允许,Active Server Pages 允许
     

    完成所有操作后,重新启动IIS服务。
    在CMD命令提示符中执行如下命令:

    net stop w3svc
    net stop iisadmin
    net start w3svc

    到此,PHP的基本安装已经完成,我们已经使网站支持PHP脚本。
    检查方法是,在 IIS 根目录下新建一个文本文件存为 php.php ,内容如下:
     

    <?php
    phpinfo();
    ?>


    打开浏览器,输入:http://localhost/php.php,将显示当前服务器所支持 PHP 的全部信息,可以看到 Server API的模式为:ISAPI 。
     

    或者利用PHP探针检测http://xqin.com/index.rar下载后解压到你的站点根目录下并访问即可


    三、安装 MySQL :

    对于MySQL4.0.26下载得到的是mysql-4.0.26-win32.zip,解压到mysql-4.0.26-win32目录双击执行 Setup.exe 一路Next下一步,选择安装目录为D:\php\MySQL和安装方式为Custom自定义安装,再一路Next下一步即可。
     

    安装完毕后,在CMD命令行中输入并运行:

    D:\php\MySQL\bin\mysqld-nt -install

    如果返回Service successfully installed.则说明系统服务成功安装

    新建一文本文件存为MY.INI,编辑配置MY.INI,这里给出一个参考的配置

    [mysqld]
    basedir=D:/php/MySQL
    #MySQL所在目录
    datadir=D:/php/MySQL/data
    #MySQL数据库所在目录,可以更改为其他你存放数据库的目录
    #language=D:/php/MySQL/share/your language directory
    #port=3306
    set-variable = max_connections=800
    skip-locking
    set-variable = key_buffer=512M
    set-variable = max_allowed_packet=4M
    set-variable = table_cache=1024
    set-variable = sort_buffer=2M
    set-variable = thread_cache=64
    set-variable = join_buffer_size=32M
    set-variable = record_buffer=32M
    set-variable = thread_concurrency=8
    set-variable = myisam_sort_buffer_size=64M
    set-variable = connect_timeout=10
    set-variable = wait_timeout=10
    server-id = 1
    [isamchk]
    set-variable = key_buffer=128M
    set-variable = sort_buffer=128M
    set-variable = read_buffer=2M
    set-variable = write_buffer=2M

    [myisamchk]
    set-variable = key_buffer=128M
    set-variable = sort_buffer=128M
    set-variable = read_buffer=2M
    set-variable = write_buffer=2M

    [WinMySQLadmin]
    Server=D:/php/MySQL/bin/mysqld-nt.exe




    保存后复制此MY.INI文件到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下
    回到CMD命令行中输入并运行:

    net start mysql

    MySQL 服务正在启动 .
    MySQL 服务已经启动成功。


    将启动 MySQL 服务;

    DOS下修改ROOT密码:当然后面安装PHPMYADMIN后修改密码也可以通过PHPMYADMIN修改

    格式:mysqladmin -u用户名 -p旧密码 password 新密码

    例:给root加个密码xqin.com

    首先在进入CMD命令行,转到MYSQL目录下的bin目录,然后键入以下命令

    mysqladmin -uroot password 你的密码

    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

    D:\php\MySQL\bin>mysqladmin -uroot password 你的密码


    回车后ROOT密码就设置为你的密码

    如果你下载的是 MySQL5.x或者MySQL4.1.x,例mysql-5.0.18-win32:解压后双击执行 Setup.exe ,Next下一步后选择Custom自定义安装,再Next下一步选择安装路径这里我们选择D:\php\MySQL,继续Next下一步跳过Sign UP完成安装。


    安装完成后会提示你是不是立即进行配置,选择是即可进行配置。当然一般安装后菜单里面也有配置向导MySQL Server Instance Config Wizar,运行后按下面步骤配置并设置ROOT密码即可

    Next下一步后选择Standard Configuration

    Next下一步,钩选Include .. PATH

    Next下一步,设置ROOT密码,建议社设置复杂点,确保服务器安全!

    Apply完成后将在D:\php\MySQL目录下生成MY.INI配置文件,添加并启动MySQL服务
     

    如果你的MySQL安装出错,并且卸载重装仍无法解决,这里提供一个小工具系统服务管理器http://xqin.com/iis/ser.rar,用于卸载后删除存在的MYSQL服务,重起后再按上述说明进行安装一般即可成功安装


    四、安装 Zend Optimizer :

    下载后得到 ZendOptimizer-2.6.2-Windows-i386.exe ,直接双击安装即可,安装过程要你选择 Web Server 时,选择 IIS ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini ,点确定后安装完成。我这里安装到D:\php\Zend

    以下两步的目录根据你自己的默认WEB站点目录来选,当然也可以选择到D:\php\Zend目录

    Zend Optimizer 的安装向导会自动根据你的选择来修改 php.ini 帮助你启动这个引擎。下面简单介绍一下 Zend Optimizer 的配置选项。以下为本人安装完成后 php.ini 里的默认配置代码(分号后面的内容为注释):

    [zend]
    zend_extension_ts="D:\php\Zend\lib\ZendExtensionManager.dll"
    ;Zend Optimizer 模块在硬盘上的安装路径。
    zend_extension_manager.optimizer_ts="D:\php\Zend\lib\Optimizer-2.6.2"
    ;优化器所在目录,默认无须修改。
    zend_optimizer.optimization_level=1023
    ;优化程度,这里定义启动多少个优化过程,默认值是 15 ,表示同时开启 10 个优化过程中的 1-4 ,我们可以将这个值改为 1023 ,表示开启全部10个优化过程。
     

    调用phpinfo()函数后显示:

    Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v1.0.9, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v2.6.2, Copyright (c) 1998-2006, by Zend Technologies

    则表示安装成功。


    五.安装GD库

    这一步在前面PHP.INI配置中去掉“;extension=php_gd2.dll”前面的;实际上已经安装好了~

    [在php.ini里找到"extension=php_gd2.dll"这一行,并且去掉前面的分号,gd库安装完成,用 echophpinfo() ;测试是否成功! ]


    六、安装 phpMyAdmin

    下载得到 phpMyAdmin-2.7.0.zip (如果需要这个版本可以找我QQ:4615825 3300073),

    将其解压到D:\php\或者 IIS 根目录,改名phpMyAdmin-2.7.0为phpMyAdmin,


    并在IIS中建立新站点或者虚拟目录指向该目录以便通过WEB地址访问,

    这里建立默认站点的phpMyAdmin虚拟目录指向D:\php\phpMyAdmin目录通过http://localhost/phpmyadmin/访问

    找到并打开D:\php\phpMyAdmin目录下的 config.default.php ,做以下修改:

    查找 $cfg['PmaAbsoluteUri']

    设置你的phpmyadmin的WEB访问URL,比如本文中:$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/'; 注意这里假设phpmyadmin在默认站点的根目录下


    查找 $cfg['blowfish_secret'] =

    设置COOKIES加密密匙,如xqin.com则设置为$cfg['blowfish_secret'] = 'xqin.com';

    查找 $cfg['Servers'][$i]['auth_type'] =

    默认为config,是不安全的,不推荐,推荐使用cookie,将其设置为 $cfg['Servers'][$i]['auth_type'] = 'cookie';

    注意这里如果设置为config请在下面设置用户名和密码!例如:

    $cfg['Servers'][$i]['user'] = 'root'; // MySQL user-----MySQL连接用户

    $cfg['Servers'][$i]['password'] = 'xqin.com';


    搜索$cfg['DefaultLang'] ,将其设置为 zh-gb2312 ;

    搜索$cfg['DefaultCharset'] ,将其设置为 gb2312 ;

    打开浏览器,输入:http://localhost/phpMyAdmin/ ,若 IIS 和 MySQL 均已启动,输入用户ROOT密码xqin.com(如没有设置密码则密码留空)即可进入phpMyAdmin数据库管理。

    首先点击权限进入用户管理,删除除ROOT和主机不为localhost的用户并重新读取用户权限表,这里同样可以修改和设置ROOT的密码,添加其他用户等

    phpMyAdmin 的具体功能,请慢慢熟悉,这里不再赘述。
    至此所有安装完毕。

    六、目录结构以及MTFS格式下安全的目录权限设置:
    当前目录结构为

                   D:\php
                     |
       +—————+——————+———————+———————+
      php4(php5) tmp     MySQL       Zend    phpMyAdmin
     

    D:\php 设置为 Administrators和SYSTEM完全权限 即可,其他用户均无权限

    对于其下的二级目录

    D:\php\php4(或者D:\php\php5) 设置为 USERS 读取/运行 权限


    D:\php\tmp 设置为 USERS 读/写/删 权限

    D:\php\MySQL 、D:\php\Zend 设置为 Administrators和SYSTEM完全权限

    phpMyAdmin WEB匿名用户读取权限

    七、优化:

    参见 http://bbs.xqin.com/viewthread.php?tid=3831
    PHP 优化配置——加速你的VBB,phpwind,Discuz,IPB,MolyX.....