php vc14就是指该版本php是用visual studio 2015编译的,也就是说当用户下载vc14版本的php,就需要先安装“visualc++redistributableforvisualstudio2015”。
推荐:《php视频教程》
php vc14,vc11,vc9以及thread safe和non thread safe
现在php官网上下载php安装包都有vc14,vc11或vc9的字样,另外区分thread safe和non thread safe,那么这些字符是什么含义,我们应该下载哪种安装包更好呢?其实php官网给出了答案,下边就为大家介绍一下!
php vc14,vc11,vc9以及thread safe和non thread safe什么意思
php版本中的vc6/9/11/14是什么意思?
vc6版本是使用visual studio 6编译器编译的,如果你的php是用apache来架设的,那你就选择vc6版本。(现在php已经没有vc6了)。
vc9意思就是该版本php是用visualstudio2008编译的,而vc11则是用visualstudio2012编译的,很明显的vc14就是visual studio 2015 编译的。这意味着
如果你下载的是vc9版本的,就需要先安visualc++redistributableforvisualstudio2008sp1,
如果你下载的是vc11版本的,就需要先安visualc++redistributableforvisualstudio2012.
如果你下载的是vc14版本的,就需要先安visualc++redistributableforvisualstudio2015.
搭建php首先看操作系统的版本,如果是windows的,则官网下地址
操作系统是32位还是64位?如果是32位的,就选择带“x86”的版本,如果是64位的,就选择带“x64”的版本。然后看web服务器是什么?如果是iis系列,就选择带“non thread safe”的版本,如果是apache httpd系列,就选择带“thread safe”的版本。如果是apache httpd还要看这个二进制版本是怎么编译的,有三种编译类型,分别是:vc6、vc9、vc11(分别代表visual c++ 6、visual c++ 2008、visual c++ 2012)。这里就有麻烦了:php官方的最新版本5.5已经用vc11编译,5.4是用vc9编译的。可是apache httpd的最新版本呢,至今还是用vc6编译。这意味着一个惊人的事实:apache httpd的官方版本和php的官方版本竟然是无法兼容的!那现有的windows下的apache+php是怎么搞的呢?可以自己用vc11编译apache httpd,但这太折腾了,php官方建议下载第三方打包好的apache httpd版本,推荐了这个站点:http://www.apachelounge.com/download/,需要说明一点:这个vc11不支持xp,如果你像我一样有xp怀旧症,最高只能升级到5.4.24,5.5是用vc11编译的,而vc11不支持xp和2003。
如果是linux系的在这里下载php的源码
与上面windows版不同的是,这里下载到的不能直接用,只是php的源码,要安装需要自己编译,要编译就需要安装gcc、make等一堆编译软件。看到文档里说./configure、make、make install,针对的就是php的源码版本而言。
自己编译php就更麻烦了,依赖的库一大堆,等着人掉进去的坑也有一大堆,我将在另一篇文章里说。如果嫌麻烦,可以找已经编译好的版本,具体的说就是各个发行版的官方的软件库。下面以流行的ubuntu系和centos系为例分别说明;
deb包管理式(ubuntu、debian)
用apt-cache search php命令可以搜出很多结果,我们需要是“php5”,完整的命令是:apt-get install php5
这显然不是永远适用的,因为命令中有版本号5,未来php6是什么情况谁也不知道。
如果想在shell中安装一个命令行的php引擎,就安装这个包
apt-getinstall php5-cli
rpm包管理(fedora、redhat、suse、centos)
yuminstall php
如果是php命令行,就安装yuminstall php-cli
如何选择thread safe和non threadsafe版本?
windows版的php从版本5.2.1开始有threadsafe(线程安全)和none thread safe(nts,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。
从2000年10月20日发布的第一个windows版的php3.0.17开始的都是线程安全的版本,这是由于与linux/unix系统是采用多进程的工作方式不同的是windows系统是采用多线程的工作方式。如果在iis下以cgi方式运行php会非常慢,这是由于cgi模式是建立在多进程的基础之上的,而非多线程。一般我们会把php配置成以isapi的方式来运行,isapi是多线程的方式,这样就快多了。但存在一个问题,很多常用的php扩展是以linux/unix的多进程思想来开发的,这些扩展在isapi的方式运行时就会出错搞垮iis。因此在iis下cgi模式才是 php运行的最安全方式,但cgi模式对于每个http请求都需要重新加载和卸载整个php环境,其消耗是巨大的。
为了兼顾iis下php的效率和安全,微软给出了fastcgi的解决方案。fastcgi可以让php的进程重复利用而不是每一个新的请求就重开一个进程。同时fastcgi也可以允许几个进程同时执行。这样既解决了cgi进程模式消耗太大的问题,又利用上了cgi进程模式不存在线程安全问题的优势。
先从字面意思上理解,thread safe是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的cgi执行方式而耗尽系统资源。non thread safe是非线程安全,在执行时不进行线程(thread)安全检查。
因此,如果是使用isapi的方式来运行php就必须用threadsafe(线程安全)的版本;而用fastcgi模式运行php的话就没有必要用线程安全检查了,用none thread safe(nts,非线程安全)的版本能够更好的提高效率。
再来看php的两种执行方式:isapi和fastcgi。
isapi执行方式是以dll动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以isapi来执行php,建议选择thread safe版本;
而fastcgi执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以fastcgi来执行php,建议选择non thread safe版本。
以上就是php vc14什么意思的详细内容。