zoukankan      html  css  js  c++  java
  • IIS 7上部署PHP【后续一】

    在之前成功在windows 2008+iis7环境下部署php的基础上,今天把之前的挂Q网站转移到了这个服务器下。

    文件拷贝到服务器后,问题继续出现.

    1

    首先出现的问题是,Mysql的数据库名称和账户密码的问题。

    在安装mysql的时候,输入过一个密码,但是只有这个密码,数据库名称和帐号又是多少?

    这里是找到的常用Mysql命令,看完了这些就可以得出答案:默认帐号是root,数据库名称?要自己创建了才知道~

    2

    第二个问题:获取上面的帐号密码之后,正常情况下,打开fiyi.tk/install到配置入口,输入上面的帐号密码可以完成Mysql的数据表创建和基本配置。

    但是意外的出现了500 internal server error。问题的明细没有抛出来,具体原因只(ji)能(shu)靠(bu)猜(gou)。

    打开fiyi.tk,可以发现首页可以浏览。在网页源代码的开头有数据库链接的测试代码,如果链接失败会报错。可以打开首页说明数据库链接是正确的。问题在其他地方。

    先手动解决数据库的数据表问题以及网站配置的问题。

    在网站的资源包里面的install文件夹下面,有一个install.sql的文件,这里保存了创建需要的数据表的sql命令。有了这个文件,配合上面的Mysql的"导入.sql文件的命令",轻松解决数据库表结构的创建问题。而网站的基本配置在之前的搭建平台文章中有提过,内容是保存在siteinfo.php中的,手动修改保存即可。

    3

    解决了数据表的问题,再次打开网站首页,选择注册新用户。

    问题又来了。验证码的图像没有刷出来,随手填写信息点击确认后,再次出现了500 internal server error。看来问题不能避免了。

    百度了这个问题,很多人都是建议先把具体的问题抛出来,然后具体对待。怎么抛出来呢?有两个思路,一个是修改php.ini,另一个改网站的web.config。

    修改php.ini:

    修改php.ini文件如下

    log_errors = Off

    另外php关闭warning报错,修改php.ini文件中的error_reporting,默认情况下应该是:

    display_errors = Off
    error_reporting = E_ALL & ~E_NOTICE

    如果修改成这样还是出现warning报错就把warning也去掉:

    error_reporting = E_ALL & ~E_NOTICE | E_WARNING

    最后重启iis

    在重启iis之前,先重启CGI和FastCGI设置。

    修改web.config:

    Windows主机,分IIS6和IIS7。
    解决Godaddy美国空间IIS6的500错误方法:
    [code lang="xml"]
    <configuration>
    <system.web>
    <customErrors mode=”Off”/>
    <compilation debug=”true”/>
    </system.web>
    </configuration>
    [/code]
    解决Godaddy美国空间IIS7的500错误方法:
    [code lang="xml"]
    <configuration>
    <system.webServer>
    <httpErrors errorMode=”Detailed” />
    <asp scriptErrorSentToBrowser=”true”/>
    </system.webServer>
    <system.web>
    <customErrors mode=”Off”/>
    <compilation debug=”true”/>
    </system.web>
    </configuration>[/code]
    把以上代码放到记事本内,再直接修改文件名及后缀为:web.config     就通过以上方法,就可以轻松解决您的Godaddy美国空间的500错误了。也能方便你在做网站转移过程中,解决具体的兼容问题。
    一般,都是数据库应用路 径多了个“/”,出现乱码的时候解决办法也很简单的!     只要在顶部加上下面代码就行了(注意:去掉两边的空格):
    UTF-8编码的加上:< % @ LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″% >     GB2312编码的加上:< % @ LANGUAGE=”VBSCRIPT” CODEPAGE=”936″% >

    在我的情况下,修改php.ini没什么反应,而在修改了web.config之后,问题明细终于显现出来了。

    4

    问题的明细:

    Warning: session_start() [function.session-start]: open(C:UsersYOURNAMEAppDataLocalTempphpsessionsess_ficdel21e6lupsojqdk62ofts5, O_RDWR) failed: No such file or directory (2) in C:webappfolderindex.php on line 24

    这段是从别的地方截取的,我看到的报错和这个类似,除了路径不一样。而这段文字的作者在下面清晰的说明了解决方案:

    The solution to the above error is really simple. Simply re-create the folder C:UsersYOURNAMEAppDataLocalTempphpsession. For some reason, you or your Windows Vista (e.g. during a disk cleanup) may deleted all the files and folder under C:UsersYOURNAMEAppDataLocalTemp and this is the main reason PHP can’t find the correct location to create its temporary file for new session.

    只需在相应的目录下创建对应文件名的文件夹即可。

    (这里应该是一个低级错误。在配置php.ini中有一个session的保存位置,当时随手写了一个不存在的路径,导致了这个错误。)

    在处理完上述的问题后,打开注册窗口,终于如愿的看到了验证码的图片。输入数据后,注册成功。登录之后,也可以开始添加需要挂Q的号码了。

    5

    到这里,剩下最后一个问题没有解决。之前挂Q有一个cronjobs可以隔段时间刷QQ的状态,但那是在空间商提供的cPanel里面设置的。

    在这个独立服务器里面怎么设置实现,思路上采用系统自带的计划任务,每个15秒执行php.exe,输入-q C:WebSitecronjobscron.php来执行。

    初步测试,输入C:phpphp.exe -q C:WebSitecronjobscron.php失败。并没有执行这个页面。

    经测试,..php.exe -q ..cron.php这样的代码格式是有效的,在浏览器中手动执行fw1.php/newsid.php也是有效的。所以问题出现cron.php里面。

    这里同样是一个低级错误,在浏览器中输入www.fiyi.tk会发现是空白的,而fiyi.tk则是有效的。这样看来,问题处在cron.php里面的绝对路径上。

    修改之后,执行一次计划任务,如期望的,所有的QQ状态刷新成了"自动更新",后台mysql中QQ的sid数据也刷新了。

    到此,问题解决,网站重新上线。

  • 相关阅读:
    shell编程—简介(一)
    短信验证码测试项
    测试,不断成长
    初探软件测试心理学
    观察力,细心需要强化
    1=4,2=8,3=24,4=??问题
    IOS空数据页面,网络加载失败以及重新登陆View的封装(不需要继承)
    iOS 快速排序
    iOS支付宝,微信,银联支付集成封装调用(下)
    iOS支付宝,微信,银联支付集成封装(上)
  • 原文地址:https://www.cnblogs.com/icyJ/p/php2.html
Copyright © 2011-2022 走看看