我很难相信以前没有问过这个问题,但我找不到任何相关的问题。
有时,在上传相当大的PHP脚本时,我会收到类似以下内容的致命错误:
解析错误:语法错误,在行[line]
上的[file]中意外结束$ end
稍后快速刷新,错误当然会在上传完成后消失。一个简单的解决方案是将我的FTP客户端的传输模式切换到 binary ,但这似乎有点奇怪,因为脚本是ASCII。
我习惯于通过纯文本上传ASP.NET文件,服务器只需等待传输完成后再发送页面。
什么是最佳做法?
答案 0 :(得分:3)
您应该将脚本传输到服务器上的暂存目录,并使用ftp move命令在分段中进行适当测试后将其移动。
答案 1 :(得分:1)
如果您要将脚本部署到实时环境,您可以考虑使用rsync
。
它比FTP快得多,因为它首先比较目标和源,只移动源位置较新的文件。它还应该删除您使用大型PHP脚本未完全上传时遇到的问题。
作为替代方法,您可以使用rsync将文件从源目标位置移动到目标Web服务器上的测试目录。完成此操作后,您可以在实时Web服务器上触发rsync,以将文件从测试目录同步到实时。这里的优点是第二个rsync几乎是瞬时的,进一步减少了文件被覆盖的时间。
当然,rsync
仅适用于Linux服务器,但robocopy可用于对Windows环境产生类似的影响
答案 2 :(得分:0)
脚本正在崩溃,因为并非所有脚本都在服务器上,因此文件以脚本的中间结尾。你应该耐心等待它上传。如果您处于这样的情况,那么当服务器处于活动状态并且用户将访问此页面时(我真的无法想到何时会发生这种情况)您可以只更改权限以使其无法读取Web服务器在上传时,然后在加载后修复权限。