·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> 深入分析windows下配置wamp环境各模块的版本兼容性

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

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
深入分析windows下配置wamp环境各模块的版本兼容性

版本相关概念说明:

  • 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/x64PHP 5.4 (5.4.32) VC9 ts/nts x86/x64PHP 5.5 (5.5.16) VC11 ts/nts x86/x64PHP 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.zipphp_memcache-3.0.8-5.3-ts-vc9-x86.zipphp_memcache-3.0.8-5.4-nts-vc9-x86.zipphp_memcache-3.0.8-5.4-ts-vc9-x86.zipphp_memcache-3.0.8-5.5-nts-vc11-x64.zipphp_memcache-3.0.8-5.5-nts-vc11-x86.zipphp_memcache-3.0.8-5.5-ts-vc11-x64.zipphp_memcache-3.0.8-5.5-ts-vc11-x86.zipphp_memcache-3.0.8-5.6-nts-vc11-x64.zipphp_memcache-3.0.8-5.6-nts-vc11-x86.zipphp_memcache-3.0.8-5.6-ts-vc11-x64.zipphp_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.0Zend Guard Loader (Runtime for PHP 5.3)5.5.0Zend 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 并且要运行初始化向导配置用户名密码以及编码

d

3. 配置Apache+PHP:3.1 配置Apache下的conf\httpd.conf
#LoadModule cgi_module modules/mod_cgi.soLoadModule fcgid_module modules/mod_fcgid.so#LoadModule php5_modulePHPIniDir "D:\localhost\php5.3ts"LoadModule php5_module D:\localhost\php5.3ts\php5apache2_2.dllAddType application/x-httpd-php .php .phtml#Remove above lines after you unintall phpDocumentRoot "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.dllextension=php_curl.dll;extension=php_fileinfo.dllextension=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.dllextension=php_mbstring.dll;extension=php_exif.dll      ; Must be after mbstring as it depends on itextension=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\errors3.4 配置zend guard loader

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

[Zend.loader]zend_loader.enable=1zend_loader.disable_licensing=1zend_loader.obfuscation_level_support=3zend_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版本进行安装即可。