在向大家详细介绍CentOS ulimit之前,首先让大家了解下CentOS ulimit,然后全面介绍CentOS ulimit,希望对大家有用。CentOS ulimit值(Linux文件句柄数量)在CentOS5(RHEL5)中的调整。
在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文件打开数到900多时速能就非常快的下降,有可能打不开网页.
其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量.
查看方法
我们可以用CentOS ulimit -a来查看所有限制值
[root@centos5 ~]# Centos ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
max nice (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 4096
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
max rt priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited||<
其中 "open files (-n) 1024 "是Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目).这个值可用CentOS ulimit命令来修改,但CentOS ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效.
系统总限制是在这里,/proc/sys/fs/file-max.可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制.
另外还有一个,/proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量
查找文件句柄问题的时候,还有一个很实用的程序lsof.可以很方便看到某个进程开了那些句柄.也可以看到某个文件/目录被什么进程占用了.
修改方法
若要令修改CentOS ulimits的数值永久生效,则必须修改配置文档,可以给CentOS ulimit修改命令放入/etc/profile里面,这个方法实在是不方便,还有一个方法是修改/etc/sysctl.conf .我修改了,测试过,但对用户的CentOS ulimits -a 是不会改变的。只是/proc/sys/fs/file-max的值变了.(我给命令放到rc.local中失败)
我认为正确的做法,应该是修改/etc/security/limits.conf
里面有很详细的注释,比如
* soft nofile 32768
* hard nofile 65536
也可以直接运行下面这个shell。直接copy到你的终端中运行就好了.
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf
就可以将文件句柄限制统一改成软32768,硬65536.配置文件最前面的是指domain,设置为星号代表全局,另外你也可以针对不同的用户做出不同的限制注意.这个当中的硬限制是实际的限制,而软限制,是warnning限制,只会做出warning.其实CentOS ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软默认显示的是软限制,如果运行CentOS ulimit命令修改的时候没有加上的话,就是两个参数一起改变.生效
修改完重新登录就可以见到.(我的系统是CentOS5.1.修改了,重新登录后就立刻生效.可以用CentOS ulimit -a 查看确认.)
如果你使用squid的话,你要在/etc/init.d/squid的文件加入CentOS ulimit -HSn 65535.另外,在squid.conf中也要加入max_filedesc 16384
freebsd下的ulimit命令在哪里?
今天,一个网友问我freebsd的ulimit怎么没有,其实这个问题随便google一下就有了,网上现成就有答案的。
首先要看用的是什么shell,很多shell都有内部命令ulimit,不过freebsd的默认shell 是csh,它的对应内部命令是limit不是ulimit,freebsd还有一个外部命令limits,freebsd中需要改变这些资源使用限制只能用外部命令,内部命令改不了,如果你一定要用ulimit的话,就只能安装有ulimit内部命令的shell,比如bash,sh。
在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文件打开数到900多时速能就非常快的下降,有可能打不开网页.
其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量.
查看方法
我们可以用CentOS ulimit -a来查看所有限制值
[root@centos5 ~]# Centos ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
max nice (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 4096
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
max rt priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited||<
其中 "open files (-n) 1024 "是Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目).这个值可用CentOS ulimit命令来修改,但CentOS ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效.
系统总限制是在这里,/proc/sys/fs/file-max.可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制.
另外还有一个,/proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量
查找文件句柄问题的时候,还有一个很实用的程序lsof.可以很方便看到某个进程开了那些句柄.也可以看到某个文件/目录被什么进程占用了.
修改方法
若要令修改CentOS ulimits的数值永久生效,则必须修改配置文档,可以给CentOS ulimit修改命令放入/etc/profile里面,这个方法实在是不方便,还有一个方法是修改/etc/sysctl.conf .我修改了,测试过,但对用户的CentOS ulimits -a 是不会改变的。只是/proc/sys/fs/file-max的值变了.(我给命令放到rc.local中失败)
我认为正确的做法,应该是修改/etc/security/limits.conf
里面有很详细的注释,比如
* soft nofile 32768
* hard nofile 65536
也可以直接运行下面这个shell。直接copy到你的终端中运行就好了.
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf
就可以将文件句柄限制统一改成软32768,硬65536.配置文件最前面的是指domain,设置为星号代表全局,另外你也可以针对不同的用户做出不同的限制注意.这个当中的硬限制是实际的限制,而软限制,是warnning限制,只会做出warning.其实CentOS ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软默认显示的是软限制,如果运行CentOS ulimit命令修改的时候没有加上的话,就是两个参数一起改变.生效
修改完重新登录就可以见到.(我的系统是CentOS5.1.修改了,重新登录后就立刻生效.可以用CentOS ulimit -a 查看确认.)
如果你使用squid的话,你要在/etc/init.d/squid的文件加入CentOS ulimit -HSn 65535.另外,在squid.conf中也要加入max_filedesc 16384
freebsd下的ulimit命令在哪里?
今天,一个网友问我freebsd的ulimit怎么没有,其实这个问题随便google一下就有了,网上现成就有答案的。
首先要看用的是什么shell,很多shell都有内部命令ulimit,不过freebsd的默认shell 是csh,它的对应内部命令是limit不是ulimit,freebsd还有一个外部命令limits,freebsd中需要改变这些资源使用限制只能用外部命令,内部命令改不了,如果你一定要用ulimit的话,就只能安装有ulimit内部命令的shell,比如bash,sh。
前面说到我放弃IIS全面转向apache了,随后因为小丫头的出生,一直都比较忙,也没空仔细检查。这两天稍微闲了点,让我发现居然有两处乱码问题:一处是后台编辑文章处的“热门标签”,中文标签全部乱码;另一处则是安装的WP-RecentComments插件,在侧边栏首页显示正常,但一点下一页后就会变乱码了。
经过查询得知都是因为apache编码设置的问题,因为原本我服务器上的apache上运行的一套系统文件编码是gb2312,httpd.conf中设置AddDefaultCharset gb2312,从而导致wp中某些模块无法正常以utf-8编码解析。折腾了一下午,总算是解决了让apache同时支持GBK和UTF-8编码。
以下为具体解决方法:
1、httpd.conf中设置AddDefaultCharset off,并在原gb2312编码系统所设置的虚拟主机字段中加入AddDefaultCharset gb2312。
2、注释掉php.ini文件中的default_charset = “gb2312″
3、重启apache服务,搞定!
来源:http://looki.cn/348.html
经过查询得知都是因为apache编码设置的问题,因为原本我服务器上的apache上运行的一套系统文件编码是gb2312,httpd.conf中设置AddDefaultCharset gb2312,从而导致wp中某些模块无法正常以utf-8编码解析。折腾了一下午,总算是解决了让apache同时支持GBK和UTF-8编码。
以下为具体解决方法:
1、httpd.conf中设置AddDefaultCharset off,并在原gb2312编码系统所设置的虚拟主机字段中加入AddDefaultCharset gb2312。
2、注释掉php.ini文件中的default_charset = “gb2312″
3、重启apache服务,搞定!
使用AddCharset变量将字符编码应用到指定后缀名的当前目录以及子目录的所有文件上。比如,为所有后缀名为.html的文件指定UTF-8字符编码,我们可以在.htaccess文件中加入一下代码:
AddCharset UTF-8 .html
后缀名可以是包括或者省略前面的”.”. 我们也可以在一行中同时指定多个后缀名。在一般情况下,最好将Apache的默认字符编码设置为UTF-8;
AddDefaultCharset utf-8
AddDefaultCharset可以为On/Off或者任何在IANA注册的,在MIME介质类型中使用的字符值。当且仅当响应的content-type是text/plain或text/html时,它会为介质类型字符参数指定默认的值。这个值会覆盖在响应中通过META指定的字符集,当然最后的行为还要取决于用户使用的客户端/游览器设置。当AddDefaultCharset为Off时,将关闭这个功能;设置为On时,将使用默认的字符集iso-8859-1;或为AddDefaultCharset指定可选的字符集比如UTF-8。
通过使用AddType也可以实现字符编码设置,这个参数会同时指定字符编码和MIME类型。
AddType 'text/html; charset=UTF-8' html
在Apache中,我们也可以为某一个特定的文件设置字符编码。比如,我们希望在一个文件夹中,只对文件example.html使用UTF-8,而其他文件仍然是用默认编码。我们可以编辑这个文件夹下的.htaccess文件,并添加如下内容:
<Files "example.html">
AddCharset UTF-8 .html
</Files>
通过以下配置,可以实现同样的效果:
<Files "example.html">
ForceType 'text/html; charset=UTF-8'
</Files>
我们也可以使用正则表达式为多个文件指定编码。例如:
<FilesMatch ".(htm|html|css|js)$">
AddCharset UTF-8 .html
</FilesMatch>
或
<FilesMatch ".(htm|html|css|js)$">
ForceType 'text/html; charset=UTF-8'
</FilesMatch>
注:需要注意的是配置参数的顺序对于结果起到重要的作用。比如在配置文件中有如下设置:
AddCharset UTF-8 .utf8
AddCharset windows-1252 .html
在这种配置下,文件example.utf8.html将使用windows-1252,而example.html.utf8将使用UTF-8字符编码;
AddCharset UTF-8 .html
后缀名可以是包括或者省略前面的”.”. 我们也可以在一行中同时指定多个后缀名。在一般情况下,最好将Apache的默认字符编码设置为UTF-8;
AddDefaultCharset utf-8
AddDefaultCharset可以为On/Off或者任何在IANA注册的,在MIME介质类型中使用的字符值。当且仅当响应的content-type是text/plain或text/html时,它会为介质类型字符参数指定默认的值。这个值会覆盖在响应中通过META指定的字符集,当然最后的行为还要取决于用户使用的客户端/游览器设置。当AddDefaultCharset为Off时,将关闭这个功能;设置为On时,将使用默认的字符集iso-8859-1;或为AddDefaultCharset指定可选的字符集比如UTF-8。
通过使用AddType也可以实现字符编码设置,这个参数会同时指定字符编码和MIME类型。
AddType 'text/html; charset=UTF-8' html
在Apache中,我们也可以为某一个特定的文件设置字符编码。比如,我们希望在一个文件夹中,只对文件example.html使用UTF-8,而其他文件仍然是用默认编码。我们可以编辑这个文件夹下的.htaccess文件,并添加如下内容:
<Files "example.html">
AddCharset UTF-8 .html
</Files>
通过以下配置,可以实现同样的效果:
<Files "example.html">
ForceType 'text/html; charset=UTF-8'
</Files>
我们也可以使用正则表达式为多个文件指定编码。例如:
<FilesMatch ".(htm|html|css|js)$">
AddCharset UTF-8 .html
</FilesMatch>
或
<FilesMatch ".(htm|html|css|js)$">
ForceType 'text/html; charset=UTF-8'
</FilesMatch>
注:需要注意的是配置参数的顺序对于结果起到重要的作用。比如在配置文件中有如下设置:
AddCharset UTF-8 .utf8
AddCharset windows-1252 .html
在这种配置下,文件example.utf8.html将使用windows-1252,而example.html.utf8将使用UTF-8字符编码;
来源:http://looki.cn/348.html
参考:http://www.jackxiang.com/post/3170/
除了网上流传的环境配置以外,
在PHP程序中加上 ini_set('default_charset','utf-8');
将包含unicode码的文件统一转换成utf8格式,这里需要注意的是editplus保存的utf8文件不带BOM头,
这在大多数情况下不会有什么问题,而在模板输出时会有乱码现象,除了检查模板文件中utf8的标记之外,利用editplus来保存模板时没有BOM头也是一个原因,原因在于模板解析时,PHP读取文件时,没有检查到BOM头,会把该文件当成ansi格式处理,这样最终向浏览器输出的HTML就成了乱码。
另一篇文章:
我的页面代码如下
[Copy to clipboard] [ - ]CODE:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href=http://bbs.chinaunix.net/"script/css.css" />
<script type="text/javascript" src=http://bbs.chinaunix.net/"script/menu.js"></script>
</head>
<body class="leftbgcolor">
<div><imgsrc=http://bbs.chinaunix.net/"image/gl.gif" border="0"/>관리센터</div>
编码选择utf-8,但是打开时ie自动选择的却是gb2312出现乱码,在DW里我选取择"包括Unicode签名(BOM)"后,ie自动选择utf8就不会出现乱码,我不想使用BOM,因为使用BOM后,session又会提示警告。大家说应该怎么办呢?
先去除 BOM。然后再加入:
[Copy to clipboard] [ - ]CODE:header('Content-Type: text/html; charset=UTF-8');
即可。
httpd.conf
AddDefaultCharset GB2312
PHP.INI
default_charset = "gb2312 "
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果你在网上搜索 “apache配置”,搜到的页面大多都会建议你在httpd.conf中加上这么一句:AddDefaultCharset GB2312。对于新手而且是只用GB2312编码的开发人来说,这么做是ok的。
但是如果要想使用UTF-8字符集的话,比如 在test.php文件中需要有
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ 这段代码。这时你再打开浏览器访问test.php页面的话,你看到的是正确的页面。但是如果实际上浏览器还是以GB2312编码解释从服务器返回的response,为什么呢?原因是浏览器是根据http应答消息头部中的 Content-type: text/html; charset=GB2312 来决定使用何种编码解释应答,也就是说apache服务器仍然用GB2312编码传递数据。
所以说如果apache的默认字符集被设置成了GB2312,即使在页面中声明使用UTF-8编码,apache服务器还是会按照GB2312编码来传送http response。
没 关系,我们把AddDefaultCharset GB2312 改成 AddDefaultCharset UTF-8,看看什么结果?如果你看到乱码恭喜你,你还知道是乱码问题;如果你看到是空白页面,那么你就惨了,你可能会以为这是其他什么原因造成的,而不 会从编码的角度去考虑怎么解决问题。这是为什么?
原因在于php文件本身是用系统字符集来编码的,中文的windows XP都是用GB2312,每一个文件头部都有字段指示该文件是用何种方式编码的。当apache接到浏览器的请求后,会让php去解释所请求的页面,比如 test.php。php会识别出test.php的编码方式是GB2312后(就像我们用javac编译java源文件时,编译器默认用系统编码读源文 件里的内容。如果源文件不是用系统编码来保存的,可以用命令javac -encoding指定具体的编码),把数据以GB2312的编码格式传递给apache,而apache服务器不会改变从php传来的数据,只是在应答 消息头部中把字符集设置成UTF-8: Content-type: text/html; charset=UTF-8. 也就是说你传递的是GB2312编码的数据,而浏览器却以UTF-8编码来解释应答消息。
由 于UTF-8为3个字节表示一个汉子,而普通的GB2312或BIG5是两个。页面输出时,由于上述原因,出现半个汉字的情况,这时该半个汉字会和的 >结合成一个乱码字,导致IE无法读完的话,会发现实际上整个叶面全部已经输出了。如果使用的是Mozilla、Mozilla Firefox、Sarafi的浏览器这不会造成这个问题,而是一堆乱码。这是由于Firefox浏览器和IE解析网页编码的策略不同产生的。
OK,我们把test.php以UTF-8保存,再用浏览器访问时,就没有问题了。可这样做,会使得apache目录下的所有web应用只能用同一种编码。如何搞定?
解决办法:
首先,可以使用AddDefaultCharset off来 关闭默认文件编码,这样apache服务器就不会在http应答消息头部设置charset,只是设置Content-type: text/html. 而浏览器就会依靠html文件中设置的harset来决定编码。其次,脚本php.ini文件中的default_charset = “UTF-8″作用同httpd.conf文件,把该行注释掉,使php自动识别文件的编码方式。
这样不论你用什么编码方式,只要test.php中的
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ 与你test.php文件编码方式相同,就不会产生乱码问题。
用户提交数据的编码
浏 览器提交的字符编码由客户端的characher encoding决定。例如,当前浏览器的编码是Gb2312,用户提交数据后,无论apache设置的编码方式是GB2312还是UTF-8,这时在服 务器端接收到的仍是以Gb2312编码的数据。如果要在返回页面上显示用户刚才提交的数据,而该页面是用UTF-8编码,或者要在数据库中存储的用户提交 的数据,而数据库是UTF-8编码的,那就要做字符转换了。
除了网上流传的环境配置以外,
在PHP程序中加上 ini_set('default_charset','utf-8');
将包含unicode码的文件统一转换成utf8格式,这里需要注意的是editplus保存的utf8文件不带BOM头,
这在大多数情况下不会有什么问题,而在模板输出时会有乱码现象,除了检查模板文件中utf8的标记之外,利用editplus来保存模板时没有BOM头也是一个原因,原因在于模板解析时,PHP读取文件时,没有检查到BOM头,会把该文件当成ansi格式处理,这样最终向浏览器输出的HTML就成了乱码。
另一篇文章:
我的页面代码如下
[Copy to clipboard] [ - ]CODE:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href=http://bbs.chinaunix.net/"script/css.css" />
<script type="text/javascript" src=http://bbs.chinaunix.net/"script/menu.js"></script>
</head>
<body class="leftbgcolor">
<div><imgsrc=http://bbs.chinaunix.net/"image/gl.gif" border="0"/>관리센터</div>
编码选择utf-8,但是打开时ie自动选择的却是gb2312出现乱码,在DW里我选取择"包括Unicode签名(BOM)"后,ie自动选择utf8就不会出现乱码,我不想使用BOM,因为使用BOM后,session又会提示警告。大家说应该怎么办呢?
先去除 BOM。然后再加入:
[Copy to clipboard] [ - ]CODE:header('Content-Type: text/html; charset=UTF-8');
即可。
httpd.conf
AddDefaultCharset GB2312
PHP.INI
default_charset = "gb2312 "
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果你在网上搜索 “apache配置”,搜到的页面大多都会建议你在httpd.conf中加上这么一句:AddDefaultCharset GB2312。对于新手而且是只用GB2312编码的开发人来说,这么做是ok的。
但是如果要想使用UTF-8字符集的话,比如 在test.php文件中需要有
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ 这段代码。这时你再打开浏览器访问test.php页面的话,你看到的是正确的页面。但是如果实际上浏览器还是以GB2312编码解释从服务器返回的response,为什么呢?原因是浏览器是根据http应答消息头部中的 Content-type: text/html; charset=GB2312 来决定使用何种编码解释应答,也就是说apache服务器仍然用GB2312编码传递数据。
所以说如果apache的默认字符集被设置成了GB2312,即使在页面中声明使用UTF-8编码,apache服务器还是会按照GB2312编码来传送http response。
没 关系,我们把AddDefaultCharset GB2312 改成 AddDefaultCharset UTF-8,看看什么结果?如果你看到乱码恭喜你,你还知道是乱码问题;如果你看到是空白页面,那么你就惨了,你可能会以为这是其他什么原因造成的,而不 会从编码的角度去考虑怎么解决问题。这是为什么?
原因在于php文件本身是用系统字符集来编码的,中文的windows XP都是用GB2312,每一个文件头部都有字段指示该文件是用何种方式编码的。当apache接到浏览器的请求后,会让php去解释所请求的页面,比如 test.php。php会识别出test.php的编码方式是GB2312后(就像我们用javac编译java源文件时,编译器默认用系统编码读源文 件里的内容。如果源文件不是用系统编码来保存的,可以用命令javac -encoding指定具体的编码),把数据以GB2312的编码格式传递给apache,而apache服务器不会改变从php传来的数据,只是在应答 消息头部中把字符集设置成UTF-8: Content-type: text/html; charset=UTF-8. 也就是说你传递的是GB2312编码的数据,而浏览器却以UTF-8编码来解释应答消息。
由 于UTF-8为3个字节表示一个汉子,而普通的GB2312或BIG5是两个。页面输出时,由于上述原因,出现半个汉字的情况,这时该半个汉字会和的 >结合成一个乱码字,导致IE无法读完的话,会发现实际上整个叶面全部已经输出了。如果使用的是Mozilla、Mozilla Firefox、Sarafi的浏览器这不会造成这个问题,而是一堆乱码。这是由于Firefox浏览器和IE解析网页编码的策略不同产生的。
OK,我们把test.php以UTF-8保存,再用浏览器访问时,就没有问题了。可这样做,会使得apache目录下的所有web应用只能用同一种编码。如何搞定?
解决办法:
首先,可以使用AddDefaultCharset off来 关闭默认文件编码,这样apache服务器就不会在http应答消息头部设置charset,只是设置Content-type: text/html. 而浏览器就会依靠html文件中设置的harset来决定编码。其次,脚本php.ini文件中的default_charset = “UTF-8″作用同httpd.conf文件,把该行注释掉,使php自动识别文件的编码方式。
这样不论你用什么编码方式,只要test.php中的
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ 与你test.php文件编码方式相同,就不会产生乱码问题。
用户提交数据的编码
浏 览器提交的字符编码由客户端的characher encoding决定。例如,当前浏览器的编码是Gb2312,用户提交数据后,无论apache设置的编码方式是GB2312还是UTF-8,这时在服 务器端接收到的仍是以Gb2312编码的数据。如果要在返回页面上显示用户刚才提交的数据,而该页面是用UTF-8编码,或者要在数据库中存储的用户提交 的数据,而数据库是UTF-8编码的,那就要做字符转换了。
1.查看CPU信息命令
cat /proc/cpuinfo
2.查看内存信息命令
cat /proc/meminfo
3.查看硬盘信息命令
fdisk -l
cat /proc/cpuinfo
2.查看内存信息命令
cat /proc/meminfo
3.查看硬盘信息命令
fdisk -l
dmidecode |more
dmidecode |more
Handle 0x0005
DMI type 2, 20 bytes.
Base Board Information
Manufacturer: Intel Corporation
Product Name: D945GPM
Version: AAD25924-102
Serial Number: AZPM61102417
dmidecode |more
Handle 0x0005
DMI type 2, 20 bytes.
Base Board Information
Manufacturer: Intel Corporation
Product Name: D945GPM
Version: AAD25924-102
Serial Number: AZPM61102417
dmidecode |more
[/usr/local/tads/htdocs/soa/soa1.3]# dmidecode |more
# dmidecode 2.7
SMBIOS 2.5 present.
66 structures occupying 3399 bytes.
Table at 0xCFB9C000.
Handle 0xDA00, DMI type 218, 11 bytes.
OEM-specific Type
Header and Data:
DA 0B 00 DA B2 00 17 00 0E 20 00
Handle 0x0000, DMI type 0, 24 bytes.
BIOS Information
Vendor: Dell Inc.
Version: 2.2.6
Release Date: 02/05/2008
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 1024 kB
Characteristics:
ISA is supported
PCI is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
EDD is supported
Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
5.25"/360 KB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 KB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
--More--
在使用 Zend Studio for Eclipse 的 “run as PHPUnit test” 功能时,前后遇到了几个错误:
点击 “run as PHPUnit test” 时,Zend Studio for Eclipse 假死,并且没有需要运行的 test 的统计数字。点击停止时,会提示 “No test executed, Either a fatal error occurred, the launch was stopped manually or the script execution was halted with a ‘die’/'exit’ statement.” 。 出现这种情况,是很难知道问题所在的,因为 console 中也没有任何错误提示。我也是因为偶然间在所有 test 之前加了一个空的 test case ,才发现了问题所在 “Call to undefined function curl_init()”,因为程序中调用了 curl。
但是,我的 php 是加载了 curl 的,问题依然没有解决,不过 console 中的一行字显示了问题所在 “AllTest.php [PHPUnit] /usr/local/Zend/ZendStudioForEclipse-6.1.0/plugins/org.zend.php.debug.debugger.linux.x86_5.2.14.v20080602/resources/php5/php-cgi” ,原来,Zend Studio for Eclipse 使用自带的 php 程序来执行调试功能的,所以才会出现 curl 没有加载的问题。
在 window/preferences 中,php 选项中的 PHP Executables 里面,我加入了自己的 php 可执行程序,运行一下,提示没有 ZendDebugger ,一番奋战之后,问题解决。
来源:http://www.codebit.cn/blog/?p=55
点击 “run as PHPUnit test” 时,Zend Studio for Eclipse 假死,并且没有需要运行的 test 的统计数字。点击停止时,会提示 “No test executed, Either a fatal error occurred, the launch was stopped manually or the script execution was halted with a ‘die’/'exit’ statement.” 。 出现这种情况,是很难知道问题所在的,因为 console 中也没有任何错误提示。我也是因为偶然间在所有 test 之前加了一个空的 test case ,才发现了问题所在 “Call to undefined function curl_init()”,因为程序中调用了 curl。
但是,我的 php 是加载了 curl 的,问题依然没有解决,不过 console 中的一行字显示了问题所在 “AllTest.php [PHPUnit] /usr/local/Zend/ZendStudioForEclipse-6.1.0/plugins/org.zend.php.debug.debugger.linux.x86_5.2.14.v20080602/resources/php5/php-cgi” ,原来,Zend Studio for Eclipse 使用自带的 php 程序来执行调试功能的,所以才会出现 curl 没有加载的问题。
在 window/preferences 中,php 选项中的 PHP Executables 里面,我加入了自己的 php 可执行程序,运行一下,提示没有 ZendDebugger ,一番奋战之后,问题解决。
来源:http://www.codebit.cn/blog/?p=55
一个网站要在一个静态的背景上加一个透明的Flash会显示动态的效果,按照常规方式加了后,在IE中能显示正常:
但是用Firefox浏览器却发现出现透明的Flash没有出现透明的效果,那究竟应该怎么加呢?
原来在ie中实现flash背景透明,是加这样一个值:
而在Mozilla Firefox浏览器中起作用的是这个标签 <embed></embed> 那这样,在<embed>标签内加入属性 wmode="transparent" 就可以实现flash背景透明,所以将修改代码如下:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="760" height="160">
<param name="movie" value="webjx_com.swf">
<param name="wmode" value="transparent"> //在IE中实现透明的代码
<embed src="webjx_com.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="760" height="160"></embed></object>
<param name="movie" value="webjx_com.swf">
<param name="wmode" value="transparent"> //在IE中实现透明的代码
<embed src="webjx_com.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="760" height="160"></embed></object>
但是用Firefox浏览器却发现出现透明的Flash没有出现透明的效果,那究竟应该怎么加呢?
原来在ie中实现flash背景透明,是加这样一个值:
<param name="wmode" value="transparent">
而在Mozilla Firefox浏览器中起作用的是这个标签 <embed></embed> 那这样,在<embed>标签内加入属性 wmode="transparent" 就可以实现flash背景透明,所以将修改代码如下:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="745" height="140">
<param name="movie" value="webjx_com.swf">
<param name="wmode" value="transparent">
<embed src="webjx_com.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="745" height="140" wmode="transparent" ></embed></object>
<param name="movie" value="webjx_com.swf">
<param name="wmode" value="transparent">
<embed src="webjx_com.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="745" height="140" wmode="transparent" ></embed></object>
1、基本上网模式:通过两家公用的路由器上网。2、增加下级路由(无线):因自家添置了笔记本,于是买了一个无线路由器,将公用路由牵出的网线插在无线路由WAN口上。3、下级路由连线方式:台式机用网线与无线路由连接,笔记本用无线连接。4、症状:两台机器均可正常上Internet网,但“网上邻居” 里,两台机器均无法显示和访问对方。5、参考:a.试过笔记本也用网线与无线路由连接,就可以与台式机互访。b.无线路由器型号是TP-LINK WR340G。
请教一下:我怎样才能在笔记本无线连接情况下做到与我的台式机互访?
1.你的笔记本是否正确连接到你自己的路由器上?
2.需要你们2个路由的地址,和是否开启了DHCP,才好判断.我估计是你的笔记本和你的台式电脑处在2个不同的网段了.比如笔记本在192.168.0.X,台式在192.168.1.X.
附上2个路由器的连接方法希望能帮上你
有2种设置方式:
假设网络是由路由器A拉到路由器B,路由器A地址为192.168.1.1,路由器都不需要改动
1. 把路由器A拉过来的线接在路由器wan口上,那么你设置路由器B的lan为192.168.0.1, 还要设置pppoe为静态的地址为192.168.1.X,和路由器A一个网段,这样保存重起路由应该就可以.(提示:访问路由器的话比如路由lan为 192.168.0.1那你的机器的IP要和他一个网段的比如192.168.0.X.)
2.把路由器A过来的线接到路由器B的任意非wan口上,设置B路由器的lan为192.168.0.1,关闭路由器B的dhcp功能,删除静态IP,DNS等,保存重起路由应该就可以. 实际就是把你的无线路由器当交换机用.
请教一下:我怎样才能在笔记本无线连接情况下做到与我的台式机互访?
1.你的笔记本是否正确连接到你自己的路由器上?
2.需要你们2个路由的地址,和是否开启了DHCP,才好判断.我估计是你的笔记本和你的台式电脑处在2个不同的网段了.比如笔记本在192.168.0.X,台式在192.168.1.X.
附上2个路由器的连接方法希望能帮上你
有2种设置方式:
假设网络是由路由器A拉到路由器B,路由器A地址为192.168.1.1,路由器都不需要改动
1. 把路由器A拉过来的线接在路由器wan口上,那么你设置路由器B的lan为192.168.0.1, 还要设置pppoe为静态的地址为192.168.1.X,和路由器A一个网段,这样保存重起路由应该就可以.(提示:访问路由器的话比如路由lan为 192.168.0.1那你的机器的IP要和他一个网段的比如192.168.0.X.)
2.把路由器A过来的线接到路由器B的任意非wan口上,设置B路由器的lan为192.168.0.1,关闭路由器B的dhcp功能,删除静态IP,DNS等,保存重起路由应该就可以. 实际就是把你的无线路由器当交换机用.
http://www.cnblogs.com/webflash/archive/2010/04/22/1717771.html
回忆未来 21:17:29
我想问问:如果我在php端a.php设置cookie,是不是一访问就会通过httpwatcher一看就立马出现cookie,还是需要刷新?这个是如何握手的,膘哥,能告诉我http协议的原理?
回忆未来 21:20:17
膘哥哥。
回忆未来 21:20:28
膘叔 21:20:46
你用httpwatcher监视一下就知道了呀。
膘叔 21:21:33
setcookie其实就是在刷新的时候向浏览器发出
Set-Cookie的头部请求。
膘叔 21:21:42
所以httpwatcher应该是可以监视得到的。
回忆未来 21:22:45
我没有刷新啊,我就在浏览器里面输入a.php,这下就能看到?
膘叔 21:24:23
他已经向header发送请求了。
膘叔 21:24:38
你用firebug看REQUEST
回忆未来 21:24:45
膘叔 21:24:46
再看返回的REsponse
回忆未来 21:24:57
是这样的吧?能看到的是吧
膘叔 21:25:37
你最好做一个空白页面测试一下
膘叔 21:25:56
我现在也没有办法给你答案。我自己也没有测试过
回忆未来 21:27:47
经常写,我觉得理论上是这样的。但是httpwacher好像第一次没有出现,刷新到别同域名的页面,于是我就开始怀疑了。情况就这么个情况,哈哈
-----------------------------------------------------------------------
BoPo<bopo2005@qq.com> 21:30:25
cookie是不是set的那个页面不能访问,其他页面都可以
BoPo<bopo2005@qq.com> 21:30:36
这是为什么呢
config.t(10202001) 21:32:02
第一次本地是没有cookie,读不到,票数说了 要 $_COOKIE['COO']='xxx' 先赋个值
BoPo<bopo2005@qq.com> 21:32:39
再跳回来也读取不到吗
config.t(10202001) 21:33:18
可以
回忆未来(372647693) 21:35:14
为什么,当时不可以,然后就可以了呢?给个解释
膘叔(19129540) 21:35:19
你可以尝试一下
<?php
setcookie('name','value',time()+1000,'/');
var_dump($_COOKIE);
膘叔(19129540) 21:35:29
运行后把setcookie注释掉。
膘叔(19129540) 21:35:35
再运行一次就知道了
申寒光(80748134) 21:36:25
谁管理过win2003的服务器?
申寒光(80748134) 21:36:41
我现在服务器出问题了,急得很!
膘叔(19129540) 21:37:11
03很难管理。
BoPo<bopo2005@qq.com> 21:37:18
我不用win很多年
回忆未来(372647693) 21:37:27
请用unix
---
cookie是向浏览器发送一个头,然后浏览器给请求的时候带上头返回在请求的时候。
我想问问:如果我在php端a.php设置cookie,是不是一访问就会通过httpwatcher一看就立马出现cookie,还是需要刷新?这个是如何握手的,膘哥,能告诉我http协议的原理?
回忆未来 21:20:17
膘哥哥。
回忆未来 21:20:28
膘叔 21:20:46
你用httpwatcher监视一下就知道了呀。
膘叔 21:21:33
setcookie其实就是在刷新的时候向浏览器发出
Set-Cookie的头部请求。
膘叔 21:21:42
所以httpwatcher应该是可以监视得到的。
回忆未来 21:22:45
我没有刷新啊,我就在浏览器里面输入a.php,这下就能看到?
膘叔 21:24:23
他已经向header发送请求了。
膘叔 21:24:38
你用firebug看REQUEST
回忆未来 21:24:45
膘叔 21:24:46
再看返回的REsponse
回忆未来 21:24:57
是这样的吧?能看到的是吧
膘叔 21:25:37
你最好做一个空白页面测试一下
膘叔 21:25:56
我现在也没有办法给你答案。我自己也没有测试过
回忆未来 21:27:47
经常写,我觉得理论上是这样的。但是httpwacher好像第一次没有出现,刷新到别同域名的页面,于是我就开始怀疑了。情况就这么个情况,哈哈
-----------------------------------------------------------------------
BoPo<bopo2005@qq.com> 21:30:25
cookie是不是set的那个页面不能访问,其他页面都可以
BoPo<bopo2005@qq.com> 21:30:36
这是为什么呢
config.t(10202001) 21:32:02
第一次本地是没有cookie,读不到,票数说了 要 $_COOKIE['COO']='xxx' 先赋个值
BoPo<bopo2005@qq.com> 21:32:39
再跳回来也读取不到吗
config.t(10202001) 21:33:18
可以
回忆未来(372647693) 21:35:14
为什么,当时不可以,然后就可以了呢?给个解释
膘叔(19129540) 21:35:19
你可以尝试一下
<?php
setcookie('name','value',time()+1000,'/');
var_dump($_COOKIE);
膘叔(19129540) 21:35:29
运行后把setcookie注释掉。
膘叔(19129540) 21:35:35
再运行一次就知道了
申寒光(80748134) 21:36:25
谁管理过win2003的服务器?
申寒光(80748134) 21:36:41
我现在服务器出问题了,急得很!
膘叔(19129540) 21:37:11
03很难管理。
BoPo<bopo2005@qq.com> 21:37:18
我不用win很多年
回忆未来(372647693) 21:37:27
请用unix
---
cookie是向浏览器发送一个头,然后浏览器给请求的时候带上头返回在请求的时候。
ctrl+k :向下
ctrl+shift+K:向上
ctrl+shift+K:向上
editplus是F3。shift+F3
感觉跟Redhat许多地方还是一样的, 比较一些配置文件的地址, rpm包, 不过有个yast工具,也比较方便阅读全文
这个东东的原理是这样滴,firefox安装一个插件,起作用的就下面几行
所以,只要在/tmp/目录生成一个refresh.firefox的文件,firefox便会刷新了
vim 里添加一行配置文件
"更改host文件时刷新
"更改调试文件时刷新
插件附上,根据情况自行修改。。
DownLoad:http://bluehua.org/wp-content/uploads/2009/04/autorefresh.zip
扩展名改成xpi拖到firefox就可以安装了,好像无法兼容,但是思想很好的,呵呵!
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("/tmp/refresh.firefox");
//浏览器开启时启动一个定时器
var timer = setInterval(function()
{
//每隔0.1秒检测一下这个文件存在否
if ( file.exists() )
{
//如果存在,删除之
file.remove(true);
//获取当前标签的文档对象
var doc = gBrowser.selectedBrowser.contentDocument;
//是否是在调试的东东
if ( /(xiaonei\.com|kaixin\.com)/.test( doc.location.href ) )
{
//如果是,调用dnsFluher,刷新host,如果没有安装此插件就算了
dnsFluher.refreshdns();
//刷新页面
doc.location.reload();
}
}
},100 );
file.initWithPath("/tmp/refresh.firefox");
//浏览器开启时启动一个定时器
var timer = setInterval(function()
{
//每隔0.1秒检测一下这个文件存在否
if ( file.exists() )
{
//如果存在,删除之
file.remove(true);
//获取当前标签的文档对象
var doc = gBrowser.selectedBrowser.contentDocument;
//是否是在调试的东东
if ( /(xiaonei\.com|kaixin\.com)/.test( doc.location.href ) )
{
//如果是,调用dnsFluher,刷新host,如果没有安装此插件就算了
dnsFluher.refreshdns();
//刷新页面
doc.location.reload();
}
}
},100 );
所以,只要在/tmp/目录生成一个refresh.firefox的文件,firefox便会刷新了
vim 里添加一行配置文件
"更改host文件时刷新
autocmd BufWritePost,FileWritePost /etc/hosts execute '!echo '' > /tmp/refresh.firefox'
"更改调试文件时刷新
autocmd BufWritePost,FileWritePost */jspro/*.js execute '!echo '' > /tmp/refresh.firefox'
插件附上,根据情况自行修改。。
DownLoad:http://bluehua.org/wp-content/uploads/2009/04/autorefresh.zip
扩展名改成xpi拖到firefox就可以安装了,好像无法兼容,但是思想很好的,呵呵!
写了一个简单的发送HTML邮件的PHP函数。
函数说明:send_mail("发件人地址", "收件人地址", "邮件主题", "邮件正文");
示例:send_mail($from, "info@s135.com", "这是邮件的主题", "<html><head></head><body><p><font color=red>这是邮件正文</font></p></body></html>");
代码如下:
这是要求运行代码的机器装有Mail服务器 ,前提应该是:
在php.ini里设置了smtp服务器,和连接smtp服务器的用户名和密码 .注意:$subject上需要做下编码, 不然容易乱码
来源:http://blog.s135.com/post/312/
函数说明:send_mail("发件人地址", "收件人地址", "邮件主题", "邮件正文");
示例:send_mail($from, "info@s135.com", "这是邮件的主题", "<html><head></head><body><p><font color=red>这是邮件正文</font></p></body></html>");
代码如下:
<?php
function send_mail($from, $to, $subject, $message)
{
if ($from == "")
{
$from = '回忆未来 <webmaster@s135.com>';//发件人地址
}
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=gb2312' . "\r\n";
$headers .= 'From: ' . $from . "\r\n";
mail($to, $subject, $message, $headers);
}
?>
function send_mail($from, $to, $subject, $message)
{
if ($from == "")
{
$from = '回忆未来 <webmaster@s135.com>';//发件人地址
}
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=gb2312' . "\r\n";
$headers .= 'From: ' . $from . "\r\n";
mail($to, $subject, $message, $headers);
}
?>
这是要求运行代码的机器装有Mail服务器 ,前提应该是:
在php.ini里设置了smtp服务器,和连接smtp服务器的用户名和密码 .注意:$subject上需要做下编码, 不然容易乱码
来源:http://blog.s135.com/post/312/
技术核心能力非可复制性强,让极致核心能力产生口碑。
各方面全面发展。有些东西可以等,但要判断优先秩序,这个要经常去调整。不是说定了大方向,就完了。
往往在顺境,就会觉得要do something,很容易陷入你就是做给别人看的,不一定很合理。我们其实还是倾向于稳妥。
融资关键是要尽量搞清楚,每个投资者对公司发展是有益的还是阻碍。
跟李彦宏很早就很熟了。我们两家公司都还很弱小的时候就经常聊天,就像同病相怜,看着那几个大佬在上面,我们几个在下面耕耘自己的那块地。但我们的发展思路有点像,而且双方比较投缘。
当年一起喝啤酒的时候,我们只是打工仔而已,都还不知道未来。丁磊后来的成功为我带来了启发,只要去做,没有什么事情是不可能的。
视频这东西太烧钱,等大家都奄奄一息的时候我再进入吧。
Google也承认它不是第一个做搜索的公司,竞价排名也不是它发明的,Overture早就有了,关键看谁整合得好。这个世界上没有一个公司有任何一个板块是完全独立自己创建的,都是别人或多或少都尝试过的。
就像日常生活中人们对水和电的依赖一样,我们要做成互联网上的水和电。
好的,多谢。我也让我们网站部不上了,但我们自卫核武还是要准备好的,希望永远用不上。
腾讯从来没有预设对手,或者任何的假想敌,腾讯人都认为最大的对手就是腾讯人自己。
管理方面的书,知道了也就够了。不会因为你知道,企业就能变得怎么样,还是得看你做的事情。
一开始学习管理。可能觉得有些浪费时间,因为这个不是具体做业务做事情,但到后面你发现不做不行。
没办法,因为有些专业知识,无论怎么补课,就是到不了那个级别。指望你的提高去迎合公司发展的风险太大,所以一定要请人来替换你的功能。
各方面全面发展。有些东西可以等,但要判断优先秩序,这个要经常去调整。不是说定了大方向,就完了。
往往在顺境,就会觉得要do something,很容易陷入你就是做给别人看的,不一定很合理。我们其实还是倾向于稳妥。
融资关键是要尽量搞清楚,每个投资者对公司发展是有益的还是阻碍。
跟李彦宏很早就很熟了。我们两家公司都还很弱小的时候就经常聊天,就像同病相怜,看着那几个大佬在上面,我们几个在下面耕耘自己的那块地。但我们的发展思路有点像,而且双方比较投缘。
当年一起喝啤酒的时候,我们只是打工仔而已,都还不知道未来。丁磊后来的成功为我带来了启发,只要去做,没有什么事情是不可能的。
视频这东西太烧钱,等大家都奄奄一息的时候我再进入吧。
Google也承认它不是第一个做搜索的公司,竞价排名也不是它发明的,Overture早就有了,关键看谁整合得好。这个世界上没有一个公司有任何一个板块是完全独立自己创建的,都是别人或多或少都尝试过的。
就像日常生活中人们对水和电的依赖一样,我们要做成互联网上的水和电。
好的,多谢。我也让我们网站部不上了,但我们自卫核武还是要准备好的,希望永远用不上。
腾讯从来没有预设对手,或者任何的假想敌,腾讯人都认为最大的对手就是腾讯人自己。
管理方面的书,知道了也就够了。不会因为你知道,企业就能变得怎么样,还是得看你做的事情。
一开始学习管理。可能觉得有些浪费时间,因为这个不是具体做业务做事情,但到后面你发现不做不行。
没办法,因为有些专业知识,无论怎么补课,就是到不了那个级别。指望你的提高去迎合公司发展的风险太大,所以一定要请人来替换你的功能。
我将两台电脑共享了,开启了Windows7的Guest和administrator帐户,现在每次开机都要选用户,请问怎样才能不选用户直接登陆我自己的用户名?
在开始——运行中输入lusrmgr.msc,在用户找到Administrator和Guest,右键,属性,勾上“帐户已禁用”,确定后退出。
注销,回到登录界面后就可以了……
全给勾上禁用后的结果是,锁定屏幕后直接回去就提示:你的账户已经禁用,哈哈。于是没办法,只好在网上google了一把,解决方法如下:
我是windows7的系统,不小心禁用了管理员帐号,怎么办?
看看能否在安全模式下启用administrator账户吧,安全模式开机按F8,然后再控制面板里面不要禁用那个管理员即可,哈哈。
在开始——运行中输入lusrmgr.msc,在用户找到Administrator和Guest,右键,属性,勾上“帐户已禁用”,确定后退出。
注销,回到登录界面后就可以了……
全给勾上禁用后的结果是,锁定屏幕后直接回去就提示:你的账户已经禁用,哈哈。于是没办法,只好在网上google了一把,解决方法如下:
我是windows7的系统,不小心禁用了管理员帐号,怎么办?
看看能否在安全模式下启用administrator账户吧,安全模式开机按F8,然后再控制面板里面不要禁用那个管理员即可,哈哈。