你好,欢迎访问远方教程PC版!
广告位招租
网站首页 >> 站长讲堂 >> 网站建设 >> 文章内容

ASP和PHP共存实战

[日期:2015-01-04]   来源:远方教程  作者:远方教程   阅读:4648次[字体: ] 访问[旧版]
 捐赠远方教程 

  我们都知道,微软公司一直提供的web服务器是iis。大名鼎鼎的ASP可以在IIS下运行.而当今网络所流行的不仅仅是ASP,php有着其更文阔的应用空间。一般网友认为php的运行环境较ASP而言相对复杂,其web服务器也比较难架设,实则不然。

  正常来讲,架设一个php服务器的有效方法是下载并安装:appserv和ultraedit两个软件的任意版本。这是架设php服务器的最单间方法。可遗憾的是,这种方法架设的php服务器不能和ASP共生。

  那么,想让ASP和PHP共享同一个服务器环境,又应该怎么实现呢?php-5.2.5版的出现,解决了这个问题。其实它的思路也比较简单,由于PHP可以跨web平台和服务器平台,因此,它提示我们,可以让ASP和PHP在IIS下共存。下面具体看一下步骤:

  一、软件安装

  在Windows操作系统上通过安装IIS服务,可以很简单的建立一个网页服务器,但是IIS只能支持ASP程序的运行,对于网络上丰富的PHP程序资源,该如何才能使用呢?

  通常,要运行PHP程序,都是使用Apache HTTP服务器+PHP处理程序来架设网页服务器的。但是,Apache无法直接支持ASP程序,而且它也不能和IIS共存,所以如果我们已经有并且习惯了使用IIS,就还是暂时不考虑安装Apache来提供对PHP的支持了。

  要让IIS能够支持PHP程序,那么PHP处理程序是必需要安装的。5.2版之前的PHP处理程序在安装后都还需要手工再对IIS进行设置,才能够让IIS正确的运行PHP程序,这一点在最新的5.2.5版已经得到了改进。

  最新版本的PHP 5.2.5安装程序可以从这里(http://cn2.php.net/distributions/php-5.2.5-win32-installer.msi
)下载到。运行下载好的安装程序,一路点击下一步,直到“Web Server Setup”这一步的时候,选择“IIS ISAPI module”,然后继续一路点击下一步,直至安装完成。

  要验证PHP安装是否成功同样也非常的简单,将下面这段代码粘贴到记事本中:

  <?php
  Phpinfo();
  ?>

  将其命名为“info.php”并保存到IIS设置的网页目录下(默认为“C:\Inetpub\wwwroot”),然后使用浏览器访问“http://localhost/info.php”或者“http://127.0.0.1/info.php”,如何看到了PHP的版本及信息说明,就证明PHP已经在你的IIS上开始正常运行了。

  二、故障排除

  安装过程一般是很顺利的,但由于IIS的版本不同,在安装后,很可能导致ASP和PHP都运行不了的情况,这就是IIS的Server Application Error错误。错误的表现有很多,这里只列举一个英文错误提示:The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.

  这时只要按照如下的办法,一般来讲都能顺利解决:

  1、右键我的电脑--管理--本地用户和组,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样。

  2、开始--运行--打cmd,
  然后cd C:InetpubAdminscripts(系统盘),
  然后cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码,
  然后cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码

  看一下,行了没有?如果还不行,那么
  cscript.exe synciwam.vbs -v,
  然后iisreset。

  据说就可以了,但是到最后一部提示8004e00f的错误,此错误是MSDTC服务不正常造成的,解决方法:

  首先进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。
  2、进入事件查看器,发现msdtc服务没有正常启动。
  3、删除注册表中的键: 
  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSDTC 
  HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTC
  HKEY_CLASSES_ROOTCID
  4、停止MSDTC服务:net stop msdtc
  5、卸载MSDTC服务:msdtc -uninstall
  6、重新安装MSDTC服务:msdtc -install
  7、确认在事件查看器中msdtc服务已经正常启动[这步很关键,如果没有,重新启动下电脑看看]
  8、重新设置IIS的IWAM账号密码。[在计算机管理中的用户管理里]
  9、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:inetputadminscripts>adsutil set w3svc/wamuserpass "yourpassword"
  10、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:c:inetputadminscripts>cscript synciwam.vbs -v

  到这部分网上大部分都说可以了,但是我这里虽然没有8004e00f的错误提示了,但是访问页面Server Application Error 错误依旧,最后终于找到了解决方法如下:

  解决办法:
  [1]:检查你的DTC服务(全名:Distributed Transaction Coordinator)是否可以正常启动,如果正常的话请你跳过此步骤;如果出错,无法正常启动,请在开始菜单的运行中 运行:msdtc -resetlog 以创建日志文件。重起机器,检查IIS是否可以正常使用,若不行继续。

  [2]:在CMD下执行以下命令:
  cd %windir%\system32\inetsrv

  rundll32 wamreg.dll, CreateIISPackage

  regsvr32 asptxn.dll

  到这里我就可以用了,不用重启。需要注意的是,上面的命令行如果运行过程中出现报错现象,可以运行多次,或者改换执行顺序,以解决问题。每个环节的错误解决后,一定要重新启动,让设置生效,别怕麻烦,这样其实是节省时间.

图片展示
 
相关评论
站长推荐