在几个月内,我开始用PHP开发一个项目,我犹豫不决,像往常一样:在我的Windows Vista 64bits机器上开发。由于我对Linux知之甚少,我认为通过Linux发行版学习它是一种很好的学习方式。
你认为这是一个好主意吗?我会用Ubuntu运行VirtualBox(在我的Vista64bits上)。我正在考虑安装XAMPP以便能够用PHP开发。
如果您认为这是一个好主意,请随时向我推荐一些有关虚拟化操作系统或Linux / dev应该了解的内容的教程。
更新 我用PHP构建了很多用PHP构建的网站,问题更多的是如果通过虚拟机开发它是否是开始学习Linux的好方法?我有4个演出公羊,如果我在虚拟机中安装Eclipse,它会顺利吗?等
答案 0 :(得分:5)
PHP 应该在任何平台上都是相同的 - 所以 你开发的地方应该无关紧要。
然而,根据我的经验和观察,运行PHP的更多站点在Linux上运行而不是Windows。
在Ubuntu或Fedora之类的东西上获取Apache和PHP设置很简单,测试一切也很简单。
此外,当您使用自己的网站时,它将运行哪个平台?我更愿意在可能的平台上进行开发。
答案 1 :(得分:5)
您应该在要部署的同一平台上进行开发。我不是说以不同的方式做坏事,但从长远来看它可以为你节省一些痛苦。 OTOH,您可以通过这种方式更快地了解平台差异。因此,主要问题是:您是否希望尽快运行生产系统而不会头疼?或者,您想花一些时间并努力学习如何开发跨平台的东西?
是的,有差异。例如,区分大小写和大小写不敏感的文件名。然后,一些PHP函数使用具有不同实现的本机C函数。例如,对于某些类型,printf()不会产生相同数量的空白。时间测量的分辨率(毫秒与微秒)可能不同,等等。然后,您可以通过不同的方式处理文件系统权限。这些只是我最近发现的一些问题,我记得很清楚。
答案 2 :(得分:3)
就个人而言,我认为对于本地制作而言,您应该使用VM。您是否也在VM中运行IDE?
如果您意识到在Windows和Linux环境之间移动的足够陷阱(例如区分大小写和权限),那么在Windows上开发和在Linux上进行部署应该没有问题。
答案 3 :(得分:3)
在Linux发行版上工作绝对是学习它的最简单方法。设置一些服务器并开展一些开发工作是一个很好的开始。
虚拟化Linux也非常简单。我做了很多次,这真的很棒。此外,通过这种方式可以让您更轻松地使用Linux,这比仅仅进入并发现您的无线网卡不像我所做的那样好得多:)
关于Linux上的PHP开发......我已经在Windows和Linux上完成了一些PHP编码,我可以告诉你两者之间的差别很小。我在两个平台和Apache& MySQL / XAMPP上都使用Eclipse。我见过的唯一主要区别是Linux对权限和案例更加挑剔。
答案 4 :(得分:2)
PHP在所有平台上不相同,直到最近,Windows版本才出现Linux版本中没有的问题。许多有用的功能都是* nix特定的。
我会回应@ Milan关于在部署环境中进行开发的观点。通过这样做,您还可以了解有关部署环境的更多信息。
在VM问题上,如果您需要所有Windows工具和Windows机器,请在VM中设置linux 服务器(如果需要可以使用GUI,但是您将主要使用用它作为服务器)。设置它以便Windows可以查看在VM中运行的apache安装,并使用samba共享来访问vm的文件,如Windows中的驱动器。这样,您在Windows中开发,但正在运行的Linux服务器上测试部署/设置。虽然我店里的两个开发人员都在运行Ubuntu,但是第三个需要一直使用Photoshop和其他各种Windows软件,所以她使用这种方法在VM中运行服务器但是从windows开发。
哦,如果您在Linux上运行,请不要使用XAMPP!一些简单的命令将帮助您启动并运行,您将更好地了解部署。 XAMPP很好,但它适用于没有Linux软件包管理的操作系统。
答案 5 :(得分:1)
虽然XAMPP运行良好,但在Linux上运行Apache和PHP是一个给定的;在Windows上,这是你需要做的额外的事情......和支持。此外,对于POSIX环境,堆栈的大多数部分都更加优化和成熟。数据库引擎的性能对可用的原语特别敏感。
大多数OSS在Windows上运行,但它是一个方孔上的圆形钉。
答案 6 :(得分:1)
原则上,我建议不要在实际项目中“边做边学” - 除非它真的很小,或者之前你做过非常类似的项目,所以项目相关问题的学习曲线不会太陡峭。在这种情况下,您可以免费获得有关发展环境的资源。
答案 7 :(得分:1)
一般来说,我比Linux更喜欢Linux环境。主要是因为提供了所需的所有CLI工具,并且随时都会使用Bash击败cmd.ext。但是对于Cygwin,我发现即使是Windows也是一个舒适的开发环境。
关于PHP开发,我真的不知道它会有多大的不同。如果您使用booth系统,可能会被迫使代码更具可移植性(如行结尾,文件名中的正斜杠等)。
作为台式机或工作站,两者之间没有太大区别。我发现最大的不同在于你如何管理它们,但希望你有其他人为你做这件事。
答案 8 :(得分:0)
在我看来,你不需要在Linux发行版中开发。 Web开发可以从任何操作系统完成。我不知道,你为什么要为网络编程......作为一名专业人士?为您的个人主页? 我认为,这足以让一些免费的网站空间运行PHP服务器并在那里上传你的文件......它不会花费你太多时间,而且管理的东西也很少。
德国学生;)
答案 9 :(得分:0)
使用您的部署服务器将运行的操作系统,很可能是Linux。我最近看到一个部署变得非常糟糕,因为它是使用wampserver开发并部署在CentOS上的。在apache和PHP配置方面存在重大差异。因此,请了解您的部署服务器并尽可能地匹配它。
答案 10 :(得分:0)
尝试使用VmWare Player创建开发环境。我在Vista笔记本电脑上运行了几个Linux环境。你也可以双启动。我使用Ubuntu,很容易。
答案 11 :(得分:0)
在VM内部开发的副作用:更多开销,最终需要额外的工具来使开发更加舒适。 通常人们需要特殊的工具来开发像Photoshop或Linux上没有的矢量设计工具。如果项目的工作副本位于VM内部,则可以轻松访问它。因此,您将设置SAMBA(这通常会导致从XP登录时出现问题)或设置SSL(SFTP)/ FTP。 此外,您还必须学习如何使用VM进行网络连接(NAT,桥接,端口转发)。
另一方面,在另一个平台上开发作为目标可能会让人头疼。我发现自己经常与.htaccess文件混淆密码保护,因为Windows / Linux上的路径不同。如果您以后忘记在生产服务器上更改此条目,则表示您遇到问题...
更好的解决方案:充分利用两全其美。 一个VM最终运行后无头(没有gui,更像是“远程服务器”)与Ubuntu / Debian / FreeBSD)并且只运行所需的服务器(Apache,MySQL,FTP,SSH ......)。
Eclipse或Windows / Mac上的其他开发工具。
答案 12 :(得分:0)
5年后:我的意见是使用Linux解决方案。在Linux中使用PHP有很多优点。主要原因是社区提供的帮助水平。 PHP似乎也针对Linux环境进行了优化。
由于LAMP解决方案托管并运行了大量网站,因此数量也很安全。有很多框架和CMS'在Linux上使用Apache2运行得最好。
让您的生活更轻松,并立即开始学习PHP。