我嘗試通過ANT FTP自動部署小型站點。我使用Win7-64bit,開始是一項簡單的任務,越來越成爲一項挑戰。 我第一次發現我不得不安裝額外的課程,我做了。 commons-net-3.0.1.jar, jakarta-oro-2.0.8.jar
然後我不得不關閉我的防火牆部分,我也做了。 netsh advfirewall set global StatefulFTP disable
但即使現在它不工作。ANT FTP上載文件:425無法建立數據連接:連接超時
但是一步一步,那就是任務:
<target name="ftp" description="">
<ftp server="${ftp.server}"
userid="${ftp.user}"
password="${ftp.password}"
verbose="yes">
<fileset dir="..">
<include name="maintenance.php"/>
</fileset>
</ftp>
</target>
多數民衆贊成在結果:
ftp:
[ftp] sending files
[ftp] transferring C:\xampp\htdocs\maintenance.php
BUILD FAILED
C:\xampp\htdocs\xdf\build.xml:32: could not put file: 425 Unable to build data con
nection: Connection timed out
Total time: 3 minutes 10 seconds
到底什麼我做錯?
UPDATE發現Zend的自動同步工作的例子接縫ANT 1.8.3的新功能:
<property name="ftp.server" value="ftp.foo.bar"/>
<property name="ftp.user" value="foor"/>
<property name="ftp.password" value="bar"/>
<property name="ftp.basedir" value=""/>
<property name="ftp.verbose" value="yes"/>
<target name="ftp-upload" description="Synchronise to FTP">
<!-- Create temp folder -->
<tempfile prefix="ant-epp-" destdir="${java.io.tmpdir}" property="temp.file"/>
<mkdir dir="${temp.file}"/>
<!-- Move, rename, upload, delete 'maintenance.php' -->
<copy file="docs/hosting/maintenance.php" tofile="${temp.file}/index.php" />
<ftp server="${ftp.server}"
userid="${ftp.user}"
password="${ftp.password}"
remotedir="${ftp.basedir}/public"
passive="yes"
binary="yes"
verbose="${ftp.verbose}">
<fileset dir="${temp.file}">
<include name="index.php" />
</fileset>
</ftp>
<delete dir="${temp.file}" />
<!-- Remove 'application' & Reupload -->
<ftp action="del" server="${ftp.server}" userid="${ftp.user}" password="${ftp.password}"
remotedir="${ftp.basedir}/application" passive="yes" binary="yes" verbose="${ftp.verbose}">
<fileset>
<include name="**" />
</fileset>
</ftp>
<ftp action="rmdir" server="${ftp.server}" userid="${ftp.user}" password="${ftp.password}"
remotedir="${ftp.basedir}/application" passive="yes" binary="yes" verbose="${ftp.verbose}">
<fileset>
<include name="**" />
</fileset>
</ftp>
<ftp server="${ftp.server}" userid="${ftp.user}" password="${ftp.password}"
remotedir="${ftp.basedir}/application" passive="yes" binary="yes" verbose="${ftp.verbose}">
<fileset dir="application" />
</ftp>
<!-- Replace 'index.php' -->
<ftp server="${ftp.server}" userid="${ftp.user}" password="${ftp.password}"
remotedir="${ftp.basedir}/public" passive="yes" binary="yes" verbose="${ftp.verbose}">
<fileset dir="public">
<include name="index.php" />
</fileset>
</ftp>
</target>
是否可以與任何其他第三方程序進行ftp連接? – FailedDev
它並沒有計劃使用別的東西,而是因爲我的挫折感,我現在想着一個PHP腳本。因爲它是一個基於PHP的項目。 – lony
我同意@FailedDev,你應該嘗試獲得另一個工具的幫助文件(例如FileZilla) –