June 25, 2011
Failed to initialize storage module解决方法
"今天更新了一下自己的cms,然后后台就提示登陆不了,报错如下:Failed to initialize storage module。\n解决方法有两种如下:\n1。在报错的文件里的session start();之前加入如下代码:ini_set(‘session.save_handler’, ‘files’); 。这种方法适合租用空间的用户使用。\n2。在php.ini文件里,显式指定session的save_path(比如 c:/temp)然后重启web服务。如果服务器的管理权限属于你,那还是这样改比较方便。\n原因分析:php5一个安全模式的bug,默认session的save_path是系统的临时目录,这样会要校验权限。\nPHP中使用SESSION后出现Failed to initialize storage module错误的解决方法: 在session start之前加入以下这句话 ini_set(‘session.save_handler’, ‘files’);"
June 24, 2011
Mongodb相关学习资料
"Mongo资料分享.ppt 认识MongoDB.ppt MongoDB技术交流.ppt SQL-to-MongoDB.pdf QCon北京2011大会之:MongoDB开发应用实践 NoSQL应用场景及Cassandra架构分析 Windows下MongoDB管理工具(启用和服务)\nmongoDB 入门指南、示例\nNoSQl存储模型\nMongo与Mysql语法对应关系图\n数据库\n表\n行\n写入\n查询\nMongoDb\ndatabase\nCollection\nDocument\ninsert into blog.users values(“user1”,”23))===========\nuse blogswitched to db blog\u0026gt; u = { name:”user1″, age:23 }\ndb.users.insert(u)\n主要用到的查询函数式 find() 和 findOne(),前者返回一个迭代器 cursor,后者返回单个文档。\ndb.users.find({name:”user1″}){\n“_id” : …"
June 24, 2011
MongoDB Linux下的安装和启动
"这里用的是64位版本.使用时请检查相应操作系统的版本是32位还是64位.\n1\u0026gt;设置mongoDB目录\ncd /home/apps mkdir /home/apps\n2\u0026gt;下载mongodb\nwget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.3.tgz\n3\u0026gt;解压缩文件\ntar xzf mongodb-linux-x86_64-1.6.3.tgz\n4\u0026gt;启动服务\n./mongodb-linux-x86_64-1.6.3/bin/mongod -dbpath=/data/mongodb/db -logpath=/data/mongodb/log\n5\u0026gt;将mongoDB服务加入随机启动\nvi /etc/rc.local\n使用vi编辑器打开配置文件,并在其中加入下面一行代码\n/home/apps/mongodb/bin/mongod –dbpath /data/mongodb/db –port 27017 –logpath /data/mongodb/log –logappend \u0026amp; …"
June 23, 2011
详解Linux系统修改环境变量PATH路径的方法
"**关于PATH的作用: ** PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,而PATH的值恰恰就是/bin:/sbin:/usr/bin:……。其中的冒号使目录与目录之间隔开。\n**关于新增自定义路径: ** 现在假设你新安装了一个命令在/usr/locar/new/bin下面,而你又想像ls一样在任何地方都使用这个命令,你就需要修改环境变量PATH了,准确的说就是给PATH增加一个值/usr/locar/new/bin。你只需要一行bash命令export PATH=$PATH:/usr/locar/new/bin。这条命令的意思太清楚不过了,使PATH自增:/usr/locar/new/bin,既PATH=PATH+”:/usr/locar/new/bin”;通常的做法是把这行bash命令写到/root/.bashrc的 …"
June 21, 2011
centos下安装RabbitMQ消息队列
"这里环境为centos7 64位. 一。安装erlang\n[shell]su -c ‘rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm’ sudo yum install erlang[/shell]\n二。安装rabbitmq\n我们是用CentOS7(RHEL7也一样),可以从这里: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse 找到安装有erlang的RHEL7(CentOS同)软件仓库并安装:\n[shell] wget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.0/rabbitmq-server-3.5.0-1.noarch.rpm\nsudo rpm –import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc sudo yum install …"
June 20, 2011
老生常谈: ulimit问题及其影响
"ulimit最初设计是用来限制进程对资源的使用情况的,因为早期的系统系统资源包括内存,CPU都是非常有限的,系统要保持公平,就要限制大家的使用,以达到一个相对公平的环境。以下是典型的机器默认的限制情况:\n$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 204800 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 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time …"
June 17, 2011
iostat来对linux硬盘IO性能进行了解
"以前一直不太会用这个参数。现在认真研究了一下iostat,因为刚好有台重要的服务器压力高,所以放上来分析一下.下面这台就是IO有压力过大的服务器\n$iostat -x 1 Linux 2.6.33-fukai (fukai-laptop) _i686_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.47 0.50 8.96 48.26 0.00 36.82 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 6.00 273.00 99.00 7.00 2240.00 2240.00 42.26 1.12 10.57 7.96 84.40 sdb 0.00 4.00 0.00 350.00 0.00 2068.00 5.91 0.55 1.58 0.54 18.80 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作 …"
June 16, 2011
Linux系统设置–ulimit
"**功能说明:**控制shell程序的资源。\n**语 法:**ulimit [-aHS][-c ][-d \u0026lt;数据节区大小\u0026gt;][-f \u0026lt;文件大小\u0026gt;][-m \u0026lt;内存大小\u0026gt;][-n \u0026lt;文件数目\u0026gt;][-p \u0026lt;缓冲区大小\u0026gt;][-s \u0026lt;堆叠大小\u0026gt;][-t ][-u \u0026lt;程序数目\u0026gt;][-v \u0026lt;虚拟内存大小\u0026gt;]\n**补充说明:**ulimit为shell内建指令,可用来控制shell执行程序的资源。\n参 数: -a 显示目前资源限制的设定。 -c 设定core文件的最大值,单位为区块。 -d \u0026lt;数据节区大小\u0026gt; 程序数据节区的最大值,单位为KB。 -f \u0026lt;文件大小\u0026gt; shell所能建立的最大文件,单位为区块。 -H 设定资源的硬性限制,也就是管理员所设下的限制。 -m \u0026lt;内存大小\u0026gt; 指定可使用内存的上限,单位为KB。 -n \u0026lt;文件数目\u0026gt; 指定同一时间最多可开启的文件数。 -p \u0026lt;缓冲区大小\u0026gt; 指定管道缓冲区的大小,单位512字节。 -s \u0026lt;堆叠大 …"
June 16, 2011
c语言socket编程常用函数2
"socket()函数\n#include #include int socket(int domain, int type, int protocol); domain应该设置为”AF_INET”,和上面数据结构 struct sockaddr_in 中一样,或者其它的type 告诉内容是SOCK_STREAM还是SOCK_DGRAM 类型,或者其它的. protocol 设置为0.\nsocket()只是返回以后在系统调用中可能用到的socket描述符,或者错误的时候返回-1.全局变量errno中将存储返回的错误值.\n===================== bind() 函数 一旦你有一个套接字,你可能要将套接字和机器上的一定的端口关联起来。 ( 如果你想用 listen() 来侦听一定端口的数据,这是必要一步 –MUD 告 诉你说用命令 “telnet x.y.z 6969” 。 ) 如果你只想用 connect() ,那么这个步骤没有必 要 。 但是无论如何,请继续读下去。\n这里是系统调用 bind() 的大概:\n#include #include int bind(int …"
June 16, 2011
c语言socket编程笔记1
"struct sockaddr { unsigned short sa_family; // 地址家族,Af_XXX char sa_data[14]; // 14字节协议地址 };\nsa_family 能够是各种各样的类型,但是在这篇文章中都是”AF_INET” 。 sa_data 包含套接字中的目标地址和端口信息。 这好像有点不明智。\n=====================================\n为了处理 struct sockaddr,程序员创造了一个并列的结构: struct sockaddr_in (“in” 代表 “Internet”)\nstruct sockaddr_in { short int sin_family; //通讯类型(同struct sockadd中的sa_family一样可设置为 AF_INET ) struct in_addr sin_addr; //Internet 地址(结构体见下,网络字节顺序,储存 4 字节的 IP 地址) unsigned short int sin_port; //端口(网络字节顺序) unsigned …"