在WAMP上开发LAMP是否愚蠢?

15

在与开源社区有些疏离感后,并花了几年时间开发 ASP.NET 的Web应用程序之后,我将开始进行大量的PHP / MySQL开发。

我已经相当轻松地安装了 WampServer 以在我的Windows机器上建立开发环境,但是我将要开发的平台最有可能是Linux。由于在Windows上开发而针对Linux,我是否可能会遇到问题? 需要投资建立Linux环境来开发我的LAMP应用程序吗?


嗯,VirtualBox + TurnKey LAMP应用程序非常容易设置。 - Camilo Martin
10个回答

15
如果可以的话,我会投资于Linux或至少是*nix开发环境。对于简单的应用程序和网站,你的设置还不错,但当你进行部署时,你最终会遇到一些微妙的差异。
以下是我能想到的一些事项,如果你坚持使用Windows环境,你需要注意它们。
  1. 文件路径。许多PHP函数将文件路径作为参数。不要使用Windows反斜杠(\)分隔符。即使您在Windows上,PHP也会让您使用正斜杠分隔符。最好使用自己的文件路径类来抽象化。

  2. Apache模块,PECL扩展。Apache Windows和Apache Unix通常默认安装了不同的Apache模块集。此外,同一版本的模块在不同平台上可能运行不同。如果您的应用程序依赖于任何Apache模块,请确保它在两个平台上都可用。对于PHP自定义扩展(PECL),也是如此。

  3. 进程分叉。在Web应用程序中使用exec、`等函数本来就是一个坏主意,但如果您正在使用这些函数,它们在Windows和*nix之间的行为将有所不同。

  4. 文件写入、锁定等操作的工作方式不同

  5. 电子邮件在两个平台上的处理方式不同

  6. PHP组对Windows的代号是“某些平台”。如果您愿意,可以自行研究更多

一般来说,你的开发环境越接近于生产环境,你就会遇到越少的环境/部署相关问题。

几乎你提到的所有问题都有便携式的解决方法。 - Marcos Lara
你知道时间戳是否存在差异或问题吗?例如,strtotime()函数是否仍然会提供正确的Unix时间戳? - LazerSharks

13

我已经做了几年了,还没有遇到任何问题——如果有什么问题,它会通过强制你编写更具可移植性的代码来为你提供优势。


3
是的。请在WAMP上进行开发,并在LAMP上部署,我们正好相反,虽然转换过程很痛苦,但我们因此变得更好。我可以随时在生产环境中热交换环境以进行测试,而不必担心底层平台。 - cfeduke
2
只要小心文件权限,并记住 Windows 不区分大小写,而 Linux 区分大小写。不了解这一点可能会导致一些严重的错误。 - levhita

2

权限和Windows文件名不区分大小写是我遇到的两个问题。但它们都是可以解决的,最坏的情况下可以使用FTP客户端更改权限。

  1. 这些问题都可以解决,最坏的情况下只需使用FTP客户端更改权限。
  2. 这些问题是让你成为更好的程序员的好方法(虽然只是在小方面上)。

1

不,使用WAMP进行开发并在LAMP上运行应该没问题,但至少要在LAMP上进行阶段性测试。

我曾经两种方式都尝试过,没有遇到太多问题(好吧,在WAMP上部署企业站点曾经存在一堆问题(不要尝试使用PHP ISAPI过滤器),但现在这些问题已经可以解决了(FastCGI))。

只要您不添加任何声明不支持Windows的PECL模块,就不应该有任何问题。此外(因为您表示正在使用WAMP,我假设您正在使用MySQL),SQL Server和PHP存在许多问题(它需要古老的驱动程序严重限制了查询长度)。


1
理论上,PHP和MySQL应该是完全独立于平台的。

但实际上,如果你要有一个真正的生产应用程序,我建议你拥有一个测试环境来模拟生产环境,以避免出现意外情况。

1

是的,我建议尽可能在与生产环境相似的环境中进行开发。

PHP在Windows和Linux上的工作方式存在差异。还有其他差异,例如Linux如何处理文件权限与Windows不同。我使用带有Linux虚拟机的免费VMware服务器。

我在Linux虚拟机上有一个Samba共享,我将其作为网络驱动器挂载到Windows上。然后我在Windows上使用Eclipse作为我的代码编辑器。


0

路径,小心路径。你可以构建一个完整的CMS,但由于路径问题而出现混乱。


0

不行,因为如果你的目标是LAMP,那么在WAMP上你几乎不能做的唯一一件事就是使用System() / Exec调用,通常这是一个好事,因为这些东西应该非常少被使用。


0
值得拥有一个 LAMP 沙盒,这样你就可以了解到如何查找和编辑配置文件、熟悉重启服务、处理定时作业等等。如果你将要在生产环境中处理这些任务,那么这些技能都是必不可少的。

0

不。
如果你有一个周末有大约6-8小时的空闲时间来搞清楚所有VirtualBox基础知识和设置,那么VirtualBox +共享文件夹应该是很有用的。

如果你正在转向Linux,这个过程可能需要一个月的时间,而在这段时间内,你在生产代码方面将会非常不高效。

在转换之前,最好提前在Windows上使用PCLinuxOSCentOSopenSUSEUbuntu中的一个练习Linux。我更喜欢CentOS和PCLinuxOS。

有一个叫做SLAMPP的宝石和另一个叫做XAMPP的美丽东西 <-- 可以在Linux和Windows上运行。

我认为,作为一个粗略的估计,如果你期望每个项目编写/添加2000-3000行代码,在六个月到一年的时间内,建议使用Windows并同时掌握VirtualBox上的Linux。

如果超过这个范围,或者如果您计划制作一个很酷的新LAMP网站,我认为您应该先转向Linux。再花一个月的时间适应Linux。您仍然可以使用双重启动或VirtualBox进行操作,尽可能早地开始学习Linux - 学习足够调试LAMP应用程序所需的Linux知识需要时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接