标签 WampServer 下的文章

升级WampServer中Apache、PHP、MySQL版本

初到jjsj公司工作又近2个月。了解到公司从16年4月开始做EC的B2B商城。由于公司领导不懂技术。找到外包公司做了一个Java版本的系统短期快速上线后发现问题多多也找不到售后。功能修改的需求无法快速满足。又下线后重新采用PHP+ECShop重新开发了一套。前期Java版本在阿里云ECS CentOS上跑。后来ECShop上马又转到Windows Server 2008 R2 服务器环境用的是奇葩的IIS+PHP组合。确实是够折腾的。

三个月我把服务器上面的IIS卸载掉,转到WAMP环境(采用WampServer),我用的是WampServer2.0i.exe安装包,2009年发布的版本,包含:Apache2.2.11,PHP5.3.0,MySQL5.1.36。为什么要用这么老的版本?难道不怕security bug吗。非也非也。最新的ECShop源码2.7.3最高只能支持到PHP5.3。ECShop里面又很多引用新建对象代码:&new Object,这玩意儿在新版本PHP5.5及其以上的已经版本已经deprecated。

WampServer2.0i.exe里面的二进制都是采用VC6编译。而最新的一般都是VC9。这点需要注意。

虽然说AMP套件是跨平台开源软件,但实际上Windows平台一直都是被歧视的。所以找到对应版本的Win32 VC9 编译版确实是门学问。

这里:http://mirrors.cnnic.cn/apache//httpd/binaries/win32/ 有可以下载编译好的Win32版本。

Apache 2.2.11升级到2.2.31

到apachehaus下载 httpd-2.2.31-x86-r6.zip解压到D:\tunps.com\bin\apache\Apache2.2.31,将老版本(2.2.11)手动卸载。在cmd下运行:D:\tunps.com\bin\apache\Apache2.2.11\bin\httpd.exe -k uninstall,然后安装新版本:D:\tunps.com\bin\apache\Apache2.2.31\bin\httpd.exe -k install -n apache22,将老版本的conf目录覆盖到新版本的conf目录。修改PHP LoadModule的路径和ServerRoot:

ServerRoot "D:/tunps.com/bin/apache/apache2.2.31"

LoadModule php5_module "D:/tunps.com/bin/php/php5.3.29/php5apache2_2.dll"

然后重启Apahce让配置生效:D:\tunps.com\bin\apache\Apache2.2.31\bin\httpd.exe -k restart
注意:因为2.2.31用的是VC9编译,为了让httpd跑起来,必须确保服务器环境已经安装VC++ Redist 2008 SP1。

PHP 5.3.0升级到5.3.29

PHP也是同样的道理,官方php.net不提供win32而精致版,所以在apachelounge搜索到人家的编译版:

https://phpdev2.toolsforresearch.com/php-5.3.29-nts-Win32-VC9-x86.zip 
https://phpdev2.toolsforresearch.com/php-5.3.29-Win32-VC9-x86.zip 
https://phpdev2.toolsforresearch.com/php-5.3.29-nts-Win32-VC9-x64.zip 
https://phpdev2.toolsforresearch.com/php-5.3.29-Win32-VC9-x64.zip 

nts表示非线程安全,我们不需要这个。下载好之后解压到D:\tunps.com\bin\php\php5.3.29,将老版本PHP5.3.0的php.ini覆盖到5.3.29,并且覆盖一份到apache2.2.31\bin目录下。这样不用修改任何配置,可以直接使用。但是php.ini有一个地方还是要修改:

extension_dir = "D:/tunps.com/bin/php/php5.3.29/ext/"

MySQL 5.1.36升级到最新的5.7.16

因为PHP一般都是采用tcp socket和MySQL连接,所以兼容性要求并不高,哪怕PHP的MySQL扩展(php_mysqli.dll)还是5.0.8 2010年的版本,但还是可用。

到MySQL官网下载最新的MySQL win32压缩包(mysql-5.7.16-win32.zip),现在的MySQL安装包做得很大,有400MB左右,里面不仅仅包含二进制还是各种文档、各种语言的客户端连接library还有Visual Studio扩展等等。安装程序也不是十年那样的简陋,可以安装的过程中实现各种高级配置(端口、用户名、安全性设置 etc.)。

解压MySQL压缩包到D:\tunps.com\bin\mysql\mysql-5.7.16-win32,管理员cmd下安装MySQL:

mysqld --install mysql57

初始化数据:

mysqld --initialize

或者:

mysqld --initialize-insecure

没有加insecure的自动生成一个随机的root密码, root密码在:D:\tunps.com\bin\mysql\mysql-5.7.16-win32\data\<host name>.err 日志文件里面。加了insecure的,默认root没有密码。mysql -uroot -p登录后用

set password = password('tunps.com');

设置为新密码。

然后重新导入SQL文件即可。

如果不初始化mysql直接启动mysql服务会启动不起来,事件查看器eventvwr.msc报错:

failed to set datadir to D:\tunps.com\bin\mysql\mysql-5.7.16-win32\data\

phpMyAdmin 3.2.0.1升级到4.6.5.1

更炫的ajax操作,效率大为提升,下载后解压缩到D:\tunps.com\apps\phpMyAdmin-4.6.5.1-all-languages,修改D:\tunps.com\alias\phpmyadmin.conf里面Alias路径。

注意:以上所有的软件都是x86的。