本文系博主原创,转载注明出处:http://www.thaiki.net | 泰麒工作室
6月的最后一天….PHP5.3发布了…沉寂了好久的PHP.net 终于有了些许动静….
东西还没来得及体验,就说说看新版发布说明的体验吧 :
1.如约引入了 namespace (命名空间) 的概念
用法还是延续其诡异的语法(其实就是已定义的符号不会被用作其他算法.也许这样解释的效率会比较高吧!)
\namespace\somesome::other
参见:http://cn2.php.net/manual/en/language.namespaces.rationale.php
2.匿名函数,引入了闭包操作.(待补充)看到了一个新的关键字”use”
参见:http://cn.php.net/manual/en/functions.anonymous.php
3.引入了 late static binding ,待补充
4.引入了几个扩展
intl C/C++ 中ICU的封装器,用于解决字符集编码的相关问题
phar 看到这个不明白?知道java 有 jar不?明白了吧 - -
fileinfo 弥补PHP在文件处理中的一些不足,比如判断文件类型
下面进入正题…
新版本稳定版的体验固然很好,但是难保安装了新的PHP环境不会对之前已开发的工作造成影响.所以我才有了本文的尝试,大家也该注意到的,这是个beta 版本的文章,之所以要加个beta 是因为本章的用法会有很多不足,这些不足也是有待日后改进的.
系统环境 : Windows home Basic
软件环境 : Apache 2.2.11 with PHP 5.2.8 (Server API - Apache 2.0 Filter)
5.3 的Pack : 从 http://windows.php.net/download/ (新的域名 -_-) 下载的 “VC9 x86 Non Thread Saf” (XP的环境推荐 使用 VC6编译的)
构想完成过程 : 本来想直接替换掉5.2的…但是下载的5.3的包里居然没有 Apache 的 Filter(其实这是我做这次尝试的直接原因).最初的构想是在不同的web server上通过占用不同的端口来达到两个环境并存的目的.但是下了 Nginx 却发现没有 fastcgi - -.网上兜了一圈也没发现 ,后来在 fastcgi 的主站 http://www.fastcgi.com/drupal/ 发现 ,apache 也有相关的mod,又想到一般apache 的mod 之间是不冲突的.这样一来,就可以启动一个apache 带起两个PHP环境了.^_^我真是个天才.(无限YY中…)
配置前准备 : 拿定主意后,就再次在网上兜了起来…(兜的过程描述省略一万字 - -),最终…我完成了配置:具体操作如下
本次操作采用的apache 的mod 为 mod_fcgid ,你也可以采用其他的fastcgi 模块…
操作过程
首先去 http://www.apachelounge.com/download/ 下载对应版本的 mod_fcgid
解压后,将文件 mod_fcgid.so 放到 apache 目录下的 modules 里
进入配置目录conf,在其下新建 文件 : mods\fcgi.conf (mods 为任意目录名,这样放只是便于配置分类而已)
在 conf 文件末尾处加入如下内容
Include conf/mods/fcgid.conf
用于包含你刚建立的文件.
配置 mods\fcgi.conf 来配置fcgid
将以下内容修改后复制进去
# 加载 FastCGI 模块
LoadModule fcgid_module modules/mod_fcgid.so
# 配置 FCGId
# 添加头信息文件类型 应该是apache用来判断如何处理文件的,这里使用的是phtml 是避免与之前已经配置好的PHP冲突
AddHandler fcgid-script .phtml .fcgi
# CGI执行命令
FCGIWrapper “D:/php5.3/php-cgi.exe” .phtml
# 配置目录信息
#(备注一下:这里的原有的5.2的根目录下其实就是指APACHE的HTDOCS目录,就是原来5.2放PHP文件目录的地方了。20090824备注)
# 注意这里的 ExecCGI 选项
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
SetHandler fcgid-script
然后在你原来存放php文件的目录下新建一个fcgi目录即可.关于如何配置目录,以及脚本路径别名,本文不讨论.
在fcgi目录下新建一个index.phtml 输入
配置的不足之处:
1.无法默认访问 index.phtml 即使已经配置了 DirectoryIndex
2.没有考虑到 php5.3 libmysql的存放位置,因为只是用于体验5.3 ,所以这点可以忽略
最后放上两张最终结果图