在centos 6.x 上成功安装 kchmviewer

使用centos 6 做桌面用,但一直有个缺陷:kchmviewer安装不上。提示缺少Qt库,以前通过rpm.pbone.net查找下载qt库,但总是有包依赖的冲突,两个软件包(具体是谁忘记了),一个要高版本的库,一个一定要低版本的库,于是放弃,尝试自己编译,一样没解决包依赖问题。

今天是2012年元旦,随手google搜索一下 centos 6 kchmviewer,是看到了第一条结果,马上尝试,很顺利,安装成功。

回看一下自己失败的原因,原来是下载的qtwebkit包太新(qtwebkit-2.1.1-1.el6.i686),所以出现软件包依赖冲突;而使用qtwebkit-2.0-3.el6.i686.rpm就可以成功安装了。

centos 6.x 上安装 kchmviewer两个包如下

kchmviewer-5.3-1.i586.rpm kchmviewer-5.3-1.rpm

qtwebkit-2.0-3.el6.i686.rpm (http://pkgs.org/centos-6-rhel-6/atrpms-i386/qtwebkit-2.0-3.el6.i686.rpm/download/)

 

参考

http://www.myzhenai.com/thread-14387-1-1.html (CentOS6.0安装kchmviewer)

php安装xdebug后,让var_dump()函数输出完整的变量内容

php开发环境里,安装了xdebug模块后,var_dump()输出的结果将比较易于查看,但默认情况下,var_dump() 输出的结果将有所变化:过多的数组元素不再显示,字符串变量将只显示前N个字符,较深的数组元素也被显示成省略号。这点会带来一些不便,我们修改配置文件,设置这些。

在php.ini里的xdebug节点中,加入如下

xdebug.var_display_max_children=128
xdebug.var_display_max_data=512
xdebug.var_display_max_depth=5

含义从名字上看就可看懂。

其实这里有三条配置,正好与本文上述的三点“变化”一一对应嘀 ^..^

从phpinfo()里的xdebug节点里可以看到更多的配置变量,多半也是可以通过php.ini修改的

数据库入门

数据库是什么,从字面上理解,就是存储数据的系统。

日常学习工作生活中,经常会见到“数据库”这一概念,如,公安系统的居民身份证数据库,银行储户信息数据库,某某论文数据库,基因数据库,等等。这些例子里的数据库并非本文所要讲述的“数据库”的概念,它们是 依据一定的手段存储的、可以快速检索的海量数据。而本文中所讲的数据库,则是能够对数据实现方便存储、快速检索、易于更新维护的软件,注意了,我们所讲的数据库实际是计算机软件,而并不关心存储具体数据是银行存款、还是家庭收支账单、或者是邂逅美女的记录。严格的说,本文所讲的数据库,是“关系型数据库”,而不是当下在sns时代火爆的NoSQL数据库。

关系型数据库软件,有很多种,应用广泛的有MySQL, PostgreSQL, Oracle, DB2,MS sql server等。

数据拆分

数据库是对数据“格式化”存储的工具,这里的格式化,指的是对数据分类另,分条目,分栏目,按实际需求把数据拆分成小的单元,并存储在数据库中。

举个例子类比一下,以便对数据库有个初步理解。Excel文件(电子表格),大家应该都知道。

  1. 一个excel文件,它里面在可以存储多个工作表,新建一个excel文件默认会有Sheet1,Sheet2,Sheet3这三个工作表。
  2. 每个工作表,都是一个“表格”,可以有很多行。
  3. 每一行,都分为多列,每列是一个单元格,可以存储一定的内容。

[注] 工作表,对于excel本身,一般理解成一个工作表有行与列垂直交错形成格子,每个格式就是单元格。但为了类比理解数据库,不能这样理解,而是按html(超文本标记语言)里对表格(table)的划分,表格先分成行(<tr>.....</tr>),对每行再分列(<td>...</td>).

数据库可以与excle作类比,一个excel文件对应类比一个数据库,excel工作表类比数据库的表,工作表的行对应数据库里表的行。

数据库的数据一般正是拆分为这三个层次的,即表,行,字段 这三个层次。

数据表

数据库里的表,即数据表,简称表;可以与excel文件里的一个工作表类比。注意,这里说用来类比的excel表,是没有“合并单元格”存在的,不管是按行或是按列合并的。

通常,我们的excel表里,会有一个标题行。类似上图中所示,这是个简单的人员联系信息表,第一行,"name gender company address phone"那一行,它分为多列,每列都是对本列的说明、或者说是该列的名称,对于数据库列,也有这样的一列,称为列名,也称为字段名。不同的是,在excel表里,列名是占据一行的,而在数据库里,它并不占据任何一行;这一点,有点类似于excel里本身的列名的,如 列A、列B、列C... 这是固定的列名,不能修改的;而数据库里列名都是我们自己定义的。

多列数据,每列数据都放

行/记录

数据表里的数据是分为多行的,每行的格式都是一致的,如上图中所示,

本文内容原本是很久以前在公司里给非技术人员培训时的演示文稿。在草稿箱里放了几乎5年,最近整理博客看其更新时间为 2011年12月26日 @ 23:05,这么久都没有继续写,大概以后也不会续写,直接发出来算了(2016-10-10 15:29)

MySQL函数 GROUP_CONCAT,相当有用

一直想找这个函数,今天终于找到了,属于聚合函数,也正是猜测可能是个函数函数、才通过“MySQL 聚合函数” google到的。

使用过程中可能会遇到1260错误,如下:

#1260 - %d line(s) were cut by GROUP_CONCAT()

这是因为group_concat()有最大长度限制,该限制值默认为1024,可以从mysql环境变量里可以查看。如需修改该值,可以在mysql配置文件里指定:

group_concat_max_len = 102400

也可以在mysql运行时动态指定,执行语句:

SET GLOBAL group_concat_max_len=102400;

参考该链接http://www.fuchaoqun.com/2008/12/mysql-trap-of-group-concat/,或者mysql手册(推荐)。

centos 6 下编译安装 nginx

下载nginx源码包,可以到nginx官方的下载文件归档里 http://nginx.org/download/ 下载

下载pcre源码,并编译安装,从pcre官方下载  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.zip

解压缩 unzip pcre-8.21.zip

进入源码目录 cd pcre-8.21/

./configure

make

make install

全部使用默认,不必要指定目录,这样包容易被找到。

安装nginx

这里使用nginx 1.0.8为例。

下载源码包  wget http://nginx.org/download/nginx-1.0.8.tar.gz

解压缩 tar xvf nginx-1.0.8.tar.gz

进入源码目录 cd nginx-1.0.8/

查看配置参数 ./configure --help (此步可以省略)

简单配置 ./configure
(注:centos 6 默认安装pcre包的,但是其安装位置并不为nginx识别,而且即使手工指定好像也不行,编译过程中会提示找不到文件;所以才需要先安装pcre包)

不指定任何配置选项,应该可以成功通过,得到如下的消息

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + md5: using system crypto library
  + sha1: using system crypto library
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

然后就是 make

应该不会出问题,接着make install 就安装好了。

先测试一下是否可以运行,执行 /usr/local/nginx/sbin/nginx 没有消息提示,通过浏览器打开nginx所在的ip地址,应该可以看到

 

Welcome to nginx!

 

这样的一个简单页面,证明nginx可以工作。

接下来的工作就是配置nginx了,其配置文件为/usr/local/nginx/conf/nginx.conf

linux服务器阻止恶意的暴力ssh登录

可以使用 DenyHosts 或 pam_tally2.so 实现

DenyHosts是Python语言编写的程序,主动分析登录日志文件/var/log/secure,对于多次连续的重复错误登录ip,加入/etc/hosts.deny,从而阻止这些暴力登录。

详细参看:linux下使用denyhosts防止ssh暴力破解

pam_tally2,则是使用pam模块,对于连续N次登录错误的用户,自动禁止登录若干时间。

详细参看:使用pam模块pam_tally2设置Linux用户连续N次输入错误密码自动锁定X分钟

fedora16通过命令行配置无线,并开机自动连接

装在上网本上用来折腾的一个fedora 13系统,没有图形界面,但还是花了整整一夜加半天时间从13升级到16,已经是最新的版本了;并把自动连接无线的命令写到一个脚本文件里,开机自动运行。

以前一直不能通过命令行启用无线,后来才发现是因为NetworkManager服务的原因,禁止该服务后可以通过命令行配置无线正常连网。最好把rpm -e NetworkManager 卸载掉这个NM包,以免它的干扰。

无线使用最简单的wep加密,在路由器上限制了允许mac地址,因此无线安全不是大问题。

无线配置命令非常简单
iwconfig wlan0 essid "[无线AP名称]" key s:[无线密码]
ifconfig wlan up
dhclient wlan0

将写入一个文件,保存为/root/script/start-wlan.sh,也可以保存到其它目录里。

在文件/etc/rc.d/rc.local 里加入一行

.  /root/script/start-wlan.sh

即可

 

[转]让你提升命令行效率的 Bash 快捷键

生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率。

编辑命令

  • Ctrl + a :移到命令行首
  • Ctrl + e :移到命令行尾
  • Ctrl + f :按字符前移(右向)
  • Ctrl + b :按字符后移(左向)
  • Alt + f :按单词前移(右向)
  • Alt + b :按单词后移(左向)
  • Ctrl + xx:在命令行首和光标之间移动
  • Ctrl + u :从光标处删除至命令行首
  • Ctrl + k :从光标处删除至命令行尾
  • Ctrl + w :从光标处删除至字首
  • Alt + d :从光标处删除至字尾
  • Ctrl + d :删除光标处的字符
  • Ctrl + h :删除光标前的字符
  • Ctrl + y :粘贴至光标后
  • Alt + c :从光标处更改为首字母大写的单词
  • Alt + u :从光标处更改为全部大写的单词
  • Alt + l :从光标处更改为全部小写的单词
  • Ctrl + t :交换光标处和之前的字符
  • Alt + t :交换光标处和之前的单词
  • Alt + Backspace:与 Ctrl + w 类似,分隔符有些差别

重新执行命令

  • Ctrl + r:逆向搜索命令历史
  • Ctrl + g:从历史搜索模式退出
  • Ctrl + p:历史中的上一条命令
  • Ctrl + n:历史中的下一条命令
  • Alt + .:使用上一条命令的最后一个参数

控制命令

  • Ctrl + l:清屏
  • Ctrl + o:执行当前命令,并选择上一条命令
  • Ctrl + s:阻止屏幕输出
  • Ctrl + q:允许屏幕输出
  • Ctrl + c:终止命令
  • Ctrl + z:挂起命令

Bang (!) 命令

  • !!:执行上一条命令
  • !blah:执行最近的以 blah 开头的命令,如 !ls
  • !blah:p:仅打印输出,而不执行
  • !$:上一条命令的最后一个参数,与 Alt + . 相同
  • !$:p:打印输出 !$ 的内容
  • !*:上一条命令的所有参数
  • !*:p:打印输出 !* 的内容
  • ^blah:删除上一条命令中的 blah
  • ^blah^foo:将上一条命令中的 blah 替换为 foo
  • ^blah^foo^:将上一条命令中所有的 blah 都替换为 foo

友情提示:

  1. 以上介绍的大多数 Bash 快捷键仅当在 emacs 编辑模式时有效,若你将 Bash 配置为 vi 编辑模式,那将遵循 vi 的按键绑定。Bash 默认为 emacs 编辑模式。如果你的 Bash 不在 emacs 编辑模式,可通过 set -o emacs 设置。
  2. ^S、^Q、^C、^Z 是由终端设备处理的,可用 stty 命令设置。

原文:http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/

译文:http://linuxtoy.org/archives/bash-shortcuts.html

nginx下为wordpress配置重写规则/rewrite

nginx不能支持.htaccess的rewrite规则,所以使用nginx作web服务器,配置wordpress固定链接会比较麻烦一点,要自己写规则到nginx配置文件里。网上也看到一些配置规则,不过觉得怪怪的。

发现nginx官方网站上有个页面,关于wordpress重写规则的,http://wiki.nginx.org/WordPress里面有“cool”的规则,本站的nginx配置如下,其中一行 try_files $uri $uri/ /index.php; 就是这行,应该比网上有些文章里的规则更cool。

    server {
        server_name  blog.path8.net;
        root /var/www/vhost/blog;
        access_log  logs/vhost-blog.path8.net.log  main;

        location /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location / {
                index  index.html index.htm index.php;
                # from nginx.org rewrite rule
                # This is cool because no php is touched for static 
 try_files $uri $uri/ /index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/vhost/blog$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
Pages: Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next