深入分析windows下配置wamp环境各模块的版本兼容性

本文详细探讨了Windows上配置WAMP环境时各组件(如php、Apache、mod_fcgid、memcache和Zend Guard/Optimizer)的版本兼容性问题。区分TS/NTS、VC编译器版本和位数,以及按照正确顺序安装是关键。Apache常用版本包括2.4.10、2.2.29和2.0,而PHP版本可以从官方网站获取。确保正确配置php.ini和Apache设置,解决配置过程中的错误,对于使用Zend Guard Loader,需注意其仅支持NTS版本的PHP。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本相关概念说明:

  • ts/nts: thread safety 线程安全
    > TS refers to multithread capable builds.
    > NTS refers to single thread only builds.
    > Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a module into a web server.
    > For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).
  • VC6/VC9/VC11:

    • Compiler MSVC6 (Visual C++ 6.0)
    • Compiler MSVC9 (Visual C++ 2008)
    • Compiler MSVC11 (Visual C++ 2012)
  • x86/x64: 机器64位和32位

原创文章,转载请注明: http://www.cnblogs.com/ganiks/

1. 区分好版本,兼容性就明了了

1.1 php常见版本

http://windows.php.net/download/

具体到小版本号:

PHP 5.3 (5.3.29) VC9 ts/nts x86/x64
PHP 5.4 (5.4.32) VC9 ts/nts x86/x64
PHP 5.5 (5.5.16) VC11 ts/nts x86/x64
PHP 5.6 (5.6.0)  VC11 ts/nts x86/x64

1.2 Apache常见版本

http://httpd.apache.org/

  • Version 2.4.10
  • Version 2.2.29
  • Version 2.0

1.3 mod_fcgid常见版本

http://httpd.apache.org/mod_fcgid/

  • Version 2.3.6
  • Version 2.3.9

你的mod_perl处理你的CGI脚本是不是太累?

你是否想要在你服务器进程之外运行你的PHP程序?

那就快试试FastCGI吧。

mod_fcgid是Apache Http服务器的一个 FastCGI实现,将请求都指向它管理的FastCGI应用进程。
它是一个高性能的替代mod_cgi或者mod_cgid的不错的选择, 它启动了足够多的 CGI程序实例来处理当前的请求,并且这些实例还可以保持运行来面对即将到来的请求。

PHP开发者都喜欢它,比如,用它作为mod_php in-process 的优先选择。

貌似apache版本中一般都集成了mod_fcgid

1.4 memcache常见版本

http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/

php_memcache-3.0.8-5.3-nts-vc9-x86.zip
php_memcache-3.0.8-5.3-ts-vc9-x86.zip
php_memcache-3.0.8-5.4-nts-vc9-x86.zip
php_memcache-3.0.8-5.4-ts-vc9-x86.zip
php_memcache-3.0.8-5.5-nts-vc11-x64.zip
php_memcache-3.0.8-5.5-nts-vc11-x86.zip
php_memcache-3.0.8-5.5-ts-vc11-x64.zip
php_memcache-3.0.8-5.5-ts-vc11-x86.zip
php_memcache-3.0.8-5.6-nts-vc11-x64.zip
php_memcache-3.0.8-5.6-nts-vc11-x86.zip
php_memcache-3.0.8-5.6-ts-vc11-x64.zip
php_memcache-3.0.8-5.6-ts-vc11-x86.zip

1.5 zend guard/optimizer常见版本

http://www.zend.com/en/products/guard/downloads#Windows

Zend Guard Loader (Runtime for PHP 5.4)	6.0.0
Zend Guard Loader (Runtime for PHP 5.3)	5.5.0
Zend Optimizer (Runtime for PHP 5.2 and earlier)

很明显,针对不同的PHP版本要用到不同的zend guard loader版本或者用zend optimizer

注意区分 zend guardzend guard loader的区别

2. 按次序安装:

  1. 安装Apache[2.2.4-win32-x86-no_ssl],注意指定路径到 D:\localhost
  2. 解压缩PHP[5.3.29-ts-win32-VC9-x86]
  3. 安装Mysql[5.5.39-win32],注意指定路径到 D:\localhost 并且要运行初始化向导配置用户名密码以及编码

  4. 配置Apache+PHP:

3.1 配置Apache下的conf\httpd.conf
#LoadModule cgi_module modules/mod_cgi.so
LoadModule fcgid_module modules/mod_fcgid.so

#LoadModule php5_module
PHPIniDir "D:\localhost\php5.3ts"
LoadModule php5_module D:\localhost\php5.3ts\php5apache2_2.dll
AddType application/x-httpd-php .php .phtml
#Remove above lines after you unintall php

DocumentRoot "D:/localhost/www"

<Directory "D:/localhost/www">
... ...
... ...
</Directory>
3.2 配置php.ini

如果apache配置中指定了PHPIniDir,则直接可以配置php目录下的php.ini
否则, php5.3ts中的php.ini拷贝一份到 C:\windows 下面,并配置:

extension_dir = "D:\localhost\php5.3ts\ext"

extension=php_bz2.dll
extension=php_curl.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
3.3 如果配置过程中报错,记得去看看 apache 目录下的 logs\errors
3.4 配置zend guard loader

解压缩 zend guard ZendLoader.dll到目录 yourphpdir\ext
修改PHP配置:

[Zend.loader]
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="你的PHP安装目录\ext\ZendLoader.dll"

zend guard loader只支持NTS的版本,意味着如果你的php版本是TS的话,就没法使用zend guard loader了,如果你想查看自己的php是ts还是nts的,只需要输出phpinfo,然后搜索下:Thread Safety,disabled对应nts版本,否则为ts。
因此,终极解决办法就是,下载个php NTS版本进行安装即可。

原创博客,转载请注明: http://www.cnblogs.com/ganiks
分类:  工具软件解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值