我是 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)。您不需要成为安全专家,但您至少应该考虑以下几点:
- 使用防火墙。对于 Ubuntu Server,这很容易使用
ufw
,并且在指南中进行了讨论。 - 不要运行您不需要的服务。具体来说,我会远离 phpmyadmin 这样的东西。
- 不要向其他人提供不需要的访问权限或特权。
- 考虑审计和日志记录。
- 使用防火墙。对于 Ubuntu Server,这很容易使用
我不想太强调的一个更一般的评论是,您也可以考虑将您的开发过程转移到 Linux。根据我的经验,Linux 可用的工具使远程服务器的工作更加顺利。
答案2
我认为 Web 开发人员没有必要使用 Windows 进行开发。尽管您仍然需要 Windows 平台进行测试。顺便说一句,您没有将其包含在工具列表中。您应该拥有针对多个不同平台的某种自动化测试环境,但这一切都可以在虚拟机中完成。
我不会使用像 Spket 这样的 IDE,但会学习一种基本且(一般来说)高度可编程的编辑器:emacs、vi 或 eclipse。
我还会在客户端使用 Mercurial 来处理所有代码。
答案3
答案4
我发现西格温,对于与 Linux 服务器通信非常有用。您可以使用 rsync、ssh、scp 和所有这些工具来来回复制文件。另外,无论如何,您很快就会开始习惯 Unix 工具,因此您可能也希望在您的工作计算机上使用这些工具。
有些人更喜欢使用油灰,但我发现 cygwin+mintty+openssh 是一个更好的选择,因为它与本机 Linux 工具(例如 ssh-agent)具有相同的概念。
最后一点,有些人可能不同意我的观点,如果你要在 cygwin 和 linux 之间复制文件,我建议你通过编辑禁用 ACL/etc/fstab
。