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:\Users\YOURNAME\AppData\Local\Temp\php\session\sess_ficdel21e6lupsojqdk62ofts5, O_RDWR) failed: No such file or directory (2) in C:\webapp\folder\index.php on line 24

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

The solution to the above error is really simple. Simply re-create the folder C:\Users\YOURNAME\AppData\Local\Temp\php\session\. For some reason, you or your Windows Vista (e.g. during a disk cleanup) may deleted all the files and folder under C:\Users\YOURNAME\AppData\Local\Temp\ 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:\WebSite\cronjobs\cron.php来执行。

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

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

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

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

 

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

posted @ 2014-12-17 17:05  脸谱匠  阅读(587)  评论(0编辑  收藏  举报