说一下在win和linux下开发PHP的区别、感受、内心想法。望点评

util
  • 3.2k

我以前一直都是在win下面写php代码的,但是很多次看到招聘信息招聘PHP程序员的时候都说到能在linux开发PHP,然后后来我自己也硬着头皮转到linux(centos)下开发PHP。 说一下深刻的体会、感受,希望大家能够评价一下。

1)linux安装开发环境不方便 win下面直接用集成开发包安装非常方便 ampp环境全部都有了。而且可以直接方便的开启扩展,非常方便。 在linux下面必须手动编译,安装apr apr-util pcre apache php libxml2 mysql…… 而且安装好了php,还得配置php.ini my.cnf httpd.conf,而且修改了之后还并不会生效,很奇怪的现象。 php.ini 在/etc/php.ini里面有,但是在/usr/local/php5/lib/php.ini又有一个,而且我开启Apache虚拟目录vhosts,如果把目录放到/home/username/www下面就没有访问权限,但是放到/var/www/下面却又可以访问。

然后我安装drupal,发现又要zlib扩展,我去重新编译PHP。在PHP-5.5.13的ext目录里面有zlib 文件夹,编译的时候--with-zlib,可怎么都没有安装上去。 而且我发现我把所有的PHP的文件包括目录都删除了,重启httpd,居然还是可以打开phpinfo.php,很奇怪。 mysql的配置也不好配置,我在win7下面用wamp,直接修改my.ini就可以搬迁到任意目录,但是在linux里面还有权限方面的,很多。反正在linux下配置lamp环境真的很麻烦,最快也得一个上午,因为编译安装PHP,make test这里有将近1万多项目,make install又非常久。 再加上配置mysql 、Apache(开vhosts)还不一定能够成功,权限问题、目录分配问题。

2)对在win下开发PHP的忧虑 我之所以会一直纠结是不是该去linux开发PHP,主要的几个因素是:第一我有一两次去面试PHP程序员,但是看到对方程序员是在linux下开发PHP的;第二是PHP 5.6.x版本,他们不再发行WIN下面的版本了;第三是我最近在看symfony,但是发现他们是composer安装的,而官网的提示操作都是在linux下面完成的。所以我心里想法就是是不是以后PHP不能在win下面开发了,是不是国外的PHP程序员都是在linux下开发PHP的。

3)在linux下开发网站的缺点、问题 我也仔细想过一些问题,现在这个时代,网站很讲究美观UI体验,做一个网站如果仅仅有PHP程序员真的是不可能完成的,必须和美工设计人员一起配合完成。如果在linux下开发PHP网站,那么美工经常传图片素材过来,那么怎么弄?美工负责的是设计,现在国内的公司做网站美工传递东西图片都是通过QQ的,非常方便,快速。如果转到linux下开发,那会怎么样传递?先从VM的win7中QQ接收再自己从WIN7 的FTP客户端上传到linux的网站目录中,再切换到linux中去使用图片资源?

4)说到最后,我认为的PHP和其他软件程序JAVA C++的本质区别 我做PHP已经有很多年了,一直总是感觉PHP总是被其他软件程序语言,比如JAVA C++所干扰。很武断的认为PHP就应该和C++ JAVA那样,但是我总是一种感觉他们本质区别,C++ JAVA似乎很要求协同,且美工方面参与的比较少或者来说可能没有不存在美工设计人员的参与,因为软件方面对界面没有什么要求,要求的是运行和业务逻辑。但是做网站,大部分都是做文章内容方面,CMS足以满足,然后静态化生成,程序方面的要求是次要的,美工方面的参与非常多,这样的话,根本就不能像C++ JAVA那些语言那样独立出来开发,必须更美工很强烈的配合(因为大部分公司美工不懂HTML CSS JS)。而且做网站php程序员,其实你还是要用到PS、DW切图这些软件,而这些软件linux根本就不支持。所以我一直非常纠结这个问题,一方面实际需要中PHP根本就不像C++ JAVA那些程序那样有什么团队之类的,大部分公司都是最多只有一个PHP程序员。另外一方面很多地方又说PHP必须在linux下开发,可我自己实际几次转到linux下开发PHP觉得真的很麻烦,不方便,不灵活。

写了这些希望能够得到大家的点评、看法、见解。


2015-8-12 补充:

再次回到这个问题,其实现在更倾向于使用 *nix下做开发,而并非 win下做开发。

回复
阅读 26.9k
11 个回答

首先要分清楚“开发时用的操作系统”和“开发环境的操作系统”的区别。前者是你运行IDE,编辑器,查邮件,和团队沟通时使用的操作系统,而后者是你开发过程中运行代码用的操作系统,我的观点是后者一定不能是windows,而前者随意。 两者可以是同一个linux,可以是一台windows或mac,另一台里面的linux虚拟机,也可以是两台物理机器都ok,放弃使用windows作为开发环境是很对的,但这不意味着你就必须得用linux桌面。

另外关于编译的吐槽,如果你开发的系统对php的版本、模块并不特别挑剔的话,几乎所有发行版都有编译好的php二进制包。当然,学会自己编译更好,所谓的“Linux基本功”其实不外乎文件/文本操作和源码编译/安装两大块。比起微软的那套东西,linux下可能你上手装第一台机器要半天,但熟练以后装100台机器也就只要半天。windows你上手可能只要一小时,但装100台机器一周都不一定能搞定,还要给微软缴100份授权,呵呵

我的桌面

我的开发环境!
1. 没有QQ可以让我每天集中注意力的时间更长。
2. linux 下操作会明白更多win下从来没有关注过得原理性的东西
3. 工作区快捷键自由切换 利用好了极大提升效率。
4. 更加自由的外观制定。
........

坑:
和UI设计师配合可以用邮件 不过为了更好跟踪任务可以用 teambition 或 tower 图片直接托进去。
linux IE网页兼容测试,这个是个坑,公司给我提供了一台测试机,也可以用虚拟机。
实在需要QQ 只能web QQ简单交流一下。

慢慢习惯一下,真的习惯了效率很高的, 一口气写上千行代码 不费劲。

  • 1) 有种东西叫做XAMPP..另外有一种东西叫做LAMP一键安装包...我觉得你可能需要这个,以及我真没觉得在Linux下配环境有你说的那么麻烦(当然比Win下的套件麻烦是真的,毕竟是套件啊喂喂!)
  • 2) 这条有几个问题:

    • 不是说不支持Windows了,是说不支持Windows XP了。具体请自行搜索。
    • 给两个链接你的话就不攻自破了:Win下如何安装composer 以及 官方Win安装教程。另外composer最关键的不是系统问题而是网络问题好么!!!!
  • 3) 开发人员在必要情况下通过邮件沟通我觉得是一种基本素养。
  • 4) 两个选择:

    1. 出门左拐找GIMP
    2. 出门右拐找Mac

总结来说就是你能在Linux下开发PHP当然是亮点,证明你对Linux有一定的操作能力。但是你在Windows下开发也没人会说你什么好么,我也没见哪家招聘上写着“5年Linux下PHP开发经验”的。

咳咳,看楼上都说什么多,我来个精简版的。
1. linux下也有大名鼎鼎的lnmp一键环境(lnmp.org)
2. 你说的工具也都有windows版本
3. linux有神器GIMP
4. 大公司PHP不管前端

这个跟vim的学习曲线很像,linux讲究高效,虽然不一定方便(只是在少数情况下),当楼主碰到线上一个由于操作系统引发的bug被搞得焦头烂额的时候,就会发现这绝对是值得的

其实我觉得企业写要求在linux下开发,并不一定是要求你工作的时候在linux下进行,而是能有linux服务器的布置和排错能力。

你要是想成文一个合格的PHP程序员,你就必须熟悉 LANMP|LNMP

LAMP|LNMP下的PHP开发,才是你入门PHP的开始

首先,在 Windows || Linux || Mac 下开发都可以,只要你顺手,与你的团队沟通方便。

其次,大部分情况下你的 PHP 程序要在 Linux 环境下跑,所以你如果不是在 Linux 下进行开发,就要具备上线前测试用的 Linux 环境。

第三,如果 PHP 程序员总是要和美工打交道的话,开发模式、协同模式是有待于改进的,至少 M 和 V 没有分开嘛。

最后,感觉你对 Linux 的使用的了解还处在入门阶段,熟悉了以后没你说的那么多麻烦。

只能说你用使用斧头的方法去使用电锯了。当然这种情况下面电锯是比不上斧头来得有效率的。要想使用电锯能体验上电锯的效率,还是得按照电锯的使用方法来使用。

编程来说,特别是开源,linux绝对有优势的。
可以用virtualbox虚拟机来运行linux,不就可以两个一起用么?

我来说点题外话,我大概在4年前,开始使用ubuntu,在2年前,开始使用mac,
非常重要的一点,就是专心

你知道吗?

宣传栏