msgbartop
PHP源码分析,Zend引擎分析,Web相关技术研究,Web技术分享–左手代码 右手诗
msgbarbottom

13 Nov 09 Nginx(PHP/fastcgi)的PATH_INFO问题

PATH_INFO是一个CGI 1.1的标准,经常用来做为传参载体.

在Apache中, 当不加配置的时候, 对于PHP脚本, AcceptPathInfo是默认接受的, 也就是说:

如果在服务器在存在一个/laruence/info.php

那么, 对于如下请求, Apache都接受:

/laruence/info.php/dummy
/laruence/info.php/pathinfo

而对于Nginx下, 默认Nginx是不支持PATH INFO的, 也就是说, 对于上面的访问, 会是404, 提示找不到文件出错.

28 Jul 09 Linux上配置Nginx+PHP5(FastCGI)

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。

因此我打算用其替代Apache应用于Linux服务器上。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。那么我们必须使用FastCGI方式来执行PHP程序。

下面是我成功地配置Nginx + PHP5 FastCGI的过程

21 Apr 09 phpDocumentor

最近再总结一些PHP的规范, 想起之前在Y!的时候的API描述自动生成工具, 翻到了phpDocumentor, 用起来感觉还是很方便 , 就安装到使用的过程写下来, 与大家分享

24 Aug 08 PHP5多层继承顺序的bug

今天guoxiaod提出了一个问题,如下:

<?php
class a extends b {
};
class b extends c{
};
class c{
};
?>
  

会导致fatal error:

PHP Fatal error:  Class 'b' not found in /home/xinchen/1.php on line 2
Fatal error: Class 'b' not found in /home/xinchen/1.php on line 2

分析这个问题,是运行阶段出错,经过分析PHP的编译,执行过程,得出如下的parsing顺序…

11 Aug 08 深入浅出PHP(Exploring PHP)

横观国内的PHP现状,一直以来,很少有专门介绍PHP内部机制的书。
对于Zend引擎,PHP扩展开发等相关的知识,中文资料很少。
呵呵,鉴于此:
我会随时记录下研究的心得,希望有机会的时候,可以汇总成书。:)

24 Jul 08 Apache启动过程(PHP_MINIT_FUNCTION的调用)

一封通信记录。关于Apache的启动过程的分析。

09 Apr 08 使用C++编写Apache的模块 — 命令表,保存配置信息

还是和论文相关,要编写一个Apache的模块,挂在post read_request阶段,在第一时间,判断一个链接是否是而已连接请求,并在第一时间拒绝恶意连接请求。
首先遇到的第一个问题,就是需要从http.conf中读取配置信息,提供俩个配置指令,MaxNumber, TimeRange.指定在一段时间内的连接次数上限。
编写的时候,遇到的第一个问题就是,moudule申明,不能通过编译,编译器提示重复定义。查了N遍手边的apache源码分析,也没有找到原因,如: ……..

03 Oct 07 VIM中文乱码解决方案

作者: laruence(http://www.laruence.com)
本文地址: http://www.laruence.com/2007/10/03/5.html
转载请注明出处

cT=”0″;nc=”#444444″;nBgc=”";nBorder=”#196FCB”;tc=”#FFFFFF”;tBgc=”#19A1FE”;tBorder=”#196FCB”;tDigg=”%E6%8E%A8%E8%8D%90″;tDugg=”%E5%B7%B2%E8%8D%90″;defaultItemUrl=”WEB_URL”;defaultFeedUrl =”http://www.laruence.com/feed”;

set langmenu=zh_CN.utf8
set fileencodings=utf-8,cp936,big5,latin1
set ambiwidth=double
let $LANG=’en’
或者也可以:
set encoding=utf-8
set fileencodings=utf-8,chinese,latin-1
if has(“win32″)
set fileencoding=chinese
else
set fileencoding=utf-8
endif
“解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
“解决consle输出乱码
language messages zh_CN.utf-8
下面的方法经过我测试,是可以完美解决的,第一种没有经过测试