nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

2015年3月17日 12 条评论

/usr/local/nginx/sbin/nginx 启动nginx报错,信息如下:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
…..

使用ps -ef|grep nginx,并未发现有nginx进程,有可能被其他进程占用,这时可以采用如下方式处理:

1. 查看80端口占用
netstat -ntpl

2. 杀掉占用80端口的进程

kill -9 $pid

htmlcleaner 使用说明

2014年12月22日 3 条评论

说明

在编程的时候或者写网络爬虫的时候,经常需要对html进行解析,抽取其中有用的数据。一款好的工具是特别有用的,能提供很多的帮助,网上有很多这样的工具,比如:htmlcleaner、htmlparser
经使用比较:感觉 htmlcleaner 比 htmlparser 好用,尤其是htmlcleaner 的 xpath特好用。
htmlcleaner 下载地址:htmlcleaner2_1.jar 源码下载:htmlcleaner2_1-all.zip
下面针对htmlcleaner进行举例说明,需求为:取出title,name=”my_href” 的链接,div的class=”d_1″下的所有li内容。

阅读全文…

两个谷歌浏览器书签同步

2014年7月19日 4 条评论

第一步:首先打开谷歌浏览器。
第二步:打开右上角的列表栏,点击“设置”。
第三步:点击“登录Chrome”。
第四步:输入你的Google账户,如果没有,点击“创建Google账户”,创建好后再登录。
第五步:登录好后,会弹出“确认同步设置”的窗口,点击“确定,同步所有内容”。
同步好以后,换不同的电脑也可以使用同一个电脑的书签啦。

解决nginx session共享的问题

2013年9月17日 3 条评论

不使用session,换作cookie

能把session改成cookie,就能避开session的一些弊端,在从前看的一本J2EE的书上,也指明在集群系统中不能用session,否则惹出祸端来就不好办。如果系统不复杂,就优先考虑能否将session去掉,改动起来非常麻烦的话,再用下面的办法。

应用服务器自行实现共享

已知的,php可以用数据库或memcached来保存session,从而在php本身建立了一个session集群,用这样的方式可以令 session保证稳定,即使某个节点有故障,session也不会丢失,适用于较为严格但请求量不高的场合。但是它的效率是不会很高的,不适用于对效率 要求高的场合。
以上两个办法都跟nginx没什么关系,下面来说说用nginx该如何处理:

阅读全文…

JSPSupportServlet Struts2与FreeMarker配合使用

2013年9月6日 4 条评论

摘要

FreeMarker模板文件是由FTL(FreeMarker模板语言)编写的,而Struts2框架已经提供了非常完善的标签库,如果在 FreeMarker模板文件中使用FTL,需要开发者学习FTL指令规则,带来了不必要的麻烦。实际上,FreeMarker在Struts2框架内可 以使用Struts2框架提供的标签库。
在FreeMarker使用标签库之前,需要进行如下配置。

复制标签库文件

Struts2的标签库位于struts-core-x.x.x.jar文件中,在该压缩文件的META-INF目录下,有一个struts-tags.tld标签库文件,需要将该文件加压处理,保存到Web应用的/WEB-INF目录下。

配置JSPSupportServlet

要使用FreeMarker,还需要在web.xml文件配置FreeMarker,这样Web应用在启动时会自动加载该Servlet
代码如下所示:

 <servlet>
  <!-配置servlet->
  <servlet-name>JSPSupportServlet</servelt-name>
  <servlet-class
   org.apache.struts2.views.JSPSupportServlet
  </servlet-class>
 </servlet>

阅读全文…

Office2010激活工具mini-KMS_Activator_v1.3

2013年7月26日 没有评论

之前的老版本1.2已经不能激活Office2010,需要下载最新的mini-KMS_Activator_v1.3来进行激活

点击这里下载文件: mini-KMS_Activator_v1.3_Office2010_VL_ENG.zip

之前的老版本:

注意:一些杀毒软件报毒,不信任请不要下载使用。
点击这里下载文件: mini-KMS_Activator_v1.2_Office2010_VL_ENG.zip

项目经理主要工作及职责

2013年7月21日 没有评论

项目经理工作内容及职责
1、与市场人员沟通项目的基本情况,客户主要领导、部门的情况,主要参与人员的关系,前期的一些目标、期望、工期。
了解项目采用的技术路线、客户信息部门的情况。
2、根据项目基本情况,了解相关的背景知识,以免说外行话,尽量采用与客户习惯相同的术语
3、根据经验和工作量估算,组建项目团队,确定需要的人员能力、数量等(一般不要选择多于2人的女士,女士不要太漂亮,要沉稳些)
4、安排项目总体计划(最好分解为阶段计划,采用迭代方式进行,每个小计划明确目标,周期控制在1-1.5月,先完成主要的、难度大的部分)、培训计划与程序经理确定项目采用的ide、基础环境、工具、os等,并统一版本
5、培训内容包括业务培训、技术培训、编码标准培训。
阅读全文…

网站百度快照更新慢的原因

2013年7月14日 2 条评论

很多的站长都在郁闷百度快照为什么更新的那么慢,那我就将一些和百度快照的经验和各位分享下。

网站内容

网站的内容对快照以及百度收录与否起着重要的作用,相信不会有人怀疑百度蜘蛛对原创文章的重视程度。
博客爱积累爱分享:http://www.iitshare.com/ 的文章虽然不多(每天更新一篇)但全部是自己一个字一个字码出来的,绝对的原创。博客一月下来文章总数大概有22左右,目前的收录和快照就是见证。
所以如果想要网站快照更新的及时,增加内容的原创性必不可少。即使你没有原创文章的时间也得弄点伪原创不是,实在是没时间写的就只能复制粘贴了,但是标题必须改改。

文章更新时间

很多站长朋友容易忽视这个因素,都是发现了好文章就转载或者伪原创到自己的站上,殊不知这样的做法并不是最好。
每天定时的将文章更新到网站能够养成蜘蛛定时来抓取的好习惯,对培养网站权重是很有好处的。
爱积累爱分享的很多文章都是在发布后一小时之内就被收录并且可以site到的,这对于一个刚满月的新站来说还是比较不错的。

阅读全文…

执行测试用例的注意事项

2013年7月11日 没有评论

当测试用例编写完成,并通过审核后,就进入到软件测试最主要的阶段,就是执行测试用例,进行软件测试。不过在执行测试是有几个地方需要注意:
  1、仔细检查软件测试环境是否搭建成功与稳定,因为测试用例中的执行都是建立在这个测试环境之上的,如果测试环境的不一致,会影响测试用例的执行,和测试目的的证明。
  2、注意测试用例中的前提条件和特殊规程说明。因为有些测试软件是有顺序性的,那么它的测试用例就会有一些执行前提或特殊说明。比如要测试某个软件的登陆功能,那么测试前必须创建用户,并为用户分配一定的权限等。如果前提条件和特殊说明没有注意,会导致测试用例的无法执行。  
阅读全文…

loadrunner的场景设置

2013年7月6日 没有评论

loadrunner场景设置的方法:

1.逐步增加用户数,分多次去运行场景。比如:第一次运行50并发,第二次运行100并发……

2.针对同一个脚本设置多个组,使用组策略(点击Edit Schedule按钮,选择Schedule by Group),第一个组为初始用户数,如100,第二个组以50或100递增。每个用户场景都持续稳定地运行一段时间,这样可以把几种用户场景下的测试在一次场景的运行过程中就一次性执行完毕,而且还有一个好处是可以把多个用户场景下的性能结果都整合到同一个结果中,也方便对比、分析。

按组计划一般可用于比较复杂的业务流程中。比如,我们要实现用户注册系统,然后发贴,而论坛管理员认为这些帖子是非法的,需要将这些帖子删除。此时,我们就需要用到按组计划了。
按组计划的优点是可以设置在同一场景中不同脚本执行的先后顺序,可以组合处复杂的业务逻辑。
在Schedule by Group中方式,比按场景计划多了”Start Time”选项卡,Start Time中脚本有三种执行方式:
第一个:在场景开始时启动;
第二个:场景开始运行一段时间后开始,这种方式需要指定具体的开始时间;
第三个:在某些特定虚拟用户组运行完成后开始,这种方式适用于具有耦合关系的虚拟用户组。
通过后两种方式可以体现处不同组之间执行的先后关系。
至于Ramp Up, Duration, Ramp Down的功能与 Schedule by scenario一样。
按用户组计划的方式更加灵活,能够创建实际应用中那些有约束的场景。如果一组用户执行后产生的数据记录是另外一组用户的输入,那么就学要按照”用户组”的方式配置场景。
可以通过选右边Graph中的不同场景的线来选择对象,也可只显示一个线条,再对各个场景关系进行设置!
注:Schedule by scenario是所有用户遵从场景的整体安排。