vmware虚拟机centos无法startx

重装windows7系统后,发现原来装的vmware虚拟机系统CentOS无法startX,通过虚拟机光驱挂载C:\Program Files (x86)\VMware\VMware Workstation\linux.iso文件,安装vmware-tools 可以解决问题。

mkdir /mnt/cdrom

mount -t iso9660 /dev/cdrom /mnt/cdrom

cp /mnt/cdrom/VMwareTools.8.4.2-261024.tar.gz /root/vm.tar.gz

tar -xzf vm.tar.gz

cd  vmware-tools-distrib

./INSTALL

系统会提示说vmware-tools最好在xindows环境下装,在命令行模式下装没经过测试与不支持,问是否取消安装,回答否,然后一路回车默认安装即可,装完后,startx,x windows终于启动了

my.ini中的两个重要变化

mysql5.5.3起my.ini中几个配置项的变化:

1.log_bin_trust_routine_creators改为log_bin_trust_function_creators,这个主要用于创建mysql函数时需要定义log_bin_trust_function_creators=1

2. default-character-set改为character-set-server

我们常用以上这两个来定义,要注意了。

mysql中varchar与text字段区别

varchar在mysql5.0.3之前可存0-255个字节的内容,mysql5.0.3之后可以存65535个字节,注意是字节不是字符,而text可以存65535个字符,字节与字符是不同的,mysql中不同的字符集会导致存储的字节数不同,如varchar若用utf-8的字符集,则汉字是3个字节,用latin或gbk的则是2个字节。

因此在utf-8字符集下,建表时varchar(65535)是错的,最多只有21845(65545/3),即建表时最多只可以varchar(21845),如果是gbk,则最大的是varchar(32767) 即65535/2。

所以varchar(1)表示可以存储一个汉字或一个ascii字符,实际上占用的存储空间是3个字节。

解决nginx+phpfpm常出502bad gateway的方案之一

网站常出现502 bad gateway,程序没有问题。

根据nginx日志:
connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable)
发现phpfpm的listen是unix sock方式运行的,问题可能出在php fpm上。php fpm配置文件里有backlog,backlog是linux服务器在socket处理连接数的定义,phpfpm默认为-1,将-1改为4096,重启php fpm问题解决。

我估计将phpfpm的listen改为某个端口,然后nginx 再fastcgi_pass这个端口,应该也可以解决这种问题。

如何写好需求分析

一、需求书的种类

需求实际上有两种,一种叫用户需求,一种叫开发需求,也叫需求规格说明书。用户需求一般是由用户提出,立足于用户的角度来思考需求,观众群体主要是用户群;而开发需求也就是我们普通意义上说的需求分析,一般是由项目经理或产品经理整理,面向开发人员的一种分析文件。

二、需求分析要解决以下几方面的问题

(1)我们的规划是什么,分阶段版本实现吗,每个版本要达到什么样的要求

(2)系统做出来的会是什么样的

(3)系统对软件、硬件、人文管理等有什么要求

(4)有哪些人员会使用这个系统,他们之间有什么区别

(5)需求如何与下一步的开发、测试衔接——可以通过对需求进行编号

(6)需求内容有没有分优先级,有没分版本,即哪些功能需要在哪个版本中实现,哪些功能是最优先开发

三、编写注意

(1)没有一次性写完就定论的需求分析

需求写出来后,需要进行讨论与修改,讨论时需要开发人员参与,需要用户的参与,这样才可以保证需求是有效的、可以实现的需求。另外写需求的人本身思考问题的方式也会决定其写出的需求分析文件的局限性,因此更有必要进行讨论与修正;

(2)无歧义,精确

如果写出来的是模凌两可的东西,说明你的需求还没写好,开发人员按照这个需求就会无所适从,不知该如何下手

(3)需求实现业务,但不一定要照搬业务

要明白软件是自动化的业务流程,很多现实环境的业务流程可能要好几道环节,在软件上可能只有一道环节,因为业务流程被自动化了,有些环节被自动化处理简化掉了

(4)少写废话

判断你写的内容是不是废话就看去掉你写的那些内容后,你的描述是不是还能反映你的真实意图。废话写多了容易引起误解的

(5)多画图

很多语言难以解释的东西用图示却可以很清晰的表达,这方面的工具很多,PS,PPT,MindManager,Visio,Auxre RP等,如可以借用如Auxre RP来画原型界面,有了原型界面,大家对需求的认识会更好统一。可以借用Visio来画业务流程图。

(6)用户至上,不是技术至上

需求要能符合用户的需求是最为关键的要求,其次才是系统带给用户的体验。写需求时,不能从技术人员的角度考虑,我要如何去省事省力来实现系统,当然省事省力可以降低开发成本是好事,但它不是我们的目的

四、编写内容结构示范

一、需求概述

整体描述需求内容

二、用户群体说明

说明系统用户有哪些类型,这些类型用户之间的权限区别、业务区别等

三、业务流程分析

有些系统涉及的业务流程较复杂,有必要单独说明一下

四、功能结构图

说明一下系统的整体功能有哪些

五、版本规划

六、功能需求分析

将各功能进行详细说明,可按以下部分进行:

(1)功能描述
(2)优先级与版本—优先级可分1,2,3,1级最优先,版本指的是这功能需要在哪个版本中实现是1.0版,还是2.0版
(2)业务规则说明
(3)数据要求说明—有些数据在存储上或表单输入上有要求与限制的要说明
(4)原型界面设计—原型界面
(5)前置条件–即使用本功能有没有特别要求

七、系统使用的软件与硬件环境说明

用户的投资、使用习惯等会影响系统要采用什么样的软件与硬件环境

五、编写需求分析的人员素质要求

写需求分析的人一般是项目经理或是产品经理,如果你有意向向这方面努力,那么要多学学如何写好需求分析。要写出一份好的需求分析并不容易,要求编写人员能站在用户的角度,去规划与分析好系统要实现的功能,如果有几年的开发经验对编写需求来说会更有帮助,因为有开发经验就能更好理解开发人员想要的是什么内容,关心的是什么内容。当然最重要的是用户的感觉,而不是开发人员的感觉

运行form的reset方法后select元素的值丢失问题要

在IE中,当运行form的reset方法后,如果你的select元素中的option元素没有指定selected属性,则在post表单时,该select元素不会被post,导致服务端程序无法取得该select元素的值,Firefox与chrome没这个问题,万恶的IE

nginx+php(fastcgi)+上传进度条的安装与配置

php-fpm详情见:http://syre.blogbus.com/logs/20092011.html
nginx+fastcgi见:http://www.kuqin.com/web/20080829/15611.html
php-fpm下载:http://php-fpm.anight.org/download.html
nginx介绍:http://www.ibm.com/developerworks/cn/web/wa-lo-nginx/

下载:http://sysoev.ru/nginx/nginx-0.7.30.tar.gz
下载:http://php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
下载:http://wiki.nginx.org/File:Nginx_uploadprogress_module-0.5.tar.gz
(1)装nginx
yum install pcre-devel
解压nginx-0.7.30.tar.gz与Nginx_uploadprogress_module-0.5.tar.gz(解压至/data/soft/nginx_uploadprogress_module)
./configure –prefix=/data/sys/nginx –user=nobody –group=nobody
–with-http_stub_status_module  –add-module=/data/soft/nginx_uploadprogress_module
make
make install
阅读更多

simplexml_load_file与json_encode的编码问题

1.json_encode目前只支持utf-8编码,因此如果json_encode的内容有双字节(如汉字)的字符必须先转为utf-8,否则json_encode出来的内容将为空,如:

$std = new stdclass();
$std->name=”中国”;
$std->eng = ‘china”;
$t = json_encode($std);
//在页面采用gbk情况下$t的值将是{“name”:””,eng:”china”},name属性值被清空,必须先对name进行转码,json_encode之前增加一步$std->name=iconv(‘gbk’,’utf-8′,$std->name);
//在页面采用utf-8情况下$t的值将是{“name”:”中国”,eng:”china”}

2simplexml_load_file的编码问题
在utf-8情况下是正常的,但在gbk环境下发现simplexml_load_file(“xml文件”)时,不管xml文件是gbk还是utf-8编码,simplexml_load_file出来的节点相关内容都是utf-8属性,所以如果页面采用非utf-8编码时必须进行iconv转码。

tinymce3.2.2.1跨域使用解决方案

TinyMCE是一个很优秀的可视化编辑器,在最近项目使用中,由于跨域使用产生了一些问题。
项目中,TinyMCE位于http://img.xxx.com/editor/tinymce中,而我的应用在http://life.xxx.com,life.xxx.com调用tinymce时用:
<script type=text/javascript src=http://img.xxx.com/editor/tinymce/tiny_mce.js></script>

这样当你点击tinymce的插入图片等有弹出窗口的功能按钮时,系统会报在tiny_mce_popup.js中产生“Permission Denied”的错误,根据官方文档的解析,在最新的3.2.2.1版中建议在tiny_mce_popup.js的最前面增加document.domain=”xxx.com”一句,由于tiny_mce_popup.js是由tinymce在运行中自行引入的,无法由我们的程序在运行中自动设定,因此如果在tiny_mce_popup.js中写上这句话会让系统变成硬编码,当我们每次域名变更时都要来更改这个文件。而我们想法是最好是这句话可以由系统自动产生,不需要人为加上这一句,为此必须在tiny_mce_popup.js加一几行hack代码:
阅读更多

activecollab2.3安装后显示空白的问题解决

activeCollab是一个优秀的项目管理工具,安装后页面显示空白,在windows机上一切正常,但在我的linux服务器有一台可以正常显示,一台显示安白,以排查,发现在activecollab/angie/classes/smarty/internals/cor.write_file.php文件中的方法smarty_core_write_file修改一下可正常:
@unlink($params[‘filename’]);
@rename($_tmp_file, $params[‘filename’]);
改为
@unlink($params[‘filename’]);
 file_put_contents($params[‘filename’], $params[‘contents’]);

原因是smarty无法将$_tmp_filere进行rename,具体原因还不清楚,通过将rename改为file_put_contents可以解决