5

几个月后,我开始了一个 PHP 项目,但我犹豫是否像往常一样:在我的 Windows Vista 64 位机器上开发。由于我对 Linux 知之甚少,我认为通过在 Linux 发行版上工作可能是一种学习的好方法。

你认为这是个好主意吗?我会在 Ubuntu 上运行VirtualBox(在我的 Vista64 位上)。我正在考虑安装XAMPP以便能够在 PHP 中进行开发。

如果您认为这是一个好主意,请随时向我推荐一些关于虚拟化操作系统或 Linux/dev 应该知道的教程。

更新 我已经在 Windows 中用 PHP 构建了许多网站,问题更多是关于通过虚拟机在其上进行开发来开始学习 Linux 是否是一种好方法?我有 4 个 gigs ram,如果我在虚拟机中安装 Eclipse 会顺利吗?等等

4

13 回答 13

5

PHP在任何平台上都应该是相同的——所以你在哪里开发并不重要。

但是,根据我的经验和观察,在 Linux 上运行 PHP 的站点比在 Windows 上运行的站点多。

在 Ubuntu 或 Fedora 上安装 Apache 和 PHP 很简单,测试一切也很简单。

此外,当您的网站上线时,它将在什么平台上运行?我更喜欢尽可能在它将运行的平台上进行开发。

于 2008-10-06T17:58:39.770 回答
5

您应该真正在要部署的同一平台上进行开发。我并不是说采取不同的做法是不好的,但从长远来看,它可以为您节省一些痛苦。OTOH,您可以通过这种方式更快地了解平台差异。所以,主要问题是:您是否希望生产系统尽快运行而不会让人头疼?或者,您想花一些时间和精力来学习如何开发跨平台的东西?

是的,存在差异。例如,区分大小写和不区分大小写的文件名。然后,一些 PHP 函数使用具有不同实现的本机 C 函数。例如, printf() 不会为某些类型产生相同数量的空白。时间测量的分辨率(毫秒与微秒)可能不同,等等。然后,您有不同的文件系统权限处理方式。这些只是我最近发现的一些问题,我可以记住。

于 2008-10-06T19:59:53.600 回答
3

就个人而言,我认为对于本地生产,您不应该使用 VM。你也会在 VM 中运行你的 IDE 吗?

如果您足够了解在 Windows 和 Linux 环境之间移动的陷阱(例如区分大小写和权限),那么在 Windows 上开发和在 Linux 上部署应该没有问题。

于 2008-10-06T17:58:41.940 回答
3

在 Linux 发行版上工作无疑是学习它的最简单方法。设置一些服务器并进行一些开发工作是一个很好的开始。

虚拟化 Linux 也很容易。我已经做了很多次了,这真的很糟糕。此外,这样做会让您更轻松地使用 Linux,这比像我一样跳进去发现您的无线网卡不受支持要好得多 :)

至于 Linux 上的 PHP 开发……我已经在 Windows 和 Linux 上进行了一些 PHP 编码,我可以告诉你两者之间几乎没有区别。我在两个平台和 Apache &MySQL / XAMPP 上都使用 Eclipse。我看到的唯一主要区别是 Linux 对权限和大小写更加挑剔。

于 2008-10-06T18:00:44.493 回答
2

PHP在所有平台上都不相同,直到最近 Windows 版本还存在 Linux 版本中没有的问题。许多有用的特性是 *nix 特有的。

我会回应@Milan 关于在部署环境中进行开发的观点。通过这样做,您也可以了解更多关于部署环境的信息。

在虚拟机问题上,如果您想要所有的 Windows 工具和 Windows 机器,请在您的虚拟机中设置一个 linux服务器(如果需要,可以有一个 GUI,但您主要将其用作服务器)。设置它,以便 windows 可以查看在您的 VM 中运行的 apache 安装,并且您使用 samba 共享访问 vm 的文件,就像 windows 中的驱动器一样。这样,您在 Windows 中开发,但正在运行的 linux 服务器上测试部署/设置。虽然我店里的两个开发人员运行 Ubuntu,但第三个需要一直使用 Photoshop 和其他各种 Windows 软件,所以她使用这种在 VM 中运行服务器但从 Windows 开发的方法。

哦,如果您在 Linux 上运行,请不要使用 XAMPP!一些简单的命令将使您启动并运行,您将更好地了解您的部署。XAMPP 很好,但它适用于没有 Linux 包管理的操作系统。

于 2008-10-06T21:10:23.723 回答
1

虽然XAMPP工作得很好,但在 Linux 上运行 Apache 和 PHP 是给定的;而在 Windows 上,这是你必须做的额外的事情......和支持。此外,堆栈的大部分部分都针对 POSIX 环境进行了优化和成熟。数据库引擎的性能对可用的原语特别敏感。

大多数 OSS 都在 windows 上运行,但它是一个在方孔上敲击的圆钉。

于 2008-10-06T18:03:53.770 回答
1

原则上,我建议不要在实际项目中“边做边学”——除非它真的很小,或者你以前做过非常相似的项目,这样项目相关问题的学习曲线就不会很陡峭。在这种情况下,您可能有免费的资源来了解开发环境。

于 2008-10-06T18:15:28.100 回答
1

一般来说,我比 Windows 更喜欢 Linux 环境。主要是因为提供了您需要的所有 CLI 工具,并且 Bash 可以随时击败 cmd.ext。但是对于 Cygwin,我甚至发现 Windows 也是一个舒适的开发环境。

关于 PHP 开发,我真的看不出它会有什么不同。如果您使用展位系统,那么被迫使代码更具可移植性(例如行尾、文件名中的正斜杠等)可能会有一些好处。

作为台式机或工作站,两者之间没有太大区别。我发现最大的不同在于你如何管理它们,但希望你有其他人为你做这件事。

于 2008-10-06T19:20:40.247 回答
0

在我看来,您不需要在 linux 发行版中进行开发。可以从任何操作系统完成 Web 开发。我不知道,你为什么要为网络编程……作为专业人士?为您的个人主页?我认为,获得一些运行 PHP 服务器的免费网络空间并在那里上传您的文件就足够了……这不会花费您太多时间,而且需要管理的事情也更少。

一个德国学生;)

于 2008-10-06T18:03:24.520 回答
0

使用您的部署服务器将运行的操作系统,它很可能是 linux。我最近看到一个部署非常糟糕,因为它是使用 wampserver 开发并部署在 CentOS 上的。Apache 和 PHP 配置的主要区别。因此,了解您的部署服务器并尽可能匹配它。

于 2008-10-06T18:11:11.057 回答
0

尝试使用 VmWare Player 创建开发环境。我有几个在我的 Vista 笔记本电脑上运行的 Linux 环境。你也可以只是双启动。我用的是 Ubuntu,很简单。

于 2008-10-08T06:07:08.757 回答
0

在虚拟机内部开发的副作用:更多的开销,最终需要额外的工具来使开发更舒适。人们通常需要特殊的工具来进行开发,例如 Photoshop 或一些 Linux 上不可用的矢量设计工具。如果项目的工作副本位于 VM 内部,那么可以轻松访问它是有意义的。因此,您将设置 SAMBA(这通常会导致从 XP 登录时出现问题)或设置 SSL(SFTP)/FTP。此外,您还必须学习如何将网络与 VM 一起使用(NAT、桥接、端口转发)。

另一方面,在另一个平台上开发作为目标可能会让人有些头疼。我发现自己经常与用于密码保护的 .htaccess 文件混淆,因为 Windows/Linux 上的路径不同。如果您稍后忘记在生产服务器上更改此条目,那么您有问题...

更好的解决方案:使用两全其美。一个最终在 Ubuntu/Debian/FreeBSD 上无头运行的虚拟机(没有 gui,更像是一个“远程服务器”),并且只运行所需的服务器(Apache、MySQL、FTP、SSH ......)。

Eclipse 或 Windows/Mac 上的其他开发工具。

于 2009-03-02T16:04:02.107 回答
0

5年后:我的意见是使用Linux解决方案。在 Linux 中使用 PHP 有很多优点。主要原因是社区提供的帮助水平。PHP 似乎也针对 Linux 环境进行了优化。

由于绝大多数站点都使用 LAMP 解决方案托管和运行,因此数量上也很安全。有很多框架和 CMS 可以在带有 Apache2 的 Linux 上运行得最好。

让您的生活更轻松,立即开始学习 PHP。

于 2013-04-22T04:38:59.673 回答