在Ubuntu中搭建开发环境

在Ubuntu中搭建开发环境

我是 Windows 的长期用户。最近学习了JavaScript/PHP/mySql,认为Ubuntu Server会是选择。不过,我仍然会在 Windows XP/7 上工作。这是我的想法

  • 开发机 (XP/7):我在其中进行所有编程。 IDE 为 Spket (JavaScript) 和 Aptana (PHP)。以及其他软件,如 PhotoShop、Office...
  • 服务器 (Ubuntu Lucid):这是我存储数据、运行 HTTP、电子邮件、FTP 服务器的地方......它将是一个 VPS。

简而言之,我将使用 Windows 作为客户端(IDE、客户端电子邮件软件、FTP...)并使用 Ubuntu 作为服务器来管理我的数据(Mercurial、Apache、mySql...)

我是新人,我想知道是否已经有人这样做并使用这种客户端/服务器组合。这种方法可能有哪些缺点?使用 VPS 通过 FTP 工作是个好主意吗?

我是一名独立开发人员,最近几天我一直在思考使用云的最佳方法。我做网络开发。请回复任何相关且有帮助的内容,我将感谢很多开发人员会撰写有关其工作环境的长篇文章。我心里并没有什么具体的想法,只是想做得更好。

谢谢你!

答案1

当然,很多人都使用过 Ubuntu Server 和 Windows 客户端。这Ubuntu 服务器指南几乎涵盖了您想做的所有事情。

以下是对您提议的设置的一些评论:

  • 放弃 FTP。请改用 SSH。就我个人而言,我还想补充一点,您应该设置基于密钥的身份验证并禁用密码身份验证。看这一页寻求一些帮助。

  • 我没有看到任何形式的备份提到的解决方案。请务必定期备份。

  • 考虑一下 Git。我会考虑使用 Git 而不是 Mercurial,但这是个人偏好。

  • 从一开始就考虑安全性——尤其是当它面向网络时。再次参见(1)。您不需要成为安全专家,但您至少应该考虑以下几点:

    1. 使用防火墙。对于 Ubuntu Server,这很容易使用ufw,并且在指南中进行了讨论。
    2. 不要运行您不需要的服务。具体来说,我会远离 phpmyadmin 这样的东西。
    3. 不要向其他人提供不需要的访问权限或特权。
    4. 考虑审计和日志记录。

我不想太强调的一个更一般的评论是,您也可以考虑将您的开发过程转移到 Linux。根据我的经验,Linux 可用的工具使远程服务器的工作更加顺利。

答案2

我认为 Web 开发人员没有必要使用 Windows 进行开发。尽管您仍然需要 Windows 平台进行测试。顺便说一句,您没有将其包含在工具列表中。您应该拥有针对多个不同平台的某种自动化测试环境,但这一切都可以在虚拟机中完成。

我不会使用像 Spket 这样的 IDE,但会学习一种基本且(一般来说)高度可编程的编辑器:emacs、vi 或 eclipse。

我还会在客户端使用 Mercurial 来处理所有代码。

答案3

看着桑巴舞这里- 这些应该可以满足您的很多要求。 Apache(ubuntu 的标准配置)可满足 Web 服务器需求。如果你必须我建议有FTPsftp

至于备份 - 看看

答案4

我发现西格温,对于与 Linux 服务器通信非常有用。您可以使用 rsync、ssh、scp 和所有这些工具来来回复制文件。另外,无论如何,您很快就会开始习惯 Unix 工具,因此您可能也希望在您的工作计算机上使用这些工具。

有些人更喜欢使用油灰,但我发现 cygwin+mintty+openssh 是一个更好的选择,因为它与本机 Linux 工具(例如 ssh-agent)具有相同的概念。

最后一点,有些人可能不同意我的观点,如果你要在 cygwin 和 linux 之间复制文件,我建议你通过编辑禁用 ACL/etc/fstab

相关内容