乐趣区

windows-apache和php搭配问题

windows 下 apache 和 php 的版本搭配是个常见的问题,这里记录一下自己的选择。如果 windows 下使用 IIS,则忽略此文章。
apache 下载地址:https://www.apachehaus.com/cgi-bin/download.plx
php 下载地址:https://windows.php.net/download/

1.vc

进入下载地址后 apache 和 php 都有 vc9,vc11,vc13vc15 等版本选择,x86 和 x64 就不解释,看自己的操作系统是 32 位还是 64 位进行选择。下面对 vc 进行一下说明:

VC9 => Visual C++ 2008 x86|x64 Redistributable
VC11 => Visual C++ 2012 x86|x64 Redistributable
VC14 => Visual C++ 2013 x86|x64 Redistributable
VC15 => Visual C++ 2015-2019 x86|x64 Redistributable
如果你的操作系统不存在你需要下载对应的 vc 版本需要你另外安装对应的 vc, 建议直接下载操作系统对应的 vc 版本

2.ts 和 nts

ts(Thread-Safety) 即线程安全,多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染 php 以 ISAPI 方式加载的时候选择这个版本.,php 以 ISAPI 方式加载的时候选择这个版本.

nts(None-Thread Safe) 即非线程安全,就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的是 脏数据 php 以 fast cgi 方式运行的时候选择这个版本,具有更好的性能;ISAPI(Internet Server Application Programming Interface), 通常是指被 http 服务器所加载,以服务器的模块形式运行,由微 软提出,故只能在 win 平台上运行,例如 win 下的 apache,iis[据说用 fast cgi 方式工作更稳定],而 linux 上 php 则以 Apache 模块或者 php-fpm 的方式运行。

ts 和 nts 是在 php 的版本中进行选择,因为 apache 的工作模式是线程安全,所以 php 选择的也是 ts 的版本。
另外 apache 在配置 php 是需要使用 php7apache2.4.dll(php5 则是 php5apache2.2.dll), 如果是 nts 版本则没有则这个 dll,因此不要下错了。

3. 版本

apache2.2 的版本最高支持到 php5.4

php5.5 以上只能使用 apache2.4

退出移动版