让 PHP 5.2 和 5.3 在 Apache 中并存 - beta 0.2

简介: 让 PHP 5.2 和 5.3 在 Apache 中并存 - beta 0.2 本文系博主原创,转载注明出处:http://www.thaiki.net | 泰麒工作室 6月的最后一天….

本文系博主原创,转载注明出处: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 输入 <?php phpinfo();

配置的不足之处:
1.无法默认访问 index.phtml 即使已经配置了 DirectoryIndex
2.没有考虑到 php5.3 libmysql的存放位置,因为只是用于体验5.3 ,所以这点可以忽略

最后放上两张最终结果图

PHP 5.2 on apache

PHP 5.2 on apache

PHP 5.3 on apache

PHP 5.3 on apache

目录
相关文章
|
6月前
|
PHP Apache
PHP环境搭建(配置php模块到apache服务器)
PHP环境搭建(配置php模块到apache服务器)
65 0
|
7月前
|
Apache PHP 数据安全/隐私保护
(MAC)PHP Apache 安装与配置
(MAC)PHP Apache 安装与配置
223 0
|
8月前
|
缓存 前端开发 JavaScript
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
218 0
|
1月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
199 2
|
7月前
|
域名解析 Apache PHP
PHP Apache - 多站点虚拟主机配置
PHP Apache - 多站点虚拟主机配置
291 0
|
3月前
|
安全 网络安全 Apache
Windows下Apache部署多个php项目
在 Windows 系统下,使用 Apache 服务器发布多个 PHP 项目是一项常见的任务。本文将介绍如何在 Windows 操作系统下使用 Apache 发布多个 PHP 项目。在 Windows 操作系统下使用 Apache 发布多个 PHP 项目可能有一些挑战,但是只要您按照本文的步骤进行操作,您就可以成功地完成这项任务。希望本文能够对您有所帮助。
60 0
|
4月前
|
Apache PHP
百度搜索:蓝易云【Apache环境php安装扩展swoole。】
通过以上步骤,你就可以在Apache环境中成功安装和配置Swoole扩展了。请确保你按照正确的步骤进行操作,并根据你的系统和环境进行相应的调整。如果遇到问题,你可以参考Swoole官方文档或社区的支持资源来获取更多帮助。
33 1
|
6月前
|
Apache PHP
PHP环境搭建(搭建Apache服务器)
PHP环境搭建(搭建Apache服务器)
85 0
|
7月前
|
网络协议 Apache PHP
(MAC)PHP Apache
(MAC)PHP Apache
57 0
|
8月前
|
安全 Apache PHP
Apache配置----访问控制,禁止解析php
Apache配置----访问控制,禁止解析php
96 0

推荐镜像

更多