2

我正在尝试学习如何使用 Eclipse Helios PDT,但我不明白如何将文件从他们的工作区获取到服务器。PDT 文档非常稀少。

我在 /home/bob/workspace 中有我的工作区,而我的本地开发 webroot 是 /home/bob/public_html。

如果我为我的 php 项目设置运行配置,我会看到我可以在哪里设置服务器的路径等,但是我看不到任何明显的方法可以将文件自动复制到我的 webroot 以实际运行项目。如果我点击运行,我只会在浏览器中得到 404。

例如,使用 NetBeans,您可以将 PHP 项目配置为在保存时复制到本地 Web 服务器、FTP 到服务器等。PDT 是否没有某种类似的功能?

4

6 回答 6

2

我从来没有真正使用源代码控制将文件推送到生产服务器,但这听起来很有趣。我所做的是使用 ANT。

我发现通过将工作区直接放在服务器位置会创建很多隐藏文件,如果您使用源代码控制,这些隐藏文件可以位于每个目录中。只是将这些复制并粘贴到我的生产服务器中,我感觉不对...

所以:我将我的工作区设置为将代码放在一个位置,而不是在我的本地服务器上。当我准备好测试时,我运行 ant 脚本。该脚本将我想要的所有文件放到服务器上。然后,如果我觉得它准备好了,我只需将这些文件移动到生产环境(ftp 或其他)。

这是我的本地蚂蚁脚本:

<?xml version="1.0" encoding="UTF-8"?>

<project default="init" basedir=".">

<target name="init">
    <echo message="Copying files to C:/Sandbox/xampp/htdocs"/>
    <sync todir="C:/Sandbox/xampp/htdocs">
        <fileset dir=".">
            <include name="**/*.html" />
            <include name="**/*.htm" />
            <include name="**/*.php" />
            <include name="**/*.css" />
            <include name="**/*.js" />
            <include name="**/*.jpg" />
            <include name="**/*.png" />
            <include name="**/*.gif" />
            <exclude name="env.php"/>
        </fileset> 
    </sync>
</target>

</project>

您会注意到我排除了一个名为“env.php”的文件。该文件包含特定的环境代码。诸如数据库名称之类的东西在本地和生产之间有所不同。

我意识到这比按 ctrl-s 然后按 F5 来查看本地更改要多一步,但它使得在其他地方部署它要简单得多。

玩得开心!

于 2011-02-15T23:15:19.523 回答
1

我建议您不要实际设置 FTP/SFTP,而是使用源代码控制将文件推送到您的生产服务器:Git/GitHub、Subversion/Google Code 等。您还可以获得额外的好处记录/差异/恢复,您将消除在本地文件中未反映的服务器上进行快速破解的诱惑。

于 2010-09-20T03:53:13.297 回答
1

您可以考虑不将本地项目保留在 Eclipse Workspace 中,而是将项目直接“放在服务器上” - 例如“映射网络驱动器”到具有文件的服务器(如果这是一个 unix 服务器,并且您在 Windows 中编程,然后在 unix 服务器上使用 Samba)。因此,当您保存更改时,实际上是直接在服务器上更改它,因此当您刷新浏览器时,更改将立即反映。

于 2010-12-20T20:41:46.063 回答
0

另一个快速而肮脏的解决方案的提示:在您的默认网络服务器文档目录中使用一个符号链接,它将指向您的工作区目录。

这仅适用于开发环境(我的观点)。

创建符号链接: ln -s /home/bob/workspace/your_project_name /home/bob/your_project_name

还要确保对路径的所有元素都具有网络服务器的读取和执行权限。您可以使用 chmod 调整权限。

于 2011-03-07T14:12:36.747 回答
0

Bob,如果你安装了 Aptana 插件,那么去 show view => Studio => App Explorer 你会看到一个框形按钮。如果单击此按钮,则会出现一个 Web 部署向导按钮。您可以使用它来自动为您上传。

于 2014-10-17T13:38:17.997 回答
0

反向“拉动”部署怎么样?

一旦您提交源代码控制(例如 svn),您可以在服务器上发出 svn checkout/update 以将代码从您的 svn 服务器部署到位。

如果你保存一些只读的 svn 凭据没有问题,你甚至可以有某种部署 .php 页面来执行 svn update 命令

这对于本地开发环境来说显然是多余的(只需将 apache 指向您的工作区),但它确保您必须在部署之前将所有内容提交到 svn(这具有记录网站上的每个更改的额外好处。)

于 2011-02-20T13:42:20.983 回答