为了方便起见,打算就用集成环境。ThinkPHP官方网站推荐的是“WAMP”,用起来确实也很方便,但是修改Apache配置文件http.conf时,总是以“记事本”打开,改起来极为不便。于是就寻思着换其他的集成环境,尝试过“XAMPP”之后看到了“APMServ”。因为“XAMPP”是英文的,所以毅然的选择了“APMServ”。
安装好APMServ之后,用起来确实挺爽,修改配置什么的都比较方便。就是集成的东西有点多,但不启用也不会影响什么,总体还是比较满意的。
可是运行ThinkPHP的时候又出现了新的问题:PHP要求版本至少是5.3的。目前APMServ的PHP版本只是5.2.6,满足不了需求,怎么办?难道只能用“WAMP”或者“XAMPP”?怎么才能使ThinkPHP在APMServer环境下正常运行呢?升级PHP版本?没错,就是升级版本,既然官方没有升级,那就自己升级呗。
百度“APMServ5.2.6 php升级”,很多文章都是千篇一律,说的也不够详细。谷歌最近也不能用,只能“死马当活马医”了,选了其中的一篇尝试升级。折腾了一会终成功了。下面对这次升级进行总结:
第一步:下载PHP新版本
首先要明确:选择什么版本的PHP?
如果你是在windows下使用Apache+PHP的,请选择VC6版本;
如果你是在windows下使用IIS+PHP的,请选择VC9或者VC11版本。
因为APMServ使用的是Apache+PHP,所以只能下载VC6版本的PHP。
在 PHP官网 查看了一下,下载最新的VC6版本: php-5.3.0 -Win32-VC6-x86.zip
第二步:更新PHP文件
将下载好的PHP文件解压缩,解压缩的文件夹“ php-5.3.0 -Win32-VC6-x86 ”复制到APMServ5.2.6的根目录,我这里是放在“D:\APMServ5.2.6”。
然后将原来“PHP”目录下的” ext “和” extras “文件夹复制到“ php-5.3.0 -Win32-VC6-x86 ”目录下,遇到重复文件,不要覆盖。
还有原来”PHP“目录下的“ libmcrypt.dll” 、“ libmhash.dll” 和“ libmysql.dll” 三个文件复制到“ php-5.3.0 -Win32-VC6-x86 ”目录下,遇到重复文件,覆盖。
最后将原来的PHP文件备份,我这里是重命名为“PHP_backup”;还要将“ php-5.3.0 -Win32-VC6-x86 ” 重命名为:“PHP”。
第三步:修改配置文件
将“PHP”目录下的“ php.ini-production”文件重命名为:“php.ini”。
打开文件,找到:
1 short_open_tag = Off
修改为:
1 short_open_tag = On
找到:
1 ; extension_dir = "./" 2 ; On windows: 3 ; extension_dir = "ext"
修改为:
1 extension_dir = "D:/APMServ5.2.6/PHP/ext"
注:这里的路径根据实际情况填写。
找到:
1 ;extension=php_bz2.dll 2 ;extension=php_curl.dll 3 ;extension=php_fileinfo.dll 4 ;extension=php_gd2.dll 5 ;extension=php_gettext.dll 6 ;extension=php_gmp.dll 7 ;extension=php_intl.dll 8 ;extension=php_imap.dll 9 ;extension=php_interbase.dll 10 ;extension=php_ldap.dll 11 ;extension=php_mbstring.dll 12 ;extension=php_exif.dll ; Must be after mbstring as it depends on it 13 ;extension=php_mysql.dll 14 ;extension=php_mysqli.dll 15 ;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client 16 ;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client 17 ;extension=php_openssl.dll 18 ;extension=php_pdo_firebird.dll 19 ;extension=php_pdo_mssql.dll 20 ;extension=php_pdo_mysql.dll 21 ;extension=php_pdo_oci.dll 22 ;extension=php_pdo_odbc.dll 23 ;extension=php_pdo_pgsql.dll 24 ;extension=php_pdo_sqlite.dll 25 ;extension=php_pgsql.dll 26 ;extension=php_phar.dll 27 ;extension=php_pspell.dll 28 ;extension=php_shmop.dll 29 ;extension=php_snmp.dll 30 ;extension=php_soap.dll 31 ;extension=php_sockets.dll 32 ;extension=php_sqlite.dll 33 ;extension=php_sqlite3.dll 34 ;extension=php_sybase_ct.dll 35 ;extension=php_tidy.dll 36 ;extension=php_xmlrpc.dll 37 ;extension=php_xsl.dll 38 ;extension=php_zip.dll
将前面的“;”根据需要去掉,我这里是去除了所有的“;”,表示开启所有拓展。不熟悉php的话,建议去除所有的“;”。
1 extension=php_bz2.dll 2 extension=php_curl.dll 3 extension=php_fileinfo.dll 4 extension=php_gd2.dll 5 extension=php_gettext.dll 6 extension=php_gmp.dll 7 extension=php_intl.dll 8 extension=php_imap.dll 9 extension=php_interbase.dll 10 extension=php_ldap.dll 11 extension=php_mbstring.dll 12 extension=php_exif.dll 13 extension=php_mysql.dll 14 extension=php_mysqli.dll 15 extension=php_oci8.dll 16 extension=php_oci8_11g.dll 17 extension=php_openssl.dll 18 extension=php_pdo_firebird.dll 19 extension=php_pdo_mssql.dll 20 extension=php_pdo_mysql.dll 21 extension=php_pdo_oci.dll 22 extension=php_pdo_odbc.dll 23 extension=php_pdo_pgsql.dll 24 extension=php_pdo_sqlite.dll 25 extension=php_pgsql.dll 26 extension=php_pspell.dll 27 extension=php_shmop.dll 28 extension=php_snmp.dll 29 extension=php_soap.dll 30 extension=php_sockets.dll 31 extension=php_sqlite.dll 32 extension=php_sqlite3.dll 33 extension=php_sybase_ct.dll 34 extension=php_tidy.dll 35 extension=php_xmlrpc.dll 36 extension=php_xsl.dll 37 extension=php_zip.dll
最后在文档末尾添加下面的代码:
1 [eaccelerator] 2 zend_extension_ts="D:/APMServ5.2.6/zend/eAccelerator/eaccelerator.dll" 3 eaccelerator.shm_size="32" 4 eaccelerator.cache_dir="D:/APMServ5.2.6/tmp/eaccelerator/" 5 eaccelerator.enable="1" 6 eaccelerator.optimizer="1" 7 eaccelerator.check_mtime="1" 8 eaccelerator.debug="0" 9 eaccelerator.filter="" 10 eaccelerator.shm_max="0" 11 eaccelerator.shm_ttl="0" 12 eaccelerator.shm_prune_period="0" 13 eaccelerator.shm_only="0" 14 eaccelerator.compress="1" 15 eaccelerator.compress_level="9" 16 eaccelerator.keys = "shm" 17 eaccelerator.sessions = "shm" 18 19 [Zend] 20 zend_optimizer.optimization_level=1023 21 zend_optimizer.encoder_loader=1 22 zend_extension_ts="D:/APMServ5.2.6/zend/ZendOptimizer-3.3.3/php-5.2.x/ZendOptimizer.dll"
到这里,APMServ5.2.6就已经升级PHP成功了。