在成为疏远的开源之后,花了几年时间在ASP.Net中开发Web应用程序,我将开始做很多PHP / MySQL开发。
我已经非常轻松地安装WampServer以在我的Windows机器上启动并运行开发环境,但我将定位的平台很可能是Linux。所以我的问题是,我是否可能因针对Linux而在Windows上进行开发而遇到问题?是否可以投资购买Linux环境以开发我的LAMP应用程序?
答案 0 :(得分:15)
如果你能投资某种linux,或至少* nix,开发环境。对于简单的应用程序和网站,您的设置很好,但在部署时最终会遇到细微差别。
如果你坚持使用Windows环境,这里有一些我想要注意的事情。
文件路径。许多PHP函数将文件路径作为参数。不要使用windows反斜杠()分隔符。即使你在Windows上,PHP也会让你使用正斜杠分隔符。理想情况下,使用您自己的文件路径类抽象出来。
Apache模块,PECL扩展。 Apache Windows和Apache Unix通常默认安装一组不同的Apace模块。此外,相同版本的模块可能在不同平台上以不同方式运行。如果您的应用程序依赖于任何 apache模块,请确保它适用于两个平台。 PHP自定义扩展(PECL)
处理分叉。在Web应用程序中使用exec,`等是一个坏主意,但如果你使用这些函数,它们在windows和* nix之间的行为会有所不同
文件写作,锁定等工作原理不同
电子邮件在两个平台上的处理方式不同
PHP组的Windows代码字是“某些平台”。如果您愿意,可以研究更多on your own
通常,您的开发环境越接近生产环境,您所拥有的环境/部署相关问题就越少。
希望有所帮助!
答案 1 :(得分:13)
我在过去几年里一直在这样做,并且还没有遇到任何问题 - 如果有的话,它可以强迫你编写更多的可移植代码。
答案 2 :(得分:2)
权限以及Windows文件名不区分大小写的事实是我能想到的两件令我痛苦的事情。但他们是
答案 3 :(得分:1)
不,在wamp上开发并在灯上运行应该没问题,但至少在灯上工作。我已经走了两路没有太多问题(好吧,曾经有一些问题在WAMP上部署企业站点(不要尝试使用PHP ISAPI过滤器),但它们现在可以解决(fastcgi))。只要您不添加任何表明Windows不支持的PECL模块,您就不会有任何问题。另外(因为你说你正在使用WAMP我假设你使用的是MySql),mssql和PHP有很多问题(它需要的古老驱动程序严重限制了查询的长度)。
答案 4 :(得分:1)
理论上,PHP和MySQL应该完全独立于平台。
在实践中,如果你想要一个真正的生产应用程序,我建议你有一个镜像生产应用程序的测试环境,以避免意外。
答案 5 :(得分:1)
是的,我建议在尽可能靠近生产环境的环境中进行开发。与Linux相比,PHP在Windows上的工作方式有所不同。还有其他差异,比如Linux与Windows相比如何处理文件权限。我使用Linux虚拟机运行免费的VMWare服务器。我在Linux VM上有一个Samba共享,我在Windows中作为网络驱动器安装。然后我在Windows上使用Eclipse作为我的代码编辑器。
答案 6 :(得分:0)
答案 7 :(得分:0)
值得拥有一个LAMP沙箱,这样你就可以知道在哪里找到 - 以及如何编辑 - 配置文件,熟悉重启服务,处理预定的工作等等,如果你将不得不处理这些任务生产
答案 8 :(得分:0)
没有。
如果您在一个周末免费使用大约6-8小时,以清除所有VBox基础知识并完成设置,则VirtualBox +共享文件夹应该非常有用。
如果您要切换到Linux,这个过程可能需要一个月的时间,在生产代码方面,您将高度非生产性。
在切换之前,使用[PCLinuxOS,CentOS,OpenSuse,Ubuntu]中的一个,提前在VBox for Windows上练习Linux是一个好主意。我更喜欢CentOS,PCLinuxOS。
有一个叫做SLAMPP的宝石,另一个名叫XAMPP<的美女可以在Linux和Windows上运行
IMO,作为一个粗略的猜测,如果你希望为每个项目编写2000-3000行代码(你编写/添加),对于6mo-1yr,使用VBox同时坚持使用Windows和掌握Linux。
如果超过这个,或者你计划建立一个很酷的新LAMP网站,我认为你应该首先切换到Linux。多花一个月时间习惯Linux。您可以随时使用双启动或VBox进行随机播放,尽可能早地启动 - 学习Linux足以调试LAMP应用程序确实需要时间。