jquery UI dialog 挡住浮动层或iframe

2009年12月5日 CanleiSky 没有评论

jquery UI dialog 老是挡住浮动的层,导致dialog弹出后浮动元素消失,这种情况只会在ie6下出现,解决办法是在浮动层的CSS样式里设置一下高度就可以了。

分类: JavaScript 标签:

CentOS安装wine 1.1.33日记

2009年11月22日 CanleiSky 没有评论

1.去官网下载wine 1.1.33,下载后解压到/opt/download/wine-1.1.33

下载地址:http://www.winehq.org/announce/1.1.33

2.cd /opt/downloa/wine-1.1.33

3.执行安装前环境检查

[root@localhost wine-1.1.33]# ./configure

如果如现checking error … please install xxx 字样表示执行这项检查报错,再执行yum install xxx,这里如果报Xlib/Xfree86错误的话要执行

[root@localhost wine-1.1.33]# yum -y groupinstall “X Software Development”

或者:

[root@localhost wine-1.1.33]# yum install libxorg-x11-devel
[root@localhost wine-1.1.33]# yum install libxorg-x11-static-devel

执行安装后再次运行

[root@localhost wine-1.1.33]# ./configure

直到完全检查成功为止

4.进行编译安装,这个过程非常长,耐心等待编译完成:

[root@localhost wine-1.1.33]# make depend && make

分类: 服务器 标签:

设置Oracle Instant Client(windows 版)

2009年11月22日 CanleiSky 1 条评论

第一步,下载Instant Client for Microsoft Windows (32-bit)
        下载地址:http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html
        下载和数据库版本一至的Instant Client,本机是10g r2所以选择Version 10.2.0.4

安装:
        1.直接解压到一个目录,本机是:D:\WareSoft\instantclient_10_2
        2.设置环境变量
            在PATH变量后追回D:\WareSoft\instantclient_10_2
            新建TNS_ADMIN变量,值为:D:\WareSoft\instantclient_10_2
            新建LD_LIBRARY_PATH变量,值为:D:\WareSoft\instantclient_10_2
           新建NLS_LANG变量(连接字符集,本机是UTF-8),值为:SIMPLIFIED CHINESE_CHINA.AL32UTF8
3.创建链接配置文件
           新建文件,命名为:tnsnames.ora,放到D:\WareSoft\instantclient_10_2下,内容示例:
192.168.1.105 =
    (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.105)(PORT = 1521))
    )
    (CONNECT_DATA =
        (SERVICE_NAME = XE)
)
)
内容说明:
192.168.1.105(链接别名) =
    (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.105(服务器IP))(PORT = 1521(服务端口)))
    )
    (CONNECT_DATA =
        (SERVICE_NAME = XE(服务端口,rpm版的为XE,tar版的是ORCL)
    )
)

分类: 数据库 标签:

CentOS安装Oracle 10G R2日记

2009年11月21日 CanleiSky 没有评论

Oracle可以免费使用
Oracle 10G R2下载地址:
http://www.oracle.com/technology/global/cn/software/products/database/xe/htdocs/102xelinsoft.html
下载通用版(含语言包的) : oracle-xe-univ-10.2.0.1-1.0.i386.rpm
rpm包无法设置安装路径,如果一定要设置选译tar.gz的
下载后打开命令行:
[root@localhost ~]# cd /opt/download/
[root@localhost download]# rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm
一直回车,输入SYSTEM密码,安装成功。
默认数据库端口是1521,默认HTTP管理端口是8080,HTTP管理地址:http://127.0.0.1:8080/apex

安装完成,现在可以去http://127.0.0.1:8080/apex爽一把了

分类: 数据库 标签:

为系统增加右键菜单

2009年10月23日 CanleiSky 没有评论

实例:通过编辑注册表新建一个菜单叫“用EditPlus 编辑”

开始、运行、regedit

找到HKEY_CLASSES_ROOT,下面是系统所有扩展名列表,我们选择*,在下面shell目录里新建一个项,命名叫“用EditPlus 编辑”,然后在里面新建项 command ,选中command,在右边选中默认击右键->修改值为D:\WareSoft\EditPlus33.1\EditPlus 3\EditPlus.exe “%1″ 这是EditPlus的路径,后面的”%1″是把触发这个事件的对象传递给EditPlus吧,偶是这么理解的

分类: 未分类 标签:

JavaScript stringToTime(字符转时间),dateDiff(时间相减)

2009年9月23日 CanleiSky 没有评论


function stringToTime(string){
var f = string.split(' ', 2);
var d = (f[0] ? f[0] : '').split('-', 3);
var t = (f[1] ? f[1] : '').split(':', 3);

return (new Date(
parseInt(d[0], 10) || null,
(parseInt(d[1], 10) || 1)-1,
parseInt(d[2], 10) || null,
parseInt(t[0], 10) || null,
parseInt(t[1], 10) || null,
parseInt(t[2], 10) || null
)).getTime();

}

function dateDiff(date1, date2){
var type1 = typeof date1, type2 = typeof date2;

if(type1 == 'string')
date1 = stringToTime(date1);
else if(date1.getTime)
date1 = date1.getTime();

if(type2 == 'string')
date2 = stringToTime(date2);
else if(date2.getTime)
date2 = date2.getTime();

return (date1 - date2) / 1000;//结果是毫秒
}

分类: JavaScript 标签:

SQL SERVER设置自增字段值

2009年9月22日 CanleiSky 没有评论

把下面的TableName改成自己的表名,0是设置自增值是多少

DBCC CHECKIDENT(TableName, RESEED, 0)

分类: 数据库 标签:

EDrag仿google ig拖曳层javascript类

2009年9月22日 CanleiSky 没有评论

本函数由本站原创,首发于蓝色经典论坛,加入onReady函数。

简单应用实例:
var dropArea = ["wrap","wrap2"];

EDrag.proxy(”drag1″,”h1″,["wrap"]);
EDrag.proxy(”drag2″,”h1″,dropArea);
EDrag.proxy(”drag3″,”h1″,dropArea);
EDrag.proxy(”drag4″,”h1″,dropArea);

EDrag.proxy(”drag5″,”h1″,["wrap2"]);
EDrag.proxy(”drag6″,”h1″,dropArea);
EDrag.proxy(”drag7″,”h1″,dropArea);
EDrag.proxy(”drag8″,”h1″,dropArea);

EF.onReady(function(){EDrag.init();});

完整的应用实例:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<title>无标题文档</title>
<style type=”text/css”>
body{
margin:auto;
font-size:12px;
}
.normal {
width: 300px;
margin:13px auto 13px auto;
min-height: 200px;
padding: 2px;
border: 1px solid #666666;
background: #FFFFFF;
}
.normal h1 {
width: 300px;
height: 25px;
margin: 0px;
line-height: 25px;
font-size: 14px;
background-color: #CCC;
}
</style>
<script type=”text/javascript”>
/**
* eDrag 层拖曳javascript类
* eDrag.proxy(”拖曳层”,”标题”,”可以扔下的容器”);
* eDrag.init();
*
*
* @author Eays
* @version 1.0
*/
var EDrag = _EDrag = {
wraps: [],

titles: [],

target: [],

document: document.documentElement || document.body,

initialPosition: {x:0 ,y:0},

dragArea: null,

shadow: null,

dragAreaCopy: null,

dragParent: null,

mouseOffset: 0,

dragAreaId: null,

releaseTarget: null,

init: function()
{
this.style.loadStyle();
for (var i = 0 ; i < this.titles.length ; i++)
{
var title = EF.get(this.wraps[i] , this.titles[i]);

if(!title.releaseTarget)
title.releaseTarget = this.target[i];

title.onmousedown = this.down;
}
document.onmousemove = this.move;
document.onmouseup = this.up;
},

proxy : function(area , drag , target)
{
this.wraps.push(area);
this.titles.push(drag);
target = target == undefined ? null : target;
this.target.push(target);

},

down: function (e){
if(EDrag.shadow)
EDrag.up();

e = EF.event(e);
current = e.srcElement || e.target;

EDrag.dragArea = EF.get( EF.getDragArea(current) );

if(EDrag.dragArea){
//记录下拖拽对象原始位置
EDrag.initialPosition = EDrag.dragArea.position();
//创建一个原对象的影子
EDrag.shadow = EDrag.fun.createShadow(EDrag.dragArea);
// 用影子替换原有对象并清空对象
EDrag.dragArea = EDrag.dragArea.parentNode.replaceChild(EDrag.shadow , EDrag.dragArea);
EDrag.shadow.html(”");
// 将原对象设为绝对
EDrag.dragArea.setStyle(”position” , “absolute”);
EDrag.dragArea.setStyle(”zIndex” , “100″);
EDrag.dragArea.setStyle(”left” , EDrag.initialPosition.x + “px”);
EDrag.dragArea.setStyle(”top” , EDrag.initialPosition.y + “px”);

EDrag.dragAreaId = EDrag.dragArea.id;
EDrag.dragAreaCopy = EDrag.dragArea.copy();

EDrag.dragArea.setStyle(”filter” , “alpha(opacity=70)”);
EDrag.dragArea.setStyle(”opacity” , “0.7″);

EDrag.dragAreaCopy.hidden();
EDrag.dragAreaCopy.setStyle(”position” , “absolute”);

EDrag.dragArea.setStyle(”margin” , “auto”);
// 添加原对象在文档未尾
EDrag.document.lastChild.appendChild(EDrag.dragArea);
// 鼠标的相对位置
EDrag.mouseOffset = e.offset(EDrag.initialPosition);
//保存release目标
EDrag.releaseTarget = current.releaseTarget;
EDrag.move(e);
}
},

move: function(e)
{
if(!EDrag.dragArea)
return false;

e = EF.event(e);
var position = e.offset(EDrag.mouseOffset);
if(position.x >= 0 && position.x <= EDrag.document.offsetWidth – EDrag.dragArea.offsetWidth)
EDrag.dragArea.setStyle(”left” , position.x +”px”);

if(position.y >= 0)
EDrag.dragArea.setStyle(”top” , position.y +”px”);

//遍厉目标对象所有子节点,给出拖曳层的目标层
for(var i in EDrag.releaseTarget)
{
var releaseTarget = EF.get(EDrag.releaseTarget[i]);

var cover = releaseTarget.getCoverElement(EDrag.dragArea);

if(cover && (EDrag.dragParent.last() != cover))
{
cover.parentNode.insertBefore(EDrag.shadow , cover);
}else if(cover && EDrag.dragParent.last() == cover)
{
EDrag.dragParent.appendChild(EDrag.shadow);
}
}
},

up: function()
{
if(!EDrag.shadow && !EDrag.dragArea)
return false;

EDrag.dragArea.setStyle(”zIndex” , “0″);
try{
EDrag.dragArea.setStyle(”position” , “static”);
EDrag.dragArea.parentNode.removeChild(EDrag.dragArea);
EDrag.dragAreaCopy.id = EDrag.dragAreaId;
EDrag.dragAreaCopy.removeAttribute(”style”);
EDrag.dragAreaCopy.show();
EDrag.dragParent.replaceChild(EDrag.dragAreaCopy , EDrag.shadow);
EDrag.shadow = null;
EDrag.dragAreaCopy.setStyle(”position” , “static”);
EDrag.init();
}catch(e){

}

}
}
/**
* 自带的移动样式
*/
EDrag.style = _EDrag.prototype = {
defaultTitle: {
border: “1px dotted #000;”,
cursor: “move”
},

defaultDotted: {
border: “1px dotted #CCC”,
background: “#EEE”
},

loadStyle: function()
{
for(var i=0 ; i < EDrag.titles.length ; i++)
{
var title = EF.get(EDrag.wraps[i] , EDrag.titles[i]);
if(title != undefined)
{
title.setStyle(”cursor” , EDrag.style.defaultTitle.cursor);
} else {
continue;
}
}
},

setBorder: function(element){
element.setStyle(”border” , EDrag.style.defaultDotted.border);
},

setBackground: function(element)
{
element.setStyle(”background” , EDrag.style.defaultDotted.background);
}
}
EDrag.fun = EF =  _EDrag.prototype = {

eventExt: function(e)
{
e.position = function()
{
e = this;
if(e.pageX || e.pageY){
return {x:e.pageX, y:e.pageY};
}
return {
x:e.clientX + document.body.scrollLeft – document.body.clientLeft,
y:e.clientY + document.body.scrollTop  – document.body.clientTop
};
},

e.offset = function(position)
{
e = this;
var mouse  = e.position();
return {x:parseInt(mouse.x – position.x), y:parseInt(mouse.y – position.y)};
}

return e;
},

event: function(e)
{
var e = e || window.event;
return EF.eventExt(e);
},

getDragArea: function(current)
{
do{
var name = current.id || current.tagName || current.name;
if(EDrag.wraps.search(name))
return EF.ext(current);
}while(current = current.parentNode)
},
search: function(search , array)
{

var flag = false;
array = array || this;

array.sort(function(x , y){
for (var i = 0; i < arguments.length; i++)
{
if(arguments[i].toString() == search)
flag = true;

}
return -1;
});
return flag;
},

_get: function()
{
return document.getElementById(arguments[0])
|| document.getElementsByTagName(arguments[0])
|| document.getElementsByName(arguments[0]);
},

ext: function(object)
{

object.setStyle = function(type , value)
{
eval(”object.style.”+type+”=’”+value+”‘”);
}

object.position = function()
{
return EF.position(this);
}

object.html = function(value)
{
if(value != undefined)
return object.innerHTML = value;

return object.innerHTML;
}

object.nodes = function()
{
var nodes = [];

for(i = 0 ; i < this.childNodes.length ; i++)
{
var name = this.childNodes[i].toString();

if(name.indexOf(”Text”) == -1 && name.indexOf(”HTMLCollection”) == -1)
{
nodes.push(this.childNodes[i]);
}
}
return nodes;
}

object.last = function()
{
var nodes = this.nodes();
return nodes[ nodes.length - 1 ];
},

object.hidden = function()
{
this.setStyle(”display” , “none”);
},

object.show = function()
{
this.setStyle(”display” , “block”);
},

object.copy = function()
{
return EF.get(this.cloneNode(true));
},

object.getCoverElement= function(current)
{
if(this.childNodes == undefined)
return false;

var nodes = this.nodes();
for(i = 0 ; i < nodes.length ; i++)
{
var target = EF.get( nodes[i] );
var name = target.toString();

current = EF.ext(current);
current.position = current.position();
/**
* 相对的y坐标
*/
try{
var left = target.getTopArea().centerX – current.position.x;
var top = target.getTopArea().centerY – current.position.y ;

if((left < current.offsetWidth && left > 0 ) && (top -  target.offsetWidth / 4 < current.offsetHeight && top > 0))
{
EDrag.dragParent = this;
return target;
}else if((left < current.offsetWidth && left > 0 ) && (top < 0 && top >= 0 – target.offsetHeight / 6))
{
EDrag.dragParent = this;
return target;
}
}
catch(e){ }
}
return false;
}

object.getTopArea = EF.getTopArea;

return object;
},

get: function(element , sonElement)
{
var type = typeof element;

if (type.indexOf(”object”) != -1)
{
this.object = element;
this.ext(this.object);
return this.object;
}

if (arguments.length > 1)
{
if (this._get(element).length == undefined) {
this.object = this._get(element).getElementsByTagName(sonElement)[0];
this.ext(this.object);
return this.object;
} else {
this.object = this._get(element)[0].getElementsByTagName(sonElement)[0];
this.ext(this.object);
return this.object;
}
}
this.object = this._get(element) || this._get(element)[0];
this.ext(this.object);
return this.object;
},

position: function(e)
{
var p = {x:0 , y:0};
while (e.offsetParent)
{
p.x += e.offsetLeft;
p.y  += e.offsetTop;
e = e.offsetParent;
}

if (p.x != “” && p.y != “”)
{
return p;
}
},

createBox: function()
{
var box = document.createElement(”div”);
document.documentElement.lastChild.appendChild(box);
return EF.get(box);
},

createShadow: function(current)
{
if (oldShadow = document.getElementById(”EDragShadow”))
{
oldShadow.parentNode.removeChild(oldShadow);
}

current = EF.get(current);

var shadow = current.copy();
shadow = EF.get(shadow);
shadow.id = “EDragShadow”;
shadow.setStyle(”width” , current.offsetWidth – 6 + “px”);
shadow.setStyle(”height” , current.offsetHeight – 6 + “px”);
EDrag.style.setBorder(shadow);
EDrag.style.setBackground(shadow);
return shadow;
},
/**
* 获取单个对象顶部区域,x,y轴中心点
* @param {Object} element
*/
getTopArea: function(element)
{
try{
element = element || this;
element = EF.get(element);
/**
* 对象左边、顶部坐标
*/
var position = element.position();
/**
* 对象的宽和高度
*/
var offset = {x:element.offsetWidth , y:element.offsetHeight};

/**
* x轴中心点
*/
element.centerX = parseInt(position.x + offset.x / 2);
element.centerY = parseInt(position.y + offset.y / 2);

return element;
}catch(e){}

},

isGecko: function()
{
return navigator.userAgent.indexOf(”Gecko”) == -1 ? false :true;
},

isOpera: function()
{
return navigator.userAgent.indexOf(”Opera”) == -1 ? false :true;
},

isIE: function()
{
return document.all ?  true : false;
},

onReady: function(newFunction)
{
if(newFunction == undefined)
return false;

this.domReady = false;

if(functions == undefined)
var functions = [];

functions.push(newFunction);

var initial = function()
{
for(var i in functions)
{
functions[i]();
}
}

this.ready = function()
{
if(this.domReady)
initial();

if (EF.isGecko() || EF.isOpera()) {
try {
document.removeEventListener(’DOMContentLoaded’, initial);
}catch(e){}

document.addEventListener(’DOMContentLoaded’, initial, false);
this.domReady = true;
}
else if (EF.isIE()) {

var timer = window.setInterval(function()
{
try {
document.body.doScroll(”left”);
initial();
window.clearInterval(timer);
this.domReady = true;
}
catch (e) {}
}
, 5);
}
}
this.ready();

}
}
Array.prototype.search = EDrag.fun.search;
var dropArea = ["wrap","wrap2"];
EDrag.proxy(”drag1″,”h1″,["wrap"]);
EDrag.proxy(”drag2″,”h1″,dropArea);
EDrag.proxy(”drag3″,”h1″,dropArea);
EDrag.proxy(”drag4″,”h1″,dropArea);
EDrag.proxy(”drag5″,”h1″,["wrap2"]);
EDrag.proxy(”drag6″,”h1″,dropArea);
EDrag.proxy(”drag7″,”h1″,dropArea);
EDrag.proxy(”drag8″,”h1″,dropArea);
EF.onReady(function(){EDrag.init();});

</script>
</head>
<body>
<table width=”778″ border=”0″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td valign=”top”> <div  id=”wrap”>
<div id=”drag1″>
<h1>我不可以拖到右边</h1>
<p>
设置拖放对象以限制拖放区域
</p>
<p>
例:EDrag.proxy( wrap , title , releaseTarget );
</p>
<p>
releaseTarget 为拖放区域的id,tagName,name数组
</p>
</div>
<div id=”drag2″>
<h1>拖放对象说明</h1>
<p id=”msg4″>
拖放对象继承原对象的所有css特性
</p>
<p>
但似乎对float无效,比要的时候可以外加一个table
</p>
<p>
继承对象保证拖放后的对象和别原对象的一致性
</p>
</div>
<div id=”drag3″>
<h1>将一个层交给eDarg代理</h1>
<p>
EDrag.proxy( wrap , title , releaseTarget );
</p>
<p>
wrap 为可以拖动的层,推荐使用ID
</p>
<p>
title 标题,为鼠标放在上面可以拖动的对象,推荐使用tagName ,releaseTarget上面有说明
</p>
</div>
<div id=”drag4″>
<h1>初始化EDrag拖曳</h1>
<p>
EDrag.init();
</p>
<p>
说明:init() 需要在proxy()方法后面调用
</p>
<p>
这样的结构应该非常易用
</p>
</div>
</div>

</td>
<td  valign=”top”>
<div  id=”wrap2″>
<div id=”drag5″>
<h1>我不可以拖到左边</h1>
<p>
附带函数对象 EDrag.fun 简写EF
</p>
<p>
EF.get();可以支持两个参数,一个参数也可以
</p>
<p>
如:EF.get(”wrap” , “h1″); 表示在wrap元素内部的h1元素
</p>
</div>
<div id=”drag6″>
<h1>EF.get函数说明</h1>
<p>
凡是通过EF.get()函数获得的对象都是经过dom扩展的
</p>
<p>
具有一些基本的扩展功能
</p>
<p>
例如:EF.get(”wrap”).html(”demo”);
EF.get(”wrap”).setStyle(”margin” , “auto”);
</p>
</div>
<div id=”drag7″>
<h1>优势</h1>
<p>
拖曳后的节点上的对象和原对象完全相同,不会影响原排版
</p>
<p>
其它的没什么了,只是感觉比较易用
</p>
<p>

</p>
</div>
<div id=”drag8″>
<h1>新加入onReady函数</h1>
<p>
onReady类似jquery的ready ,使用onReady的优势在于可以在DOM加载完后运行多个函数,
而已运行速度比window.onload快得多
</p>
<p id=”msg”>

</p>
<p>

</p>
</div>
</div>

</td>
</tr>
</table>
</body>
</html>

分类: JavaScript 标签:

php无法载入扩展,如mysql扩展

2009年9月22日 CanleiSky 没有评论

问题原因:未设置系统环境变量或未将PHP根目录下所有.exe .dll文件copy到windows目录。
解决办法:
1.设置环境变量(推荐),我的电脑,高级,环境变量,双击Path栏,再后面加上你的PHP目录,如:c:\PHP。
1.复制PHP安装目录下所有.exe .dll文件到c:\windows目录。
很久没有重装过PHP,大约有一年的时间了吧,凭着残存的记忆开始安装Apache+PHP+MYSQL环境,apache安装很顺利,为apache增 加PHP模块是按照PHP目录中的install.txt中介绍的方法(太久了也不记得是AddType appliaction/???什么了,LoadModule还是记得的:(),将php.ini修改好后放入c:/windows目录,写一段 phpinfo();发现mysql扩展未被加载,尝试打开其它一些扩展,有的能正常加载,有的不能加载,非常郁闷现在不能上网,能上网找资料早解决的, 原本还以为是PHP版本的问题,换了N个PHP版本后问题依然存在,最后设置了一下系统环境变量,在Path环境变量后加上C:\PHP,重启再查看 phpinfo();mysql扩展已经正确加载了,哦现在想起来以前安装PHP的时候似乎都把C:\PHP目录下的所有.exe .dll文件全部copy到windows目录下的。

分类: PHP 标签:

nginx支持CI重写

2009年9月10日 CanleiSky 没有评论

本人采用NPMserv 0.3.2来运行CI框架,在NPMserv设置里不能给rewrite加条件,所以只能手动改配置文件vhost.conf;

下面是一个功能的例子:
server { #创建一个服务
listen       80; #监听80端口
server_name  www.test.com; #绑定域名
location / { #设置根目录
root   D:/wwwroot/mgdd; #根目录位置
index  index.html index.htm index.php; #文件查找顺序

# 如果文件、目录不存在则执行重写

if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
}
# 设置错误页面
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
# 处理PHP程序
location ~ .*\.php {
root           D:/wwwroot/mgdd;
fastcgi_pass   127.0.0.1:9000; # FastCGI 服务信息
fastcgi_index  index.php;
# 为PHP程序提供一些常用的服务器变量
fastcgi_param  SCRIPT_FILENAME  D:/wwwroot/mgdd$fastcgi_script_name; # 执行的脚本名称
fastcgi_param  PATH_INFO          $request_uri; # 此参数非常重要,无此参数可能导致CI无法静态化
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
}
}

分类: 服务器 标签: