nginx和tomcat的集成笔记在php下面,php+mysql+apche称之为黄金搭配,apache作为官方的web服务器,用户相当的多!在nginx出现之后,以绝对的高性能抢夺了大家的眼球,这些都是网络上说的。不过至少,有很多大型的网站都在用,比如新浪、搜狐、腾讯、豆瓣、人人等等等。我本来是打算采用php+nginx做为架构的,时间、能力不允许啊!还是回归自己的路了,tomcat当然是首选的服务器,数据库当然是mysql。这几个月,有些顺了,最近有些偏离轨迹,工作没做好,今天挨批了,认错。人啊!在顺一点的时候,真会忘乎所以的!受点打击是好事,能清醒不少!扯远了!还是继续原来的话题。我分别在win2008 和虚拟机ubuntu10.10上面搭建了nginx-0.9.6+tomcat-7.0.11的服务器,这样,还可以做负载均衡!win下面nginx-0.9.6+tomcat-7.0.11的搭建在http://nginx.org/en/download.html下载nginx,zip格式的是win平台的,tar.gz格式的是linux平台的解压之后,在DOS下面直接使用D:serverginx-0.9.6ginx.exe,就可以启动nginx,默认是80端口,打开http://localhost/ 就能看到nginx的欢迎界面!tomcat7依旧使用D:serverapache-tomcat-7.0.11instartup.bat启动,默认8080端口,打开http://localhost:8080/ 就能看到tomcat的欢迎界面!我的目的是能够实现就行,具体的一些细节配置信息,要根据时间的环境再配置。我的额配置如下:打开D:serverginx-0.9.6confginx.conf内容worker_processes 1;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;upstream tomcat_server {server localhost:8080;}server {listen 80;server_name localhost;location / {proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http://tomcat_server;index index.html index.htm index.jsp;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}}完成,重启一下tomcat和nginxnginx的停止命令:D:serverginx-0.9.6ginx.exe -s stop再次打开http://localhost/ 就打开的tomcat的欢迎页面了,http://localhost:8080/ 也是可以访问的。ubuntu下面nginx-0.9.6+tomcat-7.0.11的搭建对了,我使用的jdk是1.6的版本,取当前最新版的稳定版本,安装jdk并且配置好环境变量,tomcat解压后,修改tomcat-7.0.11/bin/startup.sh的权限,简单就使用sudo chmod 777 *,其实这些shell脚本有可执行的权限就可以了。这时启动startup.sh,打开http://192.168.128.131:8080/ 就是tomcat的界面了,我的ubuntu的虚机ip是192.168.128.131,把防火墙关闭了。在linux下面安装软件就是麻烦,可能这就是证明是技术N人的方法吧!下载的linux下的nginx是二进制文件,需要编译,才能安装的,这样也稳定。解压nginx-0.9.6.tar.gz,进入nginx-0.9.6,开始编译sudo ./configure编译 很有可能出错,缺少依赖库,会有提醒的,根据提醒安装就行。我在ubutnu上面搭建了git服务器,现在只缺少g++,使用命令sudo apt-get install g++ 就可以安装好了。我之前配置过apache,apache使用的也是80端口,和nginx冲突,看修改端口,我嫌麻烦,就直接卸载了。sudo apt-get remove apahce2卸载之后,可能会有一些遗留无用的,使用sudo apt-get autoremove 可以自动卸载还需要PCRE的支持,在 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载就可以,我用的是8.02的版本,其实最新版是8.12的,他们的排序有问题,这个能用就行了。PCRE也是二进制文件,需要编译安装。解压pcre-8.02.tar.gz 进入pcre-8.02 快的话,可以用sudo ./configure && make && make install 一次搞定,我习惯一句一句执行,这样可以看看编译情况。PCRE好了之后,就开始编译nginx了,命令依旧可以用 sudo ./configure && make && make install使用sudo /usr/local/nginx/sbin/nginx 来启动nginx,打开http://192.168.128.131 就能看到nginx的欢迎页面。使用sudo /usr/local/nginx/sbin/nginx -s stop 来停止nginx。开始配置文件,我是把win下面的配置copy过来的。用sudo /usr/local/nginx/sbin -t 可以验证配置文件是否正确用sudo /usr/local/nginx/sbin/nginx 启动nginx,就可以发现这个时候,这次打开是tomcat的欢迎界面了!今天的任务就算是完成了!还有一些遗憾是,因为安装的时候,nginx用的是root权限编译安装的,tomcat用的是普通管理员,最后不能把tomcat和nginx作为开机的自动启动项。应该是可以设置的,今天的目的已经完成,暂时就作为手动启动额吧!现在操作linux,我都是使用ssh来完成的,现在公司里面,登录ssh后都有一些欢迎信息,还把一些常用的命令、目录打印了出来,方便使用,我也把tomcat和nginx的命令整理了出来,修改的方法如下:1.编辑 vi /etc/issue.net2.vi /etc/ssh/sshd_config 找到 #Banner /some/path 并修改。去掉#号的注释,然后把路径指向 /etc/issue.net 这个文件。改为:Banner /etc/issue.net3.重启 sshd服务或者重启机器,就能看到欢迎信息了我的 /etc/issue.net 内容Welcome to dapeng.metomcat7 /apps/tomcat-7.0.11/bin/startup.sh/apps/tomcat-7.0.11/bin/shutdown.shnginx sudo /usr/local/nginx/sbin/nginxsudo /usr/local/nginx/sbin/nginx -s stop注意:在ubuntu下面执行脚本或者命令,在脚本或者命令前加sudo
本来是打算找一个模板直接使用的,没有找到到合适的,自己写好麻烦的啊!很早就知道960css的这个框架了,趁这个机会学学,找到一篇比较容易入门的基础,推荐阅读。 CSS框架已经出现很长时间了,关于这些框架的用处也被我们讨论了很多遍了。有人说,CSS框架不够先进,还有人说这些框架大大的节省了他们的开发时间。在此,我们将不再讨论这个问题。 前段时间,我了解到了CSS框架。经过对Malo、BluePrint和960做了实验对比后,我得出一个结论:我最喜欢960CSS框架。 本教程将解释这个框架的基本原理,这样你就可以用960来快速进入开发。 基本原理 你必须知道一些基本原理来“学习这个框架是如何工作的”。你可以通过实验(或者是用firebug)来学习它,不过我也将会在这里为你介绍它。让我们开始吧。 不要编辑960.css文件 首先是一个小提示:不要编辑960.css文件,否则,将来你将不能更新这个框架。因为尽管我们需要布局我们的HTML,我们将创建一个独立的CSS文件。 加载网格 因为我们可以使用一个外部文件的CSS代码,我们必须在我们的HTML网站中加载它们,我们可以通过以下代码来实现: <link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/960/reset.css” /> <link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/960/960.css” /> <link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/960/text.css” /> 这些做好了之后,我们必须添加我们自己的CSS文件。例如,你可以叫这个文件为style.css或site.css或者其它任何名字。用下面代码引用这个文件: <link rel=”stylesheet” type=”text/css” media=”all” href=”path/to/style.css” /> 容器 在960框架中,你可以选择名为.container_12和.container_16的两个容器class。他们都是960px的宽度(这就是为什么叫960),它们的不同是分的列数不同。.container_12被分割为12列,.container_16被分割为16列。这些960px宽的容器是水平居中的。 网格/列 有很多列宽可供选择,而且在这两个容器里,这些宽度也不相同。你可以通过打开960.css文件来查看这些宽度。但是这对于设计一个网站来说是不必要的。有一个小技巧可以让这个框架更加易用。 比如,你想要在你的容器里建两列(叫sidebar/content)。你可以这样做: <div class=”container_12″> <div class=”grid_4″>sidebar</div> <div class=”grid_8″>main content</div> </div> 可以看到,你的第一列(grid_4)的数字加上第二列(grid_8)的数字正好是12。也就是说,你不必知道每一列的宽度,你可以选择列宽通过一些简单的数学计算。 如果我们要建一个4列的布局,代码可以是这样的: <div class=”container_12″> <div class=”grid_2″>sidebar</div> <div class=”grid_6″>main content</div> <div class=”grid_2″>photo’s</div> <div class=”grid_2″>advertisement</div> </div> 正如你所看到的那样,这个系统依然很完美。但是如果你想使用嵌套的列的话,你会发现它是有问题的。比如,如果后面三列都属于content列: <div class=”container_12″> <div class=”grid_2″>sidebar</div> <div class=”grid_10″> <div class=”grid_6″>main content</div> <div class=”grid_2″>photo’s</div> <div class=”grid_2″>advertisement</div> </div> </div> 你会发现这错位了,不过不用着急,这正是我们下一节要说的。 间距 默认情况下,每列之间都有间距。每一个grid_(这里代表数字)class左右都有10个像素的间距。也就是说,两列之间,总共有20px的间距。 20px间距对创建一个有足够宽的空白间距的布局来说是很棒的,它可以让一切看起来很自然。这也是我喜欢使用960的原因之一。 在上面的例子中,我们遇到了个问题,现在我们就来解决它。 问题是,每一列都有左右边距。而嵌套的三列中,第一列和最后一列是不需要边距的,解决方法是: <div class=”container_12″> <div class=”grid_2″>sidebar</div> <div class=”grid_10″> <div class=”grid_6 alpha”>main content</div> <div class=”grid_2″>photo’s</div> <div class=”grid_2 omega”>advertisement</div> </div> </div> 我们可以简单的添加”alpha“样式来去掉左边的间距,添加“omega”样式来去除右边的间距。这样我们刚刚创建的这个例子在任何浏览器里面就很完美了(当然包括IE6)。 样式 好了,你现在已经完全了解如果用960框架来创建一个网格布局的基本原理了。当然,我们也可以添加一些样式到我们的布局中。 <div class=”container_12″> <div id=”sidebar” class=”grid_2″>sidebar</div> <div id=”content” class=”grid_10″> <div id=”main_content” class=”grid_6 alpha”>main content</div> <div id=”photo” class=”grid_2″>photo’s</div> <div id=”advertise” class=”grid_2 omega”>advertisement</div> </div> </div> 因为CSS使用特性来确定哪一个样式声明具有高于其它样式的优先级。”id“比class更重要。 用这种方法,我们可以在自己的文件中重写那些被class设定的规则(比如宽度,padding,边框等)。 我也添加一些样式,它们整整花费了我5分钟来整理整个例子。查看示例的源代码和样式声明。. 搞定 就这样。你已经学习了如果使用960框架来建立跨浏览器兼容性和整洁的布局了。当你完全掌握了960框架后,你将大大地减少编写CSS的时间。 如果你还不理解,研究一下示例吧。 我留给你的问题: 你使用960CSS框架吗?或者你使用其它框架?你认为框架可以帮你提升你的代码吗? Translate From: divitodesign 来源:http://www.qianduan.net/960css-the-framework-of-the-basic-principles-of.html
php框架也是多多,了解一些mvc就能吹说写出一个什么样的框架,有了学java的经验,我在选择框架的时候,直接是在php比较专业的论坛中看大家的推荐,推荐的都比较多,也各有特点,我着重看了zend、codeigniter、thinkphp的架构和使用。 zend是官方的产品,完全的oop设计,作为企业开发的首选。 codeigniter轻巧简便,很轻量级。 thinkphp国产货,也是轻便灵巧的路。 都属于精品吧!zend作为的官方的产品,市场上面肯定有他的份额存在,而作为快速开发,还是有些臃肿了。codeigniter很灵便,看网站的介绍,也有很多成功的网站案例,毕竟外国货,虽说有全套的中文文档,还是少些。thinkphp灵巧,中文的文档也多,在功能上面也不逊色与codeigniter,比较推荐爱国者使用。
最近公司在搞封闭开发,其实也就是把相关的几个部门的人集中在一起做开发,这样很便于交流。公司要求加班,这次的加班的报酬还算不错,让人有些能加班就有钱的欲望。不过,这钱是一方面,另外一方面是要有干活的激情。这一方面,我觉得公司很差劲,让人觉得是这就是一场买卖,我干活,你给我钱,给不了人一种归属感,有谁会很有心的用干啊! 我很佩服之前公司的老板,本来就是做销售出身,换了好几十个工作,阅历丰富。和他聊天,如果脑子不清晰点,就会被他进去,但说的都是很有道理,而且,说起来,会让人很兴奋。在公司打硬仗的时候,他的勇气论很受用,每个人都能拼了命的去做,这点也就是现在我所在公司缺少,我现在还没发现有哪个人有这样的能力。 这几天每天都是2点了才睡觉,每天我都是想着早点睡的。晚上回来都快10点了,再稍微先乱整一下,就11点了,再想看点东西、写点东西,就过12点了。现在有点自己的想法,就想快点去做,每天都在逼自己,先把这段时间忙过完吧!忙完,一定要出去转转。前几天在看TYPECHO的源码,其中有说到,采用组件的模式,在基本完整的看完TYPECHO的源码后,需要纠正一下我的观点,TYPECHO采用的WIDGET的方式,MVC的模式在主题中还是使用的,一个稍有架构的系统,最起码的要求应该就是UI层和逻辑层的分离。本来是打算自己用PHP写一套适用于自己的框架的,在研究TYPECHO后,这个对我这个半路出家的PHPER来说,还是有相当的难度的,考虑后,决定使用一些框架来做吧!看过一些PHP的框架,thinkphp、 codeigniter、zend framework还有一些其他的,各有特色吧!我的选择是简单、能快速上手、扩充性好的,如果能在性能上也有优势,那就更好了!
现在在IT这个行业里面,做一点点东西出来,就出来谈架构,所以我也出来溜溜了!哈哈!已经写过一次了,没保存,给没有了,这次是重新写的,之前那次的灵感没有了啊!我参与过一个大型的项目,采用的是JAVA开发,使用的是MVC的模式,用流行的SSH来架构,项目的特色是引入了中间件。最近我研究的就是typecho,用PHP开发,我特别看好的采用的是WIDGET(组件)的模式,任何一个功能都是一个WIDGET。我就准备在下次做开发的时候,就使用WIDGET的模式,MVC的模式太流行了。MVC的模式也真的很不错,但真的很适合每一个项目,不一定吧!一种模式的使用,总有他的适合的场景,看一下现在到处都是的项目,基本全是MVC。最近准备做个小系统,我的本行是JAVA,如果用JAVA来做,在加上快速的MVC的话,我也能玩得转,不过,我想换换,毕竟,作为一个码农,专一一种语言是好事,换一种语言、换一种模式,是一种挑战,这样才好玩嘛!现在还在继续研究中,对于WIDGET的方式,还不是很懂,虽然TYPECHO是开源的,而且注释写的很好,我还是很多的不明白。我研究的方式就是从index.php来跟踪,一行一行的把代码重新写一次,继续研究吧!希望自己能尽快写出这样的代码啊!
杂记2011-03-11杂记一下,我没有多么好的文笔,也没有多么高的情商,不想去和人玩那么多的心眼,也不愿意随着大多数人所谓的潮流去追逐,就想简简单单的过着,简单一点的生活,称其为简约的生活。很多人都想的是过这样的生活,这个社会很现实,大家被社会逼的也都很现实,我反正是这样。简约的生活,我是作为一个追求,在一个现实的社会中,尽量的过一些简约的生活。什么的生活是简约的生活,个人滋味,各自品味。只要让自己能感觉到幸福就行!这个让我想到,今年说出来了有多少多少的幸福指数,大家都是心知肚明,何必呢!实实在在的做些实在的,才是正道。或者做些实在的,加加油,添添醋,搞点虚的,我不反对,不要太离谱了。我的观点是,少说点,多做些。我不反对忽悠,只要忽悠的好,我佩服。可悲的有种,说不出来,也做不出来的。感觉我就属于这种的,说,不知道怎么说,做,咋做呢?大家都在问这问题,我就有几个朋友问我,让我给他说说,他该怎么做,这个,鬼才知道。我都不知道我做什么呢!人啊,需要有个规划,前提,是要了解自己。我不了解我自己,我的规划做的不好,很明显不好的一点,不会理财,不会赚钱,也不知道咱们花钱。
我在项目中的笔记3项目中最重要的要明白这个项目的目标是什么,和做任何事情一样,都需要有一个目标,如果没有目标,那真的是什么也不会知道,做任何事情都是盲目的。最近这几天自认为还不错,能把握住事情的进度发展,这块有些收获,整理一下。1、做事的方法基本是按照时间管理提到的,收集、整理、实行、回顾,这个方式不错,值得继续保持。 2、具体做的就是把自己的所以的事情,或者是想到的首先放到收集的栏目里面,如果有重要的事情,就立即做分解,如果没有,就找空来整理分解。现在的事情不是很多,就是很杂,我主要是把当下要做的和临近要作为一类。3、还有一些或许要做的,或者将来要做的,我也会划分出来,不过,这些都不多,我很会抽空将它处理掉,要么删除掉,要么就是作为一个想法保留到其他地方了,如果是固定的,就用google日历了。4、当下要做的和临近要做的,我会选择一些能快速做的,或者重要一些,这些不会很多,处理之后,再移到类似一个正在处理或者进入日程中的栏目。5、我最关注的是待办的和正在处理的,这两个经常是个交替的,有很多的时候,根据情况的变化,变换现在的状态,但最终都要完成的。6、我对完成得事情,是按照工作的分类来区别,这样别于以后可以回顾,查找。
我在项目中的笔记1【开篇】 工作也很久了,说大点,给别人还能吹吹,说自己还带过团队,管过项目,可实际肚子里面装了多少,自己最清楚,能骗了别人,骗不了自己,所以啊,就把自己在项目中的经历记下来,或许是经验,也有可能是教训,还有可能记录的是失败。很阿Q的说,是比不小的财富。 笔记的内容会很杂,围绕的主题是自己的项目经历,其中我会找些项目方面的资料,也会加进来,做为自己的学习笔记。 作为开篇,做个卷首语。
2011年初的记事 2010年的总结其实蛮多的,现在总觉得缺少时间,也就意思意思一下了。活在当下,还是个很流行的概念,重点还是放在现在吧! 对我来说2009年,是个拼的年,2010年是个放松的一年,2011年,是个决战年。2011年之前,我还能混,还能任意而为的,今年还行吗?我只能说,现实真的很残酷,我必须做出一些选择出来。我现在能做的选择也就是暂时的工作方向,其他,真的好难,迷茫了。 说说最近的事情吧! 一个是我的空间因为年前放进去了MP3,MP3被百度收录了,我空间了流量,没几天,就超标了,现在一因为是月初了,空间的流量做了重新统计,我也才开始写的,乘着现在的才思敏捷,多写几篇了。 另个一个是比较高兴的事,麦库送我了额VIP用户,不过,现在麦库做的还没有EVERNOTE好,所以用的还是EN,等麦库做的好一些了, 在转吧!其实麦库还有一些事情,透露一下,因为麦库没有linux的版本,我联系的麦库,准备开发linux版本的麦库,不过,最近麦库的开发人员说,他们经理请假不在,等经理回来了,才继续谈谈。这个,是我的个人兴趣吧!不过,也不一定会做,毕竟,我还有其他的事情来做的。 在就一个,说实话,我今年是打算放弃这边的一切发展,另谋出路的,因为老大给我说的,要有“要”的意识后,我决定留下来“要”了。老大的意思是,当到一定程度的时候,就需要去“要”东西,不能去等,这次和我一向的做法不一样的。其实我也想有那些东西,只是我觉得,做的能到那个层次了,那些东西自然而然就是你的了。要和抢,不是我的作风。 具体我要到了什么东西,或者是别人帮我争取到的,下篇再提。
2010年总结一【恼骚篇】 上一篇纯属是乱侃的一下,发恼骚而已,这个恼骚没发完,继续用一篇继续发发。 2009年的恼骚,2009年4月27日,到的南京,那年恼骚不多,就是心累,明白装人,很难,而且,得有个支柱,如果支柱没了,用行尸走肉形容不为过。看是我,过的挺舒服,我也憋屈的很,我很感谢这份工作,虽然,赚的钱不多,还弄的人心很累,不过,最起码,能让人,觉得人要拼起来。 2010年的恼骚,2010年初的跳槽,只是自己的给自己放放假,是打算给自己一个新的开始的,可就是事与愿违,或者还是自己不努力,丧失了机会,只能悔恨自己啊!2010年,碌碌无为! 2011年的恼骚,过了一个年之后,这个想法真改变了不少,几个月的打算在年后的几天,就变了,也不知咋个办啊! 一直我都不提个人感情的,个人感情,我只能说,估计是我情商太低的原因,感情比较的失败。