将脚本上载为纯文本时出现PHP错误

时间:2011-02-19 17:21:51

标签: php upload ftp

我很难相信以前没有问过这个问题,但我找不到任何相关的问题。

有时,在上传相当大的PHP脚本时,我会收到类似以下内容的致命错误:

  

解析错误:语法错误,在行[line] 上的[file]中意外结束$ end

稍后快速刷新,错误当然会在上传完成后消失。一个简单的解决方案是将我的FTP客户端的传输模式切换到 binary ,但这似乎有点奇怪,因为脚本是ASCII。

我习惯于通过纯文本上传ASP.NET文件,服务器只需等待传输完成后再发送页面。

什么是最佳做法?

3 个答案:

答案 0 :(得分:3)

您应该将脚本传输到服务器上的暂存目录,并使用ftp move命令在分段中进行适当测试后将其移动。

答案 1 :(得分:1)

如果您要将脚本部署到实时环境,您可以考虑使用rsync

它比FTP快得多,因为它首先比较目标和源,只移动源位置较新的文件。它还应该删除您使用大型PHP脚本未完全上传时遇到的问题。

作为替代方法,您可以使用rsync将文件从源目标位置移动到目标Web服务器上的测试目录。完成此操作后,您可以在实时Web服务器上触发rsync,以将文件从测试目录同步到实时。这里的优点是第二个rsync几乎是瞬时的,进一步减少了文件被覆盖的时间。

当然,rsync仅适用于Linux服务器,但robocopy可用于对Windows环境产生类似的影响

答案 2 :(得分:0)

脚本正在崩溃,因为并非所有脚本都在服务器上,因此文件以脚本的中间结尾。你应该耐心等待它上传。如果您处于这样的情况,那么当服务器处于活动状态并且用户将访问此页面时(我真的无法想到何时会发生这种情况)您可以只更改权限以使其无法读取Web服务器在上传时,然后在加载后修复权限。