我在 serverfault.com 上创建了一个问题,建议我在这里提问。
我有一个 PHP 脚本。当我使用浏览器时,它运行良好。它在同一目录中写入一个 XML 文件。该脚本运行大约需要 60 秒,生成的 XML 文件约为 16 MB。
我在 Windows Server Web 版 SP1 64 位上通过 FastCGI 运行 PHP 5.2.13。
该代码从 SQL 服务器中提取库存,运行一个循环来为第三方构建一个 XML 文件。
我在任务调度程序中创建了一个任务来运行 c:\php5\php.exe "D:\inetpub\tools\build.php"
任务计划程序显示大约一分钟的时间间隔,这是脚本在浏览器中运行所需的时间。
没有返回错误,但没有创建文件。
每次更改计划任务属性时,都会出现一个用户密码框,我输入管理员帐户密码。
如果我在命令行运行相同的路径和参数,它不会出错并且不会创建文件。
当我以管理员身份右键单击运行命令提示符时,该文件仍未创建。我在文件创建之后得到了我的回显语句“文件已发布”,并且没有返回错误。
我正在做一个简单的 fopen fwrite fclose 以将 php 变量的内容保存到 .xml 文件中,并且仅当脚本通过浏览器运行时才会创建该文件。
以下是 xml-building 循环之后发生的情况:
$feedContent .= "</feed>";
sqlsrv_close( $conn );
echo "<p>feed built</p>";
$feedFile = "feed.xml";
$handler = fopen($feedFile, 'w');
fwrite( $handler, $feedContent );
fclose( $handler );
echo "<p>file published</p>";
谢谢