【问题标题】:Is it dumb to develop for LAMP on WAMP?在 WAMP 上为 LAMP 开发是愚蠢的吗?
【发布时间】:2010-09-18 15:49:09
【问题描述】:

在变得有点疏远开源之后,在ASP.NET 花了几年时间开发 Web 应用程序后,我将开始做大量的 PHP / MySQL 开发。

我已经非常轻松地安装了WampServer 以在我的 Windows 机器上启动并运行开发环境,但我的目标平台很可能是 Linux。我是否可能会因为在 Windows 上开发而以 Linux 为目标而遇到问题?是否建议投资设置一个 Linux 环境来开发我的 LAMP 应用程序?

【问题讨论】:

  • 嗯,VirtualBox + TurnKey LAMP 设备的设置很简单。

标签: lamp wamp


【解决方案1】:

路径,当心路径。你可以构建一个完整的CMS,它会因为路径而混乱。

【讨论】:

    【解决方案2】:

    没有。
    如果您在一个周末有大约 6-8 小时的空闲时间来了解所有 VirtualBox 基础知识并解决设置问题,那么 VirtualBox + 共享文件夹应该会很有用。

    如果您要切换到 Linux,则该过程可能需要长达一个月的时间,而您将在这段时间内高度在生产代码方面效率低下。

    最好在切换之前使用PCLinuxOSCentOSopenSUSEUbuntu 之一提前在适用于Windows 的VirtualBox 上继续练习Linux。我更喜欢 CentOS 和 PCLinuxOS。

    有一个叫做 SLAMPP 的 gem 和另一个叫做 XAMPP 的美女

    IMO,粗略估计一下,如果您希望在每个项目中编写 2000-3000 行代码(您编写/添加的代码),持续 6 个月到 1 年,请在使用 VirtualBox 的同时坚持使用 Windows 并掌握 Linux。

    如果高于此,或者如果您打算创建一个很酷的新 LAMP 网站,我认为您应该先切换到 Linux。再花一个月时间来适应 Linux。您仍然可以随心所欲地使用双启动或 VirtualBox,尽早开始 - 学习 Linux 足以调试 LAMP 应用程序确实需要时间。

    【讨论】:

      【解决方案3】:

      拥有一个 LAMP 沙箱是值得的,这样您就可以知道在哪里找到 - 以及如何编辑 - 配置文件,熟悉重新启动服务、处理计划作业等,如果您将不得不处理这些任务正在生产中。

      【讨论】:

        【解决方案4】:

        权限和在 Windows 上文件名不区分大小写的事实是我能想到的两件事,这让我很痛苦。但他们是

        1. 可解决,最坏的情况是使用 FTP 客户端更改权限。
        2. 让你成为更好的程序员的好方法,简单的方法(是的)。

        【讨论】:

          【解决方案5】:

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

          与 Linux 相比,PHP 在 Windows 上的工作方式存在差异。与 Windows 相比,Linux 处理文件权限的方式还有其他差异。我使用 Linux 虚拟机运行免费的VMware 服务器。

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

          【讨论】:

            【解决方案6】:

            不,在 WAMP 上开发并在 LAMP 上运行应该没问题,但至少在 LAMP 上阶段。

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

            只要您没有添加任何声明它们在 Windows 上不受支持的 PECL 模块,您就不会有任何问题。另外(由于您说您使用的是 WAMP,我假设您使用的是 MySQL),SQL Server 和 PHP 有很多问题(它需要的古老驱动程序严重限制了查询的长度)。

            【讨论】:

              【解决方案7】:

              如果可以的话,我会投资某种 Linux 或至少 *nix 开发环境。对于简单的应用程序和网站,您的设置很好,但您最终会在部署时遇到细微差别。

              如果您坚持使用 Windows 环境,以下是我想不到的一些事情。

              1. 文件路径。许多 PHP 函数将文件路径作为参数。 不要使用 Windows 反斜杠 (\) 分隔符。即使您在 Windows 上,PHP 也会让您使用正斜杠分隔符。理想情况下,使用您自己的文件路径类将其抽象出来。

              2. Apache 模块,PECL 扩展。默认情况下,Apache Windows 和 Apache Unix 通常附带一组不同的 Apache 模块。此外,相同版本的模块可能在不同平台上以不同方式运行。如果您的应用程序依赖于 any Apache 模块,请确保它可用于两个平台。 PHP 自定义扩展 (PECL) 也是如此。

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

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

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

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

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

              【讨论】:

              • 对于您提到的几乎所有问题,都有可移植的解决方法。
              • 您知道时间戳是否存在差异/问题?例如strtotime() 函数是否仍会提供正确的 unix 时间戳?
              【解决方案8】:

              不,因为如果你以 LAMP 为目标,你在 WAMP 上唯一不能做的事情就是使用 System()/Exec 调用,通常这是一件好事,因为那些应该很少使用。

              【讨论】:

                【解决方案9】:

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

                在实践中,如果您要拥有一个真正的生产应用程序,我建议您拥有一个与生产环境镜像的测试环境,以避免意外。

                【讨论】:

                  【解决方案10】:

                  过去几年我一直在这样做,还没有遇到任何问题 - 如果有的话,它通过强迫你编写更多可移植代码给你带来优势。

                  【讨论】:

                  • 是的。请在 WAMP 上开发并在 LAMP 上部署,我们的做法正好相反,虽然过渡很痛苦,但我们因此过得更好。我可以在需要时对生产环境进行热交换以进行测试,而无需担心底层平台。
                  • 请注意文件权限并记住 Windows 不区分大小写,而 Linux 则不区分大小写。不知道这一点可能会导致一些讨厌的错误。
                  猜你喜欢
                  • 2011-06-09
                  • 1970-01-01
                  • 2011-01-27
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-11-26
                  相关资源
                  最近更新 更多