使用Phing部署到FTP

尽管大多数开发人员可能不喜欢它,但是FTP是将站点文件部署到服务器的非常普遍的方法。为了简化此过程,Phing附带了一个方便的FTP传输操作,称为ftpdeploy。

为了使用ftpdeploy,我们首先需要安装Net_FTP软件包。要安装此软件包,只需输入以下命令:

pear install Net_FTP

我们需要创建的第一件事是build.properties存储ftp详细信息的文件

ftp.destination.host=ftp.theftphost.com
ftp.destination.port=21
ftp.destination.username=theftpusername
ftp.destination.password=theftppassword
ftp.destination.dir=public_html
ftp.destination.mode=binary

下面是ftpdeploy的一个简单示例。构建文件仅定义一个文件集,该文件集在目录中包含一个文件。ftpdeploy任务接受build.properties文件的参数,并使用文件集来确定应上载哪些文件。唯一可能不明显的选项是mode选项。这是为了告诉ftpdeploy使用哪种FTP传输模式,这些模式可以是ascii或二进制,默认值为二进制。

<?xml version="1.0"?>
<project name="FtpUpload" default="main">
    <!-- Include properties file. -->
    <property file="build.properties" />
 
    <fileset dir="upload" id="TheFiles">
        <include name="phpinfo.php" />
    </fileset>
 
    <ftpdeploy 
        host="${ftp.destination.host}"
        port="${ftp.destination.port}"
        username="${ftp.destination.username}"
        password="${ftp.destination.password}"
        dir="${ftp.destination.dir}"
        mode="${ftp.destination.mode}">
        <fileset refid="TheFiles" />
    </ftpdeploy>
 
    <target name="main">
        <echo>FTP Upload Finished!</echo>
    </target> 
</project>

假设您已经调用了构建文件ftpupload.xml,则可以像这样运行此Phing构建文件。

phing -f ftpupload.xml

这将产生以下输出。

Buildfile: \ftpdeploy.xml
 [property] Loading \build.properties
 
FtpUpload > main:
 
     [echo] FTP Upload Finished!
 
BUILD FINISHED
 
Total time: 2.4250 seconds

还有一个名为clearfirst的附加选项,可用于从远程目录中删除所有文件。此设置的默认值为“ false”。Phing文档指出,清除目录后,将上传设置的文件。我发现尽管Phing会清除目录,但不会上传文件。

请查看Phing文档以获取有关Phing ftpdeploy任务的更多信息。