debian中支持中文一直是不太好配置,离开学校到现在也是没有在本上安装使用debian,本来打算换个版本再试试,但是最终还是舍不得debian。昨晚在家里安装了一晚上,终于折腾的能使用了,顺便还看了个电影,嘿嘿!!!
今天早上折腾中文输入,到现在也终于折腾好了,对这个配置还是记录下的好,以后也好再看,或许对其他也有用处呢。资料来自网络,我仅是测试整理而已!
先安装scim中文支持:
sudo apt-get install scim scim-pinyin
sudo im-switch -s scim -z default
在/etc/X11/Xsession.d/里新建一个名叫95xinput的文件,文件内容如下
/usr/bin/scim -d
XMODIFIERS=”@im=SCIM”
export XMODIFIERS
再修改/etc/environment:
sudo gedit /etc/environment
把LANG=en_US改为LANG=en_US.UTF-8
再加入:LC_CTYPE=zh_CN.UTF-8
编辑 /etc/gtk-2.0/gtk.immodules 文件(如果没有就新建一个):
sudo gedit /etc/gtk-2.0/gtk.immodules
把
“/usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so””xim” “X Input Method” “gtk20″ “/usr/share/locale” “ko:ja:th:zh”
修改为:
“/usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so””xim” “X Input Method” “gtk20″ “/usr/share/locale” “en:ko:ja:th:zh”
再重新登陆X Window就好了。
所属分类为 'Linux'
Aug
重回debian怀抱,祝debian17岁生日快乐
标签:debian
Aug
Fastcgi+apache的安装方式
最近因为一个业务需要,需要安装apache+fastcgi的支持,本来可以直接让运维人员给我配置好的,但是想想,这东西还是自己配的好,方便以后调试啊!这里粗浅的学习了一下,做了一个安装记录,分享一下!
1、Apache的安装
先安装apache并且调试没问题
这里安装的是httpd-2.2.9.tar.gz,在编译安装的时候使用下面的configure参数:
./configure –prefix=/usr/local/apache2 –enable-so –with-mpm=worker
–enable-so :是让apache可以动态加载模块以扩张功能
-with-mpm=worker :支持混合的多线程多进程的多路处理模块
(除了worker还有一种prefork.c,perfork一个非线程型的、预派生的MPM)
然后编译安装:
make && make install
安装完成之后可以测试服务器的运行和对cgi的支持情况。
确认没有问题后,进行下面的安装操作。
2、fastcgi的apache支持安装
从http://www.fastcgi.com/下载mod_fastcgi-2.4.0.tar.gz和fcgi-2.4.0.tar.gz
先给apache安装fastcgi的模块支持。
# tar zxf mod_fastcgi-2.4.0.tar.gz
# cd mod_fastcgi-2.4.0
# cp Makefile.AP2 Makefile
# make
# make install
安装完成之后修改一下apache的配置文件http.conf,添加下面一些内容:
LoadModule fastcgi_module modules/mod_fastcgi.so
ScriptAlias /fcgi-bin/ ”/data/wwwroot/fcgi-bin/”
#fastcgi
<Directory ”/data/wwwroot/fcgi-bin”>
AllowOverride None
Options +ExecCGI -Includes
AddHandler fastcgi-script .fcg .fcgi
Order allow,deny
Allow from all
</Directory>
这里修改了apache的主目录的。
然后启动/usr/local/apache2/bin/apachectl restart,确认模块加载没有问题。
3.安装fastcgi开发库
# tar zxf fcgi-2.4.0.tar.gz
# cd fcgi-2.4.0
# ./configure
# make
# make install
之后将目录下的examples目录中的例子程序拷贝到apache配置文件指定的fastcgi运行目录进行测试。Fastcgi运行目录需要777的权限或是nobody的用户读写执行权限。
到此,apache就完全可以支持cgi和fastcgi了。
Jun
软件的灰度发布
最近一段时间都是在搞我负责的部门数据接口的转换,所以最近一段时间连续升级了自己管理的几个小系统的数据接口。部门服务器的端口是要严格控制的,所以首先也要在我们自己的服务器上去做监控,一旦发现立杀无赦。在端口监控这个项目上是一个C/S的结构,服务器保存规则,客户断请求,但是这些都是线上服务一旦切换错了,那问题可就。。。。
在和同事交流了之后,他建议我使用灰度发布,并行两套服务器程序,两套客户端程序,让新的客户端程序逐渐取代原有的客户端程序,最终停止原有的服务器,从而完成服务的无缝切换。这样可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
其实公司现在的厂品发布基本上都是灰度发布模式。所以也是学习了一下,这次的发布还算是比较成功,在经过自己线下测试之后,就上线了,至少现在还是稳定运行的。。。
嗯!公司的业务算是在接手中了,开发,测试,发布,都在稳定的进行中,虽然由于一些个人的事情这个进度有点慢,但是还是可以比较轻松的接下来处理完。还在学习中。。。虚怀以待!
等公司的事务顺手了还是要看看内核了,再做一做内核学习。
标签:
May
vbox下文件夹共享问题总结
一直以来就没有把这个问题正真当作一个问题来对待,每次配置的时候百度一下也就ok了!可是安装次数剁了,总是这样查来查去就不是很方便了,所以今天就总结一下。
1》Vbox中安装了Linux系统
在Vbox中安装了Linux系统后,就需要使的Linux虚拟机系统和真实的主机系统共享文件了,这里这个真是的主机系统可以是windows也可以是Linux,这个对后期设置没有什么太大的影响。
a。首先在开启的虚拟机停止的情况下操作(在虚拟机开启的情况下也是可以操作的,只不过那样添加的是零时的,这里介绍永久有效的),在配置管理中选择数据空间管理,添加新的文件夹并且给此次添加命名,比如添加了E:\,并且命名为epan。
b。在虚拟机中使用命令“mount -t vboxsf epan /mnt” 这样就可以了,如果要使其开机自动挂载,则需要在/etc/fstab中添加一项,如下:
epan /mnt vboxsf rw,auto 0 0
2》Vbox中安装了windows系统
在Vbox中安装了windows系统后,就需要使的windows虚拟机系统和真实的主机系统共享文件了,这里这个真是的主机系统可以是windows也可以是Linux,这个对后期设置没有什么太大的影响。
a。首先在开启的虚拟机停止的情况下操作(在虚拟机开启的情况下也是可以操作的,只不过那样添加的是零时的,这里介绍永久有效的),在配置管理中选择数据空间管理,添加新的文件夹并且给此次添加命名,比如添加了/home/helight,并且命名为helight。
b。在windos虚拟机中的cms命令框中输入下面的命令:
net use G: \\vboxsvr\helight
这个命令在执行之后将会在“我的电脑“中产生以G盘符,通过这个盘符就可以访问Linux主机下的/home/helight目录了!
后记:这里只是为我自己做了一个备忘,怕自己以后再要搜索,太麻烦了!
标签:vbox
Apr
在内核模块中直接发送数据到网卡
前几天去了一个公司再做什么音频会议系统,他们买了一个音频处理芯片,但是这个芯片和cpu的接口比较奇怪!atm的接口,但是却没有遵循atm的协议,atm的协议一包是53个字节,但它确实56个字节,而且不是简单的在53之上再加3个字节,是打乱的字节序列!这下没办法了,本来先使用atm的驱动模型来做就可以了!但是最终发现以我现有的技术行不通!而且他们需要在接收处理之后直接通过网络接口再发送出去。
没办法,那就另辟蹊径吧!!!所以做了这样一个测试:在内核中直接接收处理硬件发送来的数据!自己做协议处理!然后在发送到网络接口,这我也先到两种方法:
1。在接收到数据后直接用netlink传输到用户空间,让后处理处理完了使用socket接口再发送出去。
2.在内核接收到数据后直接通过内核的网络socket发送出去!
第一种方法是我以前经常做的方法,已经没有什么新鲜了,第二种方法我以前倒没有做过,感觉比较新鲜,但是以我对内核的了解,这种方法肯定是可以的!所以昨天做了一个小测试。晚上终于调试通过。
程序的执行步骤如下:
1.调用内核的sock接口创建sock
2.然后链接远程主机(这里是链接了一个web服务器主机,这个web服务器是我写的,我可很方便的查看是否有这个内核模块发送的请求)。
3.链接成功后我做了一个http的请求报文,
4.将这个报文发送到要请求的服务器!
5.我在服务器端看到报文完整接收了! (成功!)
一下是使用的关键内核函数:
err = sock_create(AF_INET, SOCK_STREAM, 0, &knsock);
err = kernel_connect(knsock, (struct sockaddr *)&knsadd, sizeof(struct sockaddr), 0);
err = kernel_sendmsg(knsock, &msg, &iov, 1, iov.iov_len);
sock_release(knsock);
标签:内核 socket
Mar
OOM-killer
Out-of-Memory (OOM) Killer是一种保护机制,用于当内存严重不足时,为了系统的继续运转,内核迫不得已挑选一个进程,将其杀死,以释放内存,缓解内存不足的问题。可以看出这种方式对进程的保护是有限的,不能完全的保护进程的运行。
OOM Killer的关闭与激活方式:
# echo “0″ > /proc/sys/vm/oom-kill
# echo “1″ > /proc/sys/vm/oom-kill
要对某个进程进行OOM保护的话就直接向“/proc/pid/oom_adj”中写入“-17”即可。
Nov
整理了两张linux网络分析的图
Nov
ipv4内核初始化分析-sock的创建
sock创建的主要数据结构是下面这个结构体:
static struct net_proto_family inet_family_ops = {
.family = PF_INET, //这里的值可以是PF_AX25,PF_UNIX,PF_IPX,PF_INET6。。。
// 这些都在include/linux/socket.h 这个文件中定义了,
.create = inet_create, [...]
标签:
Nov
内核中ipv4分析—协议族的初始化
在内核中ipv4的初始化工作是由这个函数来做的。
static int __init inet_init(void)
而这个函数一开始要做的事就是注册协议族。如下:
rc = proto_register(&tcp_prot, 1);//注册tcp的协议族
。。。
rc = proto_register(&udp_prot, 1);//注册udp的协议族
。。。
rc = proto_register(&raw_prot, 1);//注册raw原始协议族
。。。
这些协议族都注册到proto_list这个链表上了,
static LIST_HEAD(proto_list);
关于已经注册的协议族的信息可以在/proc/net/protocols中查看。
如下,在我的系统中已经注册的协议族有PACKET,RAWv6,UDPLITEv6,UDPv6,TCPv6 ,UNIX,UDP-Lite,
RAW,UDP ,TCP,NETLINK
这里表示了这些协议族的使用情况和使用的内存分配方式,以及已经实现的方法。
而这些信息都是由net/core/sock.c 中的proto_seq_printf函数打印输出到protocols文件中的。原型如下:
static void proto_seq_printf(struct seq_file *seq, struct proto *proto)
在proc系统下对应的文件是/proc/net/protocols
helight@zhwen:/proc/net$ cat protocols
protocol size sockets memory press maxhdr slab module cl co di ac io in de sh ss gs se re sp bi [...]
标签:ipv4 协议族
Nov
Debian sid 下安装 Nginx + PHP5
最近在教学生搭建和配置LAMP的服务器。当从网上的资料来看LNMP的性能也是很是传神。所以也想尝试一下,如果可以,也可以给学生教一下!!!果然在查了一些资料后我还是搭建了起来,只是没有安装mysql,数据库我不是太常用,所以没有安装。
1. 安装Nginx+PHP
sudo apt-get install php-pear php5-cli php5-common php5-xcache php5-cgi php5-gd
sudo apt-get install nginx
在sid中nginx是0.7.62
2. 安装php的支持
php的支持是由spawn-fcgi来实现的,但是这个模块是lighttpd中的,可以从lighttpd中直接拷贝出来,
或者直接从网上下载一个也可以。
当然也可以直接先安装lighttpd。然后把spawn-fcgi拷贝出来,再卸载了lighttpd。
我是直接从网上下载的。下载后我拷贝到了/usr/local/sbin/下面,当然这个路径由你来自由的指定。
sudo mv spawn-fcgi /usr/local/sbin/
sudo chomd a+x /usr/local/sbin/spawn-fcgi
3. 配置php-cgi
将下面的话写入到rc.local中
/usr/local/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nobody -f /usr/bin/php-cgi - C 20
具体的含义和参数还没有完全搞清楚呢,先用着再说把。
4. 配置Nginx使用Fast-cgi处理php
更改 Nginx 配置
sudo vim /etc/nginx/sites-enabled/default
将其修改为,
server {
listen 80;
server_name localhost;
[...]













