随笔 - 612, 文章 - 0, 评论 - 31, 阅读 - 74万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

10 2013 档案

摘要:系统环境:centos6.3X64错误信息:[root@localhost~]#lspci-bash:lspci:commandnotfound问题原因:这是因为没有安装pciutils包造成的。解决办法:#yuninstallpciutilsPS:同样,如果lsusb时也提示找不到命令,那只要#yuminstallusbutils就可以了 阅读全文

posted @ 2013-10-29 11:10 eastson 阅读(4361) 评论(0) 推荐(0) 编辑

摘要:说明:route命令是打印和操作ip路由表描述:route操作基于内核ip路由表,它的主要作用是创建一个静态路由让指定一个主 机或者一个网络通过一个网络接口,如eth0。当使用"add"或者"del"参数时,路由表被修改,如果没有参数,则显示路由表当前的内容。参数说明:add:添加一条新路由。 del:删除一条路由。 -net:目标地址是一个网络。 -host:目标地址是一个主机。 netmask:当添加一个网络路由时,需要使用网络掩码。 gw:路由数据包通过网关。注意,你指定的网关必须能够达到。 metric:设置路由跳数。实例: 1、route ad 阅读全文

posted @ 2013-10-28 11:58 eastson 阅读(393) 评论(0) 推荐(0) 编辑

摘要:原文地址:http://www.cnblogs.com/bruceliang/p/3383536.htmlBSD开源协议(original BSD license、FreeBSD license、Original BSD license)BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。如果再发布的只是 阅读全文

posted @ 2013-10-23 11:30 eastson 阅读(208) 评论(0) 推荐(0) 编辑

摘要:什么是umask?当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。如何计算umask值umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最 大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个 阅读全文

posted @ 2013-10-23 10:53 eastson 阅读(313) 评论(0) 推荐(0) 编辑

摘要:可执行文件和公共目录可以使用三种特殊类型的权限:setuid、setgid和 sticky 位。设置这些权限之后,运行可执行文件的任何用户都应采用该可执行文件属主(或组)的 ID。setuid权限对可执行文件设置setuid权限时,将对运行该文件的进程授予基于文件属主的访问权限。该访问权限不是基于正在运行可执行文件的用户。使用此特殊权限,用户可以访问通常只有属主才可访问的文件和目录。例如,passwd命令的setuid权限使用户可以更改口令。拥有setuid权限的passwd命令与以下类似:-r-sr-sr-x 3 root sys 28144 Jun 17 12:02... 阅读全文

posted @ 2013-10-23 10:42 eastson 阅读(781) 评论(0) 推荐(0) 编辑

摘要:您有Dos和Windows经验,就大概知道系统存在若干类型的文件,如系统文件、只读文件、隐含文件等。在Linux下用ls–l命令来判断文件类型,可以依据第一列中的10个字符来判断。-rw-r—r— 指明了1.txt文件是一个普通文件,1.txt和myprog04文件都是普通文件。以”-“开头的都是普通文件,而以”d”开头的是目录文件。brw-rw----指明了/dev/sda1是一个块设备(BlockDevice)文件。以”b”开头的文件都是块设备文件。crw-rw---- 指明了/dev/lp0是一个字符设备(ChartacterDevice)文件,以”c”开头的文件都是字符设备文件。srw 阅读全文

posted @ 2013-10-23 09:22 eastson 阅读(273) 评论(0) 推荐(0) 编辑

摘要:原文地址:http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html一、LVM简介LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储 阅读全文

posted @ 2013-10-22 11:07 eastson 阅读(288) 评论(0) 推荐(0) 编辑

摘要:Drupal在本阶段为用户设置缓存头信息。Drupal不为验证用户缓存页面,每次请求时都是从新读取的。function _drupal_bootstrap_page_header() { bootstrap_invoke_all('boot'); // 调用boot钩子, 只是启动模块 if (!drupal_is_cli()) { ob_start(); drupal_page_header(); }}function drupal_page_header() { $headers_sent = &drupal_static(__FUNCTION__, FALSE); 阅读全文

posted @ 2013-10-21 11:51 eastson 阅读(328) 评论(0) 推荐(0) 编辑

摘要:原文地址:http://www.cnblogs.com/acpp/archive/2011/06/10/2077592.htmlsession.save_handler=files1.session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session是存放在文件中的,PHP自身的垃圾回收是无效的,SESSION的回收是要删文件的,这个概率是根据php.ini的配置决定的,但是有的系统是 session.gc_probability=0,这也就是说概率是0,而是通过cron脚本来实现垃圾回收。session.gc_probability = 1session. 阅读全文

posted @ 2013-10-19 10:49 eastson 阅读(276) 评论(0) 推荐(0) 编辑

摘要:Drupal的很多功能都是可以定制的。以导航菜单为例,blog模块需要在菜单上添加一些功能,comment模块需要在菜单上添加一些功能,我们开发的自定义模块也需要在菜单上添加一些功能。Drupal开发者为了达到这样的扩展目的,设计了钩子系统,导航菜单就是其中一个名为menu的钩子。有了钩子系统,开发人员就可以在blog模块定义一个钩子函数从而实现menu钩子。Drupal要求钩子函数的命名必须要求以模块名开始,以钩子名为后缀。function block_menu() { $items['admin/structure/block/manage/%/%'] = array( & 阅读全文

posted @ 2013-10-17 17:21 eastson 阅读(392) 评论(0) 推荐(0) 编辑

摘要:Drupal的系统变量是指保存在后台数据库variable表中的一些参数设置,透过variable_get()和variable_set()存取:先看一看_drupal_bootstrap_variables()的代码:function _drupal_bootstrap_variables() { global $conf; // Initialize the lock system. require_once DRUPAL_ROOT . '/' . variable_get('lock_inc', 'includes/lock.inc'); 阅读全文

posted @ 2013-10-17 10:34 eastson 阅读(410) 评论(0) 推荐(0) 编辑

摘要:什么是模块载入?首先说载入,这里的载入是指require_once。模块载入就是指require_once模块目录中的某个PHP文件。每个Drupal模块都应该有自己的主文件。模块主文件以模块名开始,以.module为后缀。例如blog模块,其主文件就是blog.module。drupal_load()函数用来完成载入模块主文件:function drupal_load($type, $name) { static $files = array(); if (isset($files[$type][$name])) { return TRUE; } $filename = dru... 阅读全文

posted @ 2013-10-17 10:10 eastson 阅读(518) 评论(0) 推荐(0) 编辑

摘要:system_list()函数的目的是根据传入的资源类型,返回一个数组列表:function system_list($type) { ... ... }参数$type支持下面三种类型:bootstrap:返回启动模块列表module_enabled :返回模块列表theme:返回主题列表三种类型里面bootstrap处理方式有点不同,module_enabled和theme是相同的。先看看bootstrap是如此处理的。这里的bootstrap指的是系统表system里面标识为bootstrap的模块,是系统的启动模块,在Drupal启动过程中需要先被载入。首先检查是否有缓存:if ($ca 阅读全文

posted @ 2013-10-16 14:52 eastson 阅读(420) 评论(0) 推荐(0) 编辑

摘要:Drupal中,主题是可以继承的,或者说是扩展。例如,要创建一个新的名为custom的主题,该主题与名为default的主题只有某些细小的差别。这个时候,不需要复制一份default到custom,可以在custom声明该主题继承自default就可以了。主题的继承关系在info文件中说明。首先,default主题的info文件不需要修改:name = Default Themecustom主题的info文件需要特别地声明base theme属性:name = Custom Themebase theme = defaultDrupal内部是如何解析这种继承关系的呢?解析的过程发生在syste 阅读全文

posted @ 2013-10-16 14:39 eastson 阅读(304) 评论(0) 推荐(0) 编辑

摘要:Drupal能够识别哪些资源类型?profile,不知道怎么翻译,应该是指安装类型,固定地存放于profiles目录下。module,模块,可以存在于多个目录下:modules、profiles/{profile}/modules、sites/all/modules、sites/{$site}/modules。theme,主题,可以存在于多个目录下:themes、profiles/{profile}/themes、sites/all/themes、sites/{$site}/themes。theme_engine,主题引擎,可以存在于多个目录下:themes/engines、profiles/ 阅读全文

posted @ 2013-10-14 17:10 eastson 阅读(379) 评论(0) 推荐(0) 编辑

摘要:Drupal在数据库启动阶段仅仅是简单地包含了database.inc文件,然后再注册类加载器:function _drupal_bootstrap_database() { // Initialize the database system. Note that the connection // won't be initialized until it is actually requested. require_once DRUPAL_ROOT . '/includes/database/database.inc'; // Register autoload f 阅读全文

posted @ 2013-10-11 16:02 eastson 阅读(247) 评论(0) 推荐(0) 编辑

摘要:Drupal有时会显示白屏,或者500内部错误,这多半是由于PHP脚本什么地方有问题造成的。这个时候,可以先看看php.log里面有没有提示:[10-Oct-2013 15:55:26 Asia/Shanghai] PHP Fatal error: Call to undefined function xxxxxx() in C:\Program Files\Zend\Apache2\htdocs\drupal\index.php on line 24也可以将display_errors选项开启,使php将所有的信息都显示出来:error_reporting(E_ALL);ini_set(&# 阅读全文

posted @ 2013-10-10 16:03 eastson 阅读(440) 评论(0) 推荐(0) 编辑

摘要:ZendServer根据开发环境和产品环境的不同情况,对php.ini中的一些选项做了建议设置,列表如下:;;;;;;;;;;;;;;;;;;;; Quick Reference ;;;;;;;;;;;;;;;;;;;;; The following are all the settings which are different in either the production; or development versions of the INIs with respect to PHP's default behavior.; Please see the actual sett 阅读全文

posted @ 2013-10-10 15:38 eastson 阅读(421) 评论(0) 推荐(0) 编辑

摘要:Drupal在配置阶段的最开始就设置了自己的错误处理器和异常处理器:function _drupal_bootstrap_configuration() { set_error_handler('_drupal_error_handler'); set_exception_handler('_drupal_exception_handler'); // ... ...}先来看看错误处理器_drupal_error_handler()是如何做的?function _drupal_error_handler($error_level, $message, $file 阅读全文

posted @ 2013-10-10 11:48 eastson 阅读(1299) 评论(0) 推荐(0) 编辑

摘要:天天趴在电脑前工作,如果只是使用右手来拿鼠标,不仅对手腕不好,长久以来估计对腰也不好。桌面电脑可以很方便地设置成使用左手鼠标模式,这样,左右手换一换,可能会是一个好事。可是当你在写文档、编代码的时候,要用上 Ctrl+v、Ctrl+c、Ctrl+x 这些快捷键时,总不能用右手别扭着按键盘吧?把左手从鼠标拿开,再来按这些键,显然是一种更没有效率的做法。这个时候,可以用AutoHotkey这个软件,来重新定义这几个快捷键。我的习惯是,使用 Ctrl+/ 来代替 Ctrl+x,使用 Ctrl+. 来代替 Ctrl+c,使用 Ctrl+, 来代替 Ctrl+v,并且使用 Ctrl+; 来代替 Win+ 阅读全文

posted @ 2013-10-09 16:39 eastson 阅读(1687) 评论(0) 推荐(1) 编辑

摘要:文章来源:http://www.cnblogs.com/ghj1976/archive/2010/07/19/1780844.html在 drupal 跟目录下有个 .htaccess 文件, 这个文件中就有URL地址重写的配置信息,配置信息如下:# Various rewrite rules. RewriteEngine on # If your site can be accessed both with and without the 'www.' prefix, you # can use one of the following settings to redirec 阅读全文

posted @ 2013-10-09 16:10 eastson 阅读(256) 评论(0) 推荐(0) 编辑

摘要:1.启用memcache代替Mysql的缓存表处理缓存数据。2.添加一个opcode缓存可以让 PHP能够重用前面编译过的代码,这样就会跳过解析和编译。常见的opcode缓存有Alternative PHP Cache (http://pecl.php.net/package/APC), eAccelerator (http://eaccelerator.net), XCache (http://trac.lighttpd.net/xcache/)3.Session放到数据库=》memcache处理。同时利于多个服务器的扩展。4.PHP允许你控制多长时间清除一次旧的会话记录。Drupal将这一 阅读全文

posted @ 2013-10-09 15:59 eastson 阅读(577) 评论(0) 推荐(0) 编辑

摘要:网上看到一篇介绍Drupal与phpbb整合的文章。浏览了一下,真心地不错。于是就想将与整合有关的文章做一个汇总,以备不时之需:Drupal7整合PHPBB论坛Drupal 7 整合 Vanilla 论坛drupal与ucenter的集成的模块ucenterzencart与drupal整合(第1天)——zencart基础操作教程zencart与drupal整合(第2天)—zencart模块调用机制zencart与drupal整合(第3天)—将zencart与drupal组合成一个网站Drupal 集成 Question2Answer(用户整合)Drupal与MediaWiki 整合教程-Aut 阅读全文

posted @ 2013-10-09 15:10 eastson 阅读(320) 评论(0) 推荐(0) 编辑

摘要:什么意思?意思是说,假如你有这样的需求,需要将cache_page缓存到数据库,其它的都缓存到memcache,这该怎么办?看看_cache_get_object()的实现你就会知道上面的问题该怎么处理了:function _cache_get_object($bin) { static $cache_objects; if (!isset($cache_objects[$bin])) { $class = variable_get('cache_class_' . $bin); if (!isset($class)) { $class = variable_get(... 阅读全文

posted @ 2013-10-09 14:18 eastson 阅读(273) 评论(0) 推荐(0) 编辑

摘要:Drupal许多的函数中都使用了静态变量。按照通常的用法,静态变量的使用应该是这样的:function drupal_set_title($title = NULL) { static $stored_title; if (isset($title)) { $stored_title = $title; } return $stored_title;}但是Drupal使用的方式有些不同。主要的考量应该是这样:可能会有几十上百个函数中使用了静态变量,Drupal需要在某一时刻对这些静态变量都做reset处理。这个时候,不可能对这几十上百个函数都重新调用一次。因此,Drupal需要一... 阅读全文

posted @ 2013-10-09 11:20 eastson 阅读(292) 评论(0) 推荐(0) 编辑

摘要:页面缓存是什么意思?有些页面浏览量非常大,而且与状态无关,这类页面就可以使用页面缓存技术。在页面第一次请求完毕以后,将响应结果保存起来。下一次再请求同一页面时,就不需要从头到尾再执行一遍,只需要将第一次执行的响应结果获取出来,直接返回给使用者就行了。什么样的页面请求可以缓存?Drupal使用函数drupal_page_is_cacheable()区分哪些请求可以缓存:function drupal_page_is_cacheable($allow_caching = NULL) { $allow_caching_static = &drupal_static(__FUNCTION__, 阅读全文

posted @ 2013-10-08 16:55 eastson 阅读(991) 评论(0) 推荐(0) 编辑

摘要:配置是Drupal启动过程中的第一个阶段,通过函数_drupal_bootstrap_configuration()实现:function _drupal_bootstrap_configuration() { set_error_handler('_drupal_error_handler'); set_exception_handler('_drupal_exception_handler'); drupal_environment_initialize(); timer_start('page'); drupal_settings_init 阅读全文

posted @ 2013-10-08 11:19 eastson 阅读(592) 评论(0) 推荐(0) 编辑

摘要:Drupal整个启动过程共分为8个阶段:DRUPAL_BOOTSTRAP_CONFIGURATION:initialize configuration DRUPAL_BOOTSTRAP_PAGE_CACHE:try to serve a cached page DRUPAL_BOOTSTRAP_DATABASE:initialize database layer DRUPAL_BOOTSTRAP_VARIABLES:initialize the variable system DRUPAL_BOOTSTRAP_SESSION:initialize session han... 阅读全文

posted @ 2013-10-07 16:51 eastson 阅读(571) 评论(0) 推荐(0) 编辑

摘要:Drupal的后台数据库中有很多以cache开头的表,这些都是Drupal的缓存数据表。Drupal的缓存机制使用了接口方式,所有的缓存对象都必须实现DrupalCacheInterface接口:interface DrupalCacheInterface { function get($cid); function getMultiple(&$cids); function set($cid, $data, $expire = CACHE_PERMANENT); function clear($cid = NULL, $wildcard = FALSE); function isE. 阅读全文

posted @ 2013-10-07 16:03 eastson 阅读(611) 评论(0) 推荐(0) 编辑

摘要:Drupal的系统变量都保存在数据库variable表中:然后,开发人员可以通过下面的API函数操作这些系统变量:function variable_get($name, $default = NULL) { global $conf; return isset($conf[$name]) ? $conf[$name] : $default;}function variable_set($name, $value) { global $conf; db_merge('variable')->key(array('name' => $name))-&g 阅读全文

posted @ 2013-10-07 15:47 eastson 阅读(304) 评论(0) 推荐(0) 编辑

摘要:My solution to getting Clean URL working with my multisite setup drupal 4.7I added Alias to my httpd.conf apache file: # Alias for all php drupal sites Alias /abc /var/www/html/drupal Alias /def /var/www/html/drupal Alias /xyz /var/www/html/drupalMy setup has 4 sites /drupal, /abc, /def,... 阅读全文

posted @ 2013-10-05 16:47 eastson 阅读(285) 评论(0) 推荐(0) 编辑

摘要:Drupal的注册表是指registry和registry_file两个数据表。前一个表保存所有可用的类和接口以及它们所对应的文件,后一个表保存每个文件的hash码。1. 将所有需要更新的文件都汇总的$files数组:// 需要更新的文件有两部分:一是系统includes目录下所有的.inc文件,二是模块描述文件中通过files属性声明的文件。$files = array();$modules = db_query("SELECT * FROM {system} WHERE type = 'module'")->fetchAll();foreach ( 阅读全文

posted @ 2013-10-05 10:57 eastson 阅读(352) 评论(0) 推荐(0) 编辑

摘要:Drupal通过spl_autoload_register()注册类加载器实现自动加载:function _drupal_bootstrap_database() { // ... .... spl_autoload_register('drupal_autoload_class'); spl_autoload_register('drupal_autoload_interface');}再来看看类加载器是如何实现的?function drupal_autoload_interface($interface) { return _registry_check_c 阅读全文

posted @ 2013-10-05 10:26 eastson 阅读(490) 评论(0) 推荐(0) 编辑

摘要:1. 下载:http://simpletest.org/。2.下载后,只要测试文件中包含如下两个文件,就可以用了 : 3. 比如测试一个界面:get('http://www.example.com/contact.php'); $this->assertResponse(200); } } ?> 还可以测试表单的提交动作:function testIsProperFormSubmissionSuccessful() { $this->get('http://www.example.com/contact.php'); $this->ass 阅读全文

posted @ 2013-10-04 16:44 eastson 阅读(418) 评论(0) 推荐(0) 编辑

摘要:Drupal的配置文件搜索是通过bootstrap.inc的conf_path()函数实现的:function conf_path($require_settings = TRUE, $reset = FALSE) { $conf = &drupal_static(__FUNCTION__, ''); if ($conf && !$reset) { return $conf; } $confdir = 'sites'; $sites = array(); if (file_exists(DRUPAL_ROOT . '/' 阅读全文

posted @ 2013-10-04 15:16 eastson 阅读(937) 评论(0) 推荐(0) 编辑

摘要:在一台PC机上安装m0n0wall,相信大家都有经验。一般采用两种方法:1、在一台Windows XP或Windows 2000的PC上,下载physdiskwrite软件和m0n0wall映像文件(img文件),将一块硬盘(由于m0n0wall很小,因此很小容量的硬盘即可,1GB、2.1GB等均可;那种很老的210MB硬盘,只有是好的就能用)接入这台PC;如果用CF卡作为存储介质,可以使用读卡器或CF卡转IDE接口卡,将CF卡接入这台PC。在命令提示符窗口运行命令:physdiskwrite [-u] 这里-u对于physdiskwrite 0.5.1版来说,大于2GB的硬盘,需要添加这个参 阅读全文

posted @ 2013-10-04 11:55 eastson 阅读(1477) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示