Windows7下使用IIS7与FastCGI模块配置PHP5.3.1运行环境图文记录

post by 朦朧中的罪惡 / 2010-2-28 20:04 Sunday 服务器配置

PHP5.3增加了很多新特性,是时候该好好体验一下了,本文使用了FastCGI模块来配置PHP5.3运行环境,虽然然与常规的配置方式有点区别,但是步骤更加简单方便。

1.下载PHP5.3程序代码

可以去PHP官方的下载站去下载http://windows.php.net/download/

注意使用IIS7的话需要下载VC9版本(VC9 X86)

http://windows.php.net/downloads/releases/php-5.3.1-Win32-VC9-x86.zip

2.解压缩代码压缩包并配置

解压缩后将文件夹中的php.ini-development修改为php.ini,然后用文本编辑器修改以下内容

extension_dir = "D:\PHP程序文件目录\ext"

去掉

extension=php_mysql.dll
extension=php_mysqli.dll

等扩展前面的分号注释,具体模块请根据自己的需要开启和关闭

date.timezone = "Asia/Shanghai"

上面这项是PHP5.3必须配置的项目,否则运行phpinfo时会出现Waring警告

CGI配置

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo = 1
cgi.force_redirect = 0

3.安装IIS7

进入控制面板 -  选择“程序

点击查看原图

然后再选择 “打开或关闭Windows功能

点击查看原图

选择”万维网服务

点击查看原图

注意请展开“应用程序开发功能”选中“CGI“这个选项

点击查看原图

选择完毕后点击”确定“即可完成安装过程

4.配置IIS7

进入”控制面板“ - "管理工具” - 选择"Internet信息服务(IIS)管理器"

点击查看原图

选择左侧的网站 - Default Web Site, 再双击右侧的“处理程序映射

点击查看原图

进入管理页面后再选择右侧菜单的“添加模块映射

点击查看原图

然后详细内容按照下图填写,注意可执行路径内容请根据自己机器上php-cgi的路径选择

点击查看原图

这时在IIS默认根目录新建一个文件phpinfo.php,输入

<?php

phpinfo();

保存并使用浏览器访问 http://localhost/phpinfo.php

点击查看原图

如果一切正常则会像上图一样显示,恭喜,配置成功完成!

如果在配置和使用时出现疑难问题,可以参考我先前的文章

IIS7配置PHP5.3问题解决笔记

另外再附上官方的配置指南

http://cn.php.net/manual/en/install.windows.iis7.php

标签: php 环境配置

评论(0) 引用(0) 浏览(66)

PHP使用Session和全局变量开启时候出现waring提示的分析

post by 朦朧中的罪惡 / 2010-2-23 19:38 Tuesday 疑难杂症

这个问题估计很少人会遇到,但是总有人会那么凑巧的给碰上

PHP在运行时出现一个Waring,内容为

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0.

如何触发这个Waring呢?首先php配置register_globals必须为Off

代码如下

<?php
session_start();
$test = 'be-evil' ;
$_SESSION['test'] = null;

在register_globals为On的情况下,$test可能是由其他全局变量转换来的例如$_GET,$_POST;

但是在register_globals为Off的情况下,这里是创建了一个全局变量 test 切值为 null,解释器会认为你忘记全局变量关闭了,然后想修改全局变量$test的值...然后就会冒出这个善意的提醒了


解决办法:

在PHP.ini中设定bug_compat_42或bug_compat_warn为Off即可

或者避免全局变量与Session变量名称同名

相关资料:

PHP Session的一个警告

PHP手册Session评论中一个网友提到的这个问题

 

 

 

标签: php

评论(2) 引用(0) 浏览(55)

iPhone开发:UIScrollView分页算法

post by 朦朧中的罪惡 / 2010-2-22 20:09 Monday iPhone开发

在使用 UIScrollView 分页的时候我们如何确定当前是第几页?

首先需要开启分页设置

scrollView.pagingEnabled = YES;

然后我们在委托的类上实现以下方法

- (void) scrollViewDidScroll:(UIScrollView *)sender {
        // 得到每页宽度
        CGFloat pageWidth = sender.frame.size.width;
        // 根据当前的x坐标和页宽度计算出当前页数
        int currentPage = floor((sender.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
}

标签: Objective-c iPhone

评论(0) 引用(0) 浏览(72)

iPhone开发:通过NSURLRequest获得服务器返回的http header和http status

post by 朦朧中的罪惡 / 2010-2-21 12:22 Sunday iPhone开发

同步访问时的取法

NSURL *url = [NSURL URLWithString:@"http://www.test.com"];
NSURLRequest *request = [NSURLRequest requestWithURL: url];
NSHTTPURLResponse *response;
[NSURLConnection sendSynchronousRequest: request returningResponse: &response error: nil];
if ([response respondsToSelector:@selector(allHeaderFields)]) {
    // 取得所有的请求的头
    NSDictionary *dictionary = [response allHeaderFields];
    NSLog([dictionary description]);
    // 取得http状态码
   
NSLog(@"%d",[response statusCode]);

}

 

异步访问时则要实现委托的一个方法

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    // 注意这里将NSURLResponse对象转换成NSHTTPURLResponse对象才能去
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
    if ([response respondsToSelector:@selector(allHeaderFields)]) {
        NSDictionary *dictionary = [httpResponse allHeaderFields];
        NSLog([dictionary description]);
        NSLog(@"%d",[response statusCode]);

    }
}

标签: Objective-c iPhone

评论(0) 引用(0) 浏览(91)

iPhone应用程序取得程序关闭事件的方法

post by 朦朧中的罪惡 / 2010-2-8 18:34 Monday iPhone开发

非常简单,在你的AppDelegate对象中实现以下方法

- (void) applicationWillTerminate:(UIApplication *)application {
     // 在这里完成程序将要关闭时的事情
}

标签: Objective-c iPhone

评论(0) 引用(0) 浏览(363)

[Java学习笔记]Java通过JDBC连接MySQL读取数据

post by 朦朧中的罪惡 / 2010-2-5 20:43 Friday Java学习笔记

正式开始转Java了,第一天,语法基础啥的咱都会,直接从做功能开始。先研究怎么用Java连接MySQL吧

代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;

public class MyTest {
    public static void main(String args[]) {
        Connection con = null;
        try {
            // 获得MySQL驱动的实例
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            // 提供地址用户名密码并获得连接对象
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test","root", "123456");
       
            if (!con.isClosed())
                // 连接成功提示
                System.out.println("Successfully connected to MySQL server using TCP/IP...");
            // 有Connection对象创建Statement
            Statement st = con.createStatement();
            // 运行SQL语句读取
            ResultSet rs = st.executeQuery("SELECT * FROM emlog_blog");
            // 循环读取数据
            while (rs.next()) {
                // 打印数据
                System.out.println(rs.getString("gid"));
            }
            // 关闭
            con.close();
        } catch(Exception e) {
            System.err.println("Exception: " + e.getMessage());
        }
    }
}

要注意的东西有

这个com.mysql.jdbc.的包需要自己去MySQL哪里下载的

下载地址:

http://dev.mysql.com/downloads/connector/j/

下载后把这个包加到Eclipse的libary里面上面的代码才能运行

标签: Java Java学习笔记

评论(1) 引用(0) 浏览(237)

Eclipse Java暗色代码配色主题

post by 朦朧中的罪惡 / 2010-2-5 19:37 Friday 软件应用

前不久弄了几套eclipse PDT的暗色代码主题,用的甚是舒服,最近由于工作的需要转换到了Java平台开发,Java这块的代码配色方案又成了新的目标,网上转悠了一圈只发现了一款配色比较符合我胃口,使用的同时并分享之:

点击查看原图

主题原作者地址,他的页面上还提供 Visual Studio 的主题哦

http://blog.prabir.me/post/Dark-Eclipse-Theme.aspx

主题包见日志附件

安装步骤如下

1 . 下载附件压缩包,解压缩后启动eclipse。

2 . 选择 File -> Import -> General -> Preferences 再选择压缩包中的eclipse.epf,按着提示一路下一步即可,导入成功即可看到效果。

其实还有其他的样式,但是好多主题对比度太高了我感觉很刺眼就没有截图,但是链接还是贴出来吧

 

http://qinghe3012.javaeye.com/blog/413317

http://www.blogjava.net/LittleDS/archive/2009/04/17/266231.html

http://utensil.javaeye.com/blog/444590

http://yaou.hailuo.de/archives/53

http://weblogs.manas.com.ar/ary/2009/03/13/black-theme-for-eclipse/

附件下载:
2009_8_prabir_darktheme_consolas_epf_v1.1.zip 5.1KB

标签: eclipse Java

评论(0) 引用(0) 浏览(148)

符合为w3c标准的CSS Hack

post by 朦朧中的罪惡 / 2010-2-3 16:42 Wednesday Web前端

如何让你的CSS既兼容各种浏览器,又可以通过w3c的验证?答案是CSS hack

测试页面在附件压缩包中

标准CSS样式

#style {
    color  :orange;
}

火狐效果

点击查看原图

 

IE7 独有hack写法

*+html #style{
    color  :green;
}

表现效果

点击查看原图


* html #style {
   color    :blue;
}  /* IE6独有HACK,只有IE6可以理解,后复盖前,所以IE6会使用这个样式 */

点击查看原图

W3C CSS 验证

点击查看原图

CSS3 验证完美通过

点击查看原图

附件下载:
css hack.zip 609字节

标签: css

评论(0) 引用(0) 浏览(109)

Firefox主题Chromifox Extreme,将你的Firefox变成Google Chrome的外观

post by 朦朧中的罪惡 / 2010-2-2 10:37 Tuesday Firefox

喜欢Google Chrome的外观又不想抛弃Firefox的易用性?试试Chromifox Extreme这款主题吧

这个主题可以完美的在Firefox上面实现Google Chrome的外观,喜欢的朋友们不要错过了

点击查看原图

如果要实现上面效果图中的样式必须安装Hide Caption插件,这样才能完美实现Google Chrome的外观

主题下载地址:

https://addons.mozilla.org/zh-CN/firefox/addon/10674

Hide Caption插件下载地址:

https://addons.mozilla.org/en-US/firefox/addon/9256

标签: FireFox

评论(0) 引用(0) 浏览(379)

php函数unserialize数据返回false问题分析

post by 朦朧中的罪惡 / 2010-2-1 15:22 Monday PHP

unserialize的这个问题是由一个emlog论坛用户在使用时报错而发现的

问题表现情况如下:

emlog缓存 的保存方式是将php的数据对象(数组)序列化(serialize)后以文件的形式存放,读取缓存的时候直接反序列化(unserialize)缓存字 符串即可读取数据,关于序列化和反序列化的原理请看我先前的文章《php函数 serialize()与unserialize()不完全研究》
 

我从用户那里取到的缓存的序列化数据为:

a:1: {s:8:"kl_album";a:4:{s:5:"title";s:12:"精彩瞬 间";s:3:"url";s:41:"http://www.kaisay.cn/?plugin=kl_album";s:8:"is_blank";s:7:"_parent";s:4:"hide";s:1:"n";}}

咋 一看了解序列化的人都会说,这个数据很正常啊,没什么问题呢。可是直接把这段字符串进行unserialize,返回的值却是个False;

代 码

var_dump(unserialize('a:1:{s:8:"kl_album";a:4: {s:5:"title";s:12:"精彩瞬间";s:3:"url";s:41:"http://www.kaisay.cn /?plugin=kl_album";s:8:"is_blank";s:7:"_parent";s:4:"hide";s:1:"n";}}'));
 

点击查看原图

运行结果

点击查看原图

阅读全文>>

标签: php 原创

评论(0) 引用(0) 浏览(227)