这是我的情况...
我正在开发 3 个小型网站(一个是家庭成员的摄影展示网站,一个是博客,一个是我正在开发的自定义 CMS,目的是获得 PHP 经验)
我现在正在使用 Dreamweaver 编写所有 3 个站点的代码,并将文件直接上传到(远程、CentOS)生产服务器。没有开发服务器。
随着我的 CMS 变得越来越复杂,我意识到 Dreamweaver 无法胜任调试工作。使用 IDE 可能会让我的编码工作变得容易得多。我下载了 netbeans PHP 并开始试用其 XDEBUG 功能。我在远程服务器上安装了 XDEBUG,并对其进行了配置,以便它连接到我的计算机。现在,我担心的是,如果在生产服务器上打开并运行 XDEBUG,它会降低性能并使其更容易受到攻击。
我正在同一个家庭网络中的 Windows 7 机器上开发所有内容(它是自托管的)。我原本计划在我的 Windows 机器上安装 XAMPP,但我意识到在不同操作系统上安装开发服务器并不能真正帮助我找到和调试所有问题。
对于我这个 15 岁的网络专家来说,是继续使用带有 XDEBUG 的生产服务器,使用我的 Windows 本地主机调试并将工作项目上传到生产服务器,还是在我的 Windows 计算机上使用虚拟主机(通过 VMware、VirtualBox 等)并通过它设置 CentOS 更好。(如果这是解决方案,我该如何来回传输文件。我必须使用 Linux 的 netbeans 吗?如果这是答案,我该怎么做?)
答案1
我同意沃德的观点——你的问题太多了。
就主要观点而言,是的,您最好继续设置单独的开发主机。有几个原因。首先,正如您所建议的,它允许您运行更受约束的生产服务器,以获得更好的安全性和性能。在生产服务器上运行 XDEBUG 是一种不好的做法,如果您的开发服务器镜像生产,您就永远不需要这样做。
二,它允许您在开发服务器上进行测试,因此您在发布更新之前会更有信心。
第三,这是企业的标准做法,因此它能给你带来有用的经验,并向潜在雇主展示你的专业素养。事实上,我工作的政府机构要求使用单独的开发、测试和生产服务器,但在我看来,这对于一家小型开发公司来说有点过分了。
第四,开发服务器是备份生产文件和数据库的自然场所。我的所有生产文件都只是从开发服务器上的版本控制中导出的,因此如果丢失了,很容易重新创建它们。而且我每晚都会将生产数据库备份到开发主机上。
将文件从开发环境推送到生产环境并不是什么大事。您的版本控制系统可以为您完成此操作,通过 ssh 传输(例如,我使用bzr push
)。同样,您也希望简化将数据库从生产环境复制到开发环境的工作。我编写了一个花哨的脚本,基本上只需运行ssh production mysqldump | mysql
。