在win和linux下开发PHP的区别、感受、内心想法。望点评
我以前一直以来都是在win下面写php代码,然后放到linux下去运行(开发环境wampp,运行环境lamp/lnmp),但是很多次看到招聘信息招聘PHP程序员的时候都说到能在linux开发PHP,然后我自己最近也硬着头皮转到linux(centos)下开发PHP。
说一下深刻的体会、感受,希望大家能够评价一下。by default7#zbphp.com
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的,然后我说出了我自己不是在linux下开发PHP,而是在win下面开发,对方听完之后立即说我是一个非常初级的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似乎很要求团队协同,招聘JAVA C++不可能像招聘PHP那样只招一个,而且美工方面参与的比较少或者来说可能没有不存在美工设计人员的参与,因为软件方面对界面没有什么要求,要求的是运行和业务逻辑。但是做网站,大部分都是做文章内容方面,CMS足以满足,然后静态化生成,程序方面的要求是次要的,美工方面的参与非常多,这样的话,根本就不能像C++ JAVA那些语言那样独立出来开发,必须更美工很强烈的配合(因为大部分公司美工不懂HTML CSS JS)。而且做网站php程序员,其实你还是要用到PS、DW切图这些软件,而这些软件linux根本就不支持。所以我一直非常纠结这个问题,一方面实际需要中PHP根本就不像C++ JAVA那些程序那样有什么团队之类的,大部分公司都是最多只有一个PHP程序员。另外一方面很多地方又说PHP必须在linux下开发,可我自己实际几次转到linux下开发PHP觉得真的很麻烦,不方便,不灵活。
写了这些希望能够得到大家的点评、看法、见解。(by default7#zbphp.com)

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Export password-protected PDF in Photoshop: Open the image file. Click "File"> "Export"> "Export as PDF". Set the "Security" option and enter the same password twice. Click "Export" to generate a PDF file.

C language functions are reusable code blocks. They receive input, perform operations, and return results, which modularly improves reusability and reduces complexity. The internal mechanism of the function includes parameter passing, function execution, and return values. The entire process involves optimization such as function inline. A good function is written following the principle of single responsibility, small number of parameters, naming specifications, and error handling. Pointers combined with functions can achieve more powerful functions, such as modifying external variable values. Function pointers pass functions as parameters or store addresses, and are used to implement dynamic calls to functions. Understanding function features and techniques is the key to writing efficient, maintainable, and easy to understand C programs.

H5. The main difference between mini programs and APP is: technical architecture: H5 is based on web technology, and mini programs and APP are independent applications. Experience and functions: H5 is light and easy to use, with limited functions; mini programs are lightweight and have good interactiveness; APPs are powerful and have smooth experience. Compatibility: H5 is cross-platform compatible, applets and APPs are restricted by the platform. Development cost: H5 has low development cost, medium mini programs, and highest APP. Applicable scenarios: H5 is suitable for information display, applets are suitable for lightweight applications, and APPs are suitable for complex functions.

The necessity of registering VueRouter in the index.js file under the router folder When developing Vue applications, you often encounter problems with routing configuration. Special...

Although C and C# have similarities, they are completely different: C is a process-oriented, manual memory management, and platform-dependent language used for system programming; C# is an object-oriented, garbage collection, and platform-independent language used for desktop, web application and game development.

Detailed explanation of XPath search method under DOM nodes In JavaScript, we often need to find specific nodes from the DOM tree based on XPath expressions. If you need to...

There are differences in the promotion methods of H5 and mini programs: platform dependence: H5 depends on the browser, and mini programs rely on specific platforms (such as WeChat). User experience: The H5 experience is poor, and the mini program provides a smooth experience similar to native applications. Communication method: H5 is spread through links, and mini programs are shared or searched through the platform. H5 promotion methods: social sharing, email marketing, QR code, SEO, paid advertising. Mini program promotion methods: platform promotion, social sharing, offline promotion, ASO, cooperation with other platforms.

The C language function library is a toolbox containing various functions, which are organized in different library files. Adding a library requires specifying it through the compiler's command line options, for example, the GCC compiler uses the -l option followed by the abbreviation of the library name. If the library file is not under the default search path, you need to use the -L option to specify the library file path. Library can be divided into static libraries and dynamic libraries. Static libraries are directly linked to the program at compile time, while dynamic libraries are loaded at runtime.
