November 18, 2012
高性能JavaScript模板引擎原理解析
"\u003cp\u003e随着 web 发展,前端应用变得越来越复杂,基于后端的 javascript(Node.js) 也开始崭露头角,此时 javascript 被寄予了更大的期望,与此同时 javascript MVC 思想也开始流行起来。javascript 模板引擎作为数据与界面分离工作中最重要一环,越来越受开发者关注,近一年来在开源社区中更是百花齐放,在 Twitter、淘宝网、新浪微博、腾讯QQ空间、腾讯微博等大型网站中均能看到它们的身影。\u003c/p\u003e\n\u003cp\u003e本文将用最简单的示例代码描述现有的 javascript 模板引擎的原理,包括新一代 javascript 模板引擎 artTemplate 的特性实现原理,欢迎共同探讨。\u003c/p\u003e\n\u003ch2 id=\"arttemplate-介绍\"\u003eartTemplate 介绍\u003c/h2\u003e\n\u003cp\u003eartTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现。在 chrome 下渲染效率测试中分别是知名引擎 Mustache 与 micro tmpl 的 25 、 32 倍。\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"http://cdc.tencent.com/wp-content/uploads/2012/06/1.png\" alt=\"速度对比\"\u003e\u003c/p\u003e\n\u003cp\u003e除了性能优势外,调试功能也值得一提。模板调试 …\u003c/p\u003e"
November 10, 2012
使用mysql来实现lbs(地理位置服务)功能
"\u003cp\u003e现在大型的网站实现的lbs服务基本上是用mongodb的实现定位的(gps不太清楚)。对于小的应用来说,有些大材小用了,而且还大大增加了维护成本。这里用mysql来实现lbs的功能。\u003c/p\u003e\n\u003cp\u003e以下是从“知乎”网上的一篇文章()。\u003c/p\u003e\n\u003cp\u003e数据库设计层面,有两个方案\u003c/p\u003e\n\u003cp\u003e(1)字段主要包括 userId,lat,lng。分别代表用户ID、最近一次 Checkin 的经度、纬度。\nlat/lng 建立复合索引。\u003c/p\u003e\n\u003cp\u003e然后通过手机的定位,得到自己的位置,比如记为 myLat,myLng。\n代码如下,先做一个计算,算出 1km 所对应的经纬度范围:\n**double range = 180 / Math.PI * 1 / 6372.797; **\u003cem\u003e//里面的 1 就代表搜索 1km 之内,单位km\u003c/em\u003e\n\u003cstrong\u003edouble lngR = range / Math.cos(myLat * Math.PI / 180.0);\u003c/strong\u003e\n\u003cstrong\u003edouble maxLat = myLat + range;\u003c/strong\u003e\n\u003cstrong\u003edouble minLat = myLat – range;\u003c/strong\u003e\n\u003cstrong\u003edouble maxLng = myLng + lngR;\u003c/strong\u003e\n\u003cstrong\u003edouble …\u003c/strong\u003e\u003c/p\u003e"
November 5, 2012
jquery中validate插件和form插件冲突的解决办法
"\u003cp\u003e如题:用jquery form提交表单,用jquery validate做数据验证 ,现在的问题是分别使用validate有作用,一起使用,则validate不起作用,谁遇到过帮忙解决下。\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003e\n\u003cp\u003e $(document).ready(function() {\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e $(“#inputForm”).validate({\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e …\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e });\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e });\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e function onsubmit(){\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e var options ={\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e …\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e };\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e $(‘#inputForm’).ajaxSubmit(options); //options\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e return false;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e }\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e==================\u003c/p\u003e\n\u003cp\u003e补充一下,这个submitHandler:function(){}方法内可以写任何方法。但最后要有一个form.submit或form.ajaxSubmit\n比如我这个\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e$(document).ready(function(){ …\u003c/p\u003e\u003c/li\u003e\u003c/ol\u003e"
November 1, 2012
windows下node.js之 express框架+jade模板搭建
"\u003cp\u003e1、node.js安装\u003c/p\u003e\n\u003cp\u003e在Windows平台部署Node.js比较容易,从0.6.1开始,Node.js在Windows平台上可直接通过.mis文件安装。\u003c/p\u003e\n\u003cp\u003e下载地址 \u003ca href=\"http://nodejs.org/#download\"\u003ehttp://nodejs.org/#download\u003c/a\u003e 目前最新版本是 node-v0.8.3-x86.msi\u003c/p\u003e\n\u003cp\u003e文件在安装过程中已经指定了默认安装路径。\u003c/p\u003e\n\u003cp\u003e验证node.js 安装是否成功\u003c/p\u003e\n\u003cp\u003e打开cmd,直接输入\u003cstrong\u003enode -v\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e2.npm安装\u003c/p\u003e\n\u003cp\u003enode安装成功后npm已经默认安装,npm可以直接安装相关扩展\u003c/p\u003e\n\u003cp\u003e验证npm是否安装成功\u003c/p\u003e\n\u003cp\u003e打开cmd,直接输入\u003cstrong\u003enpm**** -v\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e3.express安装\u003c/p\u003e\n\u003cp\u003e打开cmd,直接输入\u003cstrong\u003enpm install -g express\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e-g:在当前目录下安装express框架\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2012/11/install_express_on_windows_for_nodejs.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2012/11/install_express_on_windows_for_nodejs.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e验证express是否安装成功\u003c/p\u003e\n\u003cp\u003e安装完成后,关闭cmd,在重新打开\u003c/p\u003e\n\u003cp\u003e进入cmd,直接输入\u003cstrong\u003eexpress -V\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e注意我这里用的大写V\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e4.用express创建项目\u003c/p\u003e\n\u003cp\u003e1).cmd进入要创建项目的目录,直接输入 express testapp(项目名称)\u003c/p\u003e\n\u003cp\u003e2)cd testapp //进入刚新建的站点目录\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e3)cmd app …\u003c/strong\u003e\u003c/p\u003e"
October 22, 2012
理解inode
"\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/Inode\"\u003einode\u003c/a\u003e 是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。\u003c/p\u003e\n\u003cp\u003e我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。\u003c/p\u003e\n\u003cp\u003e下面就是我的inode学习笔记,尽量保持简单。\u003c/p\u003e\n\u003cp\u003e===================================\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e理解inode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e作者:阮一峰\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2012/10/inode.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2012/10/inode.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、inode是什么?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e理解inode,要从文件储存说起。\u003c/p\u003e\n\u003cp\u003e文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。\u003c/p\u003e\n\u003cp\u003e操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。\u003c/p\u003e\n\u003cp\u003e文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节 …\u003c/p\u003e"
October 19, 2012
有效的MySQL备份与恢复
"\u003cp\u003e【TechTarget中国原创】如果您接手了一个 \u003ca href=\"http://www.searchdatabase.com.cn/showcontent_66381.htm\"\u003eMySQL\u003c/a\u003e 生产系统,但不确定它是否运行了MySQL备份策略,这时需要做哪些保障措施呢?在实施备份策略之前,一定要明确数据规模和存储引擎使用等先决条件。这会对系统在备份过程中的可用性产生直接影响。\u003c/p\u003e\n\u003cp\u003e在本文中,我们将介绍用于确定最小备份功能所需要的方法,其中包括:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e确定数据库规模\u003c/li\u003e\n\u003cli\u003e确定存储引擎使用率\u003c/li\u003e\n\u003cli\u003e锁定和停机时间影响\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMySQL备份方法\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e备份MySQL环境的策略有很多,这些策略与MySQL拓扑的服务器数量相关,有许多开源和商业工具可以执行备份操作。\u003c/p\u003e\n\u003cp\u003e假设目前您有一个单服务器环境,希望创建一个统一备份,那么您现在可以在所有MySQL环境中采用两种备份方法。第一种方法是停止MySQL实例,然后对整个文件系统执行冷备份。这样会让系统在特定时间段变成不可用状态,而且您必须确保复制了所有信息,其中包括MySQL数据、事务与二进制日志文件(如果有的话)和MySQL的当前配置。\u003c/p\u003e\n\u003cp\u003e第二种方法是使用MySQL标准安装所包含的客户端工具。使用mysqldump命令,可以在不停止MySQL实例的前提下创建一个统一的MySQL备份。然而,在运 …\u003c/p\u003e"
October 8, 2012
mysql explain 中key_len的计算
"\u003cp\u003e今天丁原问我mysql执行计划中的key_len是怎么计算得到的,当时还没有注意,在高性能的那本书讲到过这个值的计算,但是自己看执行计划的时候一直都没有太在意这个值,更不用说深讨这个值的计算了:\u003c/p\u003e\n\u003cp\u003eken_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段都被查询用到。\u003c/p\u003e\n\u003cp\u003e在查看官方文档的时候,也没有发现详细的key_len的计算介绍,后来做了一些测试,在咨询了丁奇关于变长数据类型的值计算的时候,突然想到innodb 行的格式,在这里的计算中有点类似,总结一下需要考虑到以下一些情况:(1).索引字段的附加信息:可以分为\u003cstrong\u003e变长\u003c/strong\u003e和\u003cstrong\u003e定长\u003c/strong\u003e数据类型讨论\n当索引字段为定长数据类型,比如char,int,datetime,需要有是否为空的标记,这个标记需要占用\u003cstrong\u003e1\u003c/strong\u003e个字节;\n对于变长数据类型,比如:varchar,除了是否为空的标记外,还需要有长度信息,需要占用\u003cstrong\u003e2\u003c/strong\u003e个字节;\u003c/p\u003e\n\u003cp\u003e(备注:当字段定义为非空的时候,是否为空的标记将不占用字节)\u003c/p\u003e\n\u003cp\u003e(2).同时还需要考虑表所使用的字符集,不同的字符集,gbk编码的为一个字符2个字节,utf8编码的一个字符3个字节;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e先 …\u003c/strong\u003e\u003c/p\u003e"
September 29, 2012
MySQL数据库性能优化之表结构优化
"\u003cp\u003e由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大,那么每次 IO 可访问的行数也就增多了。反过来说,处理相同行数的数据,需要访问的 page 就会减少,也就是 IO 操作次数降低,直接提升性能。此外,由于我们的内存是有限的,增加每个page中存放的数据行数,就等于增加每个内存块的缓存数据量,同时还会提升内存换中数据命中的几率,也就是缓存命中率。\u003c/p\u003e\n\u003cp\u003e** 数据类型选择**\u003c/p\u003e\n\u003cp\u003e数据库操作中最为耗时的操作就是 IO 处理,大部分数据库操作 90% 以上的时间都花在了 IO 读写上面。所以尽可能减少 IO 读写量,可以在很大程度上提高数据库操作的性能。\u003c/p\u003e\n\u003cp\u003e我们无法改变数据库中需要存储的数据,但是我们可以在这些数据的存储方式方面花一些心思。下面的这些关于字段类型的优化建议主要适用于记录条数较多,数据量较大的场景,因为精细化的数据类型设置可能带来维护成本的提高,过度优化也可能会带来其他的问题:\u003c/p\u003e\n\u003cp\u003e1、数字类型:非万不得已不要使用DOUBLE,不仅仅只是存 …\u003c/p\u003e"
September 17, 2012
MySQL索引背后的数据结构及算法原理
"\u003cp\u003e\u003cstrong\u003e摘要\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。\u003c/p\u003e\n\u003cp\u003e文章主要内容分为三个部分。\u003c/p\u003e\n\u003cp\u003e第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。\u003c/p\u003e\n\u003cp\u003e第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论\u003cstrong\u003e聚集索引\u003c/strong\u003e、\u003cstrong\u003e非聚集索引\u003c/strong\u003e及\u003cstrong\u003e覆盖索引\u003c/strong\u003e等话题。\u003c/p\u003e\n\u003cp\u003e第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e数据结构及算法基础\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e索引的本质\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMySQL官方对索引的定义为:**索引(Index)是帮助MySQL高效获取数据的数据结构。**提取句子主干,就可以得到索引的本质:索引是数据结构。\u003c/p\u003e\n\u003cp\u003e我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。 …\u003c/p\u003e"
September 16, 2012
linux下时间格式为24小时制的办法(centos)
"\u003cp\u003e下面是自己解决的方法\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etzselect\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e根据提示选择\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e5 –\u0026gt; 9–\u0026gt;1–\u0026gt;1–\u0026gt;ok\nrm /etc/localtime\nln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e这时就可以看到时间已经修改成为国内的时间了。时间也对的。时间为24小时制。\u003c/p\u003e"
September 12, 2012
百度地图API如何给自定义覆盖物添加事件
"\u003cp\u003e摘要:\u003c/p\u003e\n\u003cp\u003e给marker、lable、circle等Overlay添加事件很简单,直接addEventListener即可。那么,自定义覆盖物的事件应该如何添加呢?我们一起来看一看~\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、定义构造函数并继承Overlay\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e//定义自定义覆盖物的构造函数\u003c/li\u003e\n\u003cli\u003efunctionSquareOverlay(center, length, color){\u003c/li\u003e\n\u003cli\u003ethis._center = center;\u003c/li\u003e\n\u003cli\u003ethis._length = length;\u003c/li\u003e\n\u003cli\u003ethis._color = color;\u003c/li\u003e\n\u003cli\u003e}\u003c/li\u003e\n\u003cli\u003e//继承API的BMap.Overlay\u003c/li\u003e\n\u003cli\u003eSquareOverlay.prototype = newBMap.Overlay();\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003e二、初始化自定义覆盖物\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e//实现初始化方法\u003c/li\u003e\n\u003cli\u003eSquareOverlay.prototype.initialize = function(map){\u003c/li\u003e\n\u003cli\u003e//保存map对象实例\u003c/li\u003e\n\u003cli\u003ethis._map = map;\u003c/li\u003e\n\u003cli\u003e//创建div元素,作为自定义覆盖物的容器\u003c/li\u003e\n\u003cli\u003evardiv = document.createElement(“div”);\u003c/li\u003e\n\u003cli\u003ediv.style.position = …\u003c/li\u003e\u003c/ol\u003e"
September 8, 2012
adodb cs5破解办法及注册码
"\u003cp\u003e用记事本编辑“C:\\Windows\\System32\\Drivers\\etc\\”目录下的 hosts 文件\u003c/p\u003e\n\u003cp\u003e127.0.0.1 activate.adobe.com\n127.0.0.1 practivate.adobe.com\n127.0.0.1 ereg.adobe.com\n127.0.0.1 activate.wip3.adobe.com\n127.0.0.1 wip3.adobe.com\n127.0.0.1 3dns-3.adobe.com\n127.0.0.1 3dns-2.adobe.com\n127.0.0.1 adobe-dns.adobe.com\n127.0.0.1 adobe-dns-2.adobe.com\n127.0.0.1 adobe-dns-3.adobe.com\n127.0.0.1 ereg.wip3.adobe.com\n127.0.0.1 activate-sea.adobe.com\n127.0.0.1 wwis-dubc1-vip60.adobe.com\n127.0.0.1 activate-sjc0.adobe.com\u003c/p\u003e\n\u003cp\u003e以防止其连接 Adobe 的激活验证服务 …\u003c/p\u003e"
September 7, 2012
数据类型和Json格式
"\u003col\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e前几天,我才知道有一种简化的数据交换格式,叫做 \u003ca href=\"http://www.yaml.org/\"\u003eyaml\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e我翻了一遍它的 \u003ca href=\"http://www.yaml.org/spec/\"\u003e文档\u003c/a\u003e,看懂的地方不多,但是有一句话令我茅塞顿开。\u003c/p\u003e\n\u003cp\u003e它说, \u003cstrong\u003e从结构上看,所有的数据(data)最终都可以分解成三种类型\u003c/strong\u003e:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e第一种类型是 \u003cstrong\u003e标量\u003c/strong\u003e(scalar),也就是一个单独的字符串(string)或数字(numbers),比如”北京”这个单独的词。\u003c/p\u003e\n\u003cp\u003e第二种类型是 \u003cstrong\u003e序列\u003c/strong\u003e(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如”北京,上海”。\u003c/p\u003e\n\u003cp\u003e第三种类型是 \u003cstrong\u003e映射\u003c/strong\u003e(mapping),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比如”首都:北京”。\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e我恍然大悟,数据构成的最小单位原来如此简单!难怪在编程语言中,只要有了数组(array)和对象(object)就能够储存一切数据了。\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e我马上想到了 \u003ca href=\"http://www.json.org/json-zh.html\"\u003ejson\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e21世纪初,Douglas Crockford寻找一种简便的数据交换格式,能够在服务器之间交换数据。当时通用的数据交换语言是XML,但 …\u003c/p\u003e"
September 5, 2012
增加Apache2和Nginx的header长度限制
"\u003cp\u003enginx默认的header长度上限是4k,如果超过了这个值\nnginx会直接返回400错误\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[error] 16613#0: *105 upstream sent too big header while reading response header from upstream\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e可以通过以下2个参数来调整header上限\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eclient_header_buffer_size 16k;\nlarge_client_header_buffers 4 16k;\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e看起来是,nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取\u003c/p\u003e\n\u003cp\u003eclient_header_buffer_size\u003c/p\u003e\n\u003cp\u003esyntax: client_header_buffer_size size\u003c/p\u003e\n\u003cp\u003edefault: 1k\u003c/p\u003e\n\u003cp\u003econtext: http, server\u003c/p\u003e\n\u003cp\u003eDirective sets the headerbuffer size for the request header from …\u003c/p\u003e"
August 20, 2012
Ubuntu12.04 root用户登录桌面设置
"\u003cp\u003eubuntu12.04默认是不允许root登录的,在登录窗口只能看到普通用户和访客登录。以普通身份登陆Ubuntu后我们需要做一些修改,\n普通用户登录后,修改系统配置文件需要切换到超级用户模式,在终端窗口里面输入: sudo -s.然后输入普通用户登陆的密码,回车即可进入 root用户权限模式.\u003c/p\u003e\n\u003cp\u003e然后执行: vi /etc/lightdm/lightdm.conf.\u003c/p\u003e\n\u003cp\u003e增加 **greeter-show-manual-login=true allow-guest=false . **修改完的整个配置文件是\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[SeatDefaults]\ngreeter-session=unity-greeter\nuser-session=ubuntu\n\u003cstrong\u003egreeter-show-manual-login=true #手工输入登陆系统的用户名和密码\nallow-guest=false #不允许guest登录\u003c/strong\u003e\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e****然后我们启动root帐号:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003esudo passwd root\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e根据提示输入roott帐号密码。\u003c/p\u003e\n\u003cp\u003e重启ubuntu,登录窗口会有“登录”选项,点击“登录”选项,就会提示让输入用户名了。 …\u003c/p\u003e"