作者归档:℃冻番茄

ubuntu 9.04安装eAccelerator

ubuntu 9.04 先装好 LAMP服务器环境

在网址打上http://localhost/,应该会出现It’s Work

接下来准备安装eAccelerator

sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install m4
sudo apt-get install php5-dev
sudo apt-get install make


然后再去eAccelerator官网下载0.9.6版的
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2


下载解压缩后,打开
eaccelerator-0.9.6-rc1文件夹

接下来就进行编译,终端输入
export PHP_PREFIX="/usr"
sudo $PHP_PREFIX/bin/phpize
./configure \
–enable-eaccelerator=shared \
–with-php-config=$PHP_PREFIX/bin/php-config
sudo make

sudo make install

======安装完成======
接下来修改php.ini(正常路径会在/etc/php5/apache2里面)

sudo vi /etc/php5/apache2/php.ini

在再后加上,注意,如果有安装zendOptimizer的话,下面这段应当放在[zend]上面

 

[eaccelerator]
zend_extension=/usr/lib/php5/20060613+lfs/eaccelerator.so
eaccelerator.shm_size=16
eaccelerator.cache_dir=/tmp/eaccelerator
eaccelerator.enable=1
eaccelerator.optimizer=1
eaccelerator.check_mtime=1
eaccelerator.debug=0
eaccelerator.filter=""
eaccelerator.shm_max=0
eaccelerator.shm_ttl=0
eaccelerator.shm_prune_period=0
eaccelerator.shm_only=0
eaccelerator.compress=1
eaccelerator.compress_level=9



建立cache的目录
sudo mkdir /tmp/eaccelerator
sudo chmod 0777 /tmp/eaccelerator

重新启动apache2
sudo /etc/init.d/apache2 restart

建立一个phpinfo.php在www文件夹

 

<?php
phpinfo();
?>

在浏览可器中查找 eaccelerator 就能知道是否安装成功!

改写thinkphp内置分页类,使之支持ajax分页

在网上下了一个在原thinkphp分页类基础上添加了多种样式的分页类,但是项目要使用ajax分页,所以在它的基础上做了一点小改动,以支持ajax分页

类文件及css文件下载

page.class.php.rar

演示代码

/Lib/Action/test2Action.class.php

 

PHP代码
  1. <?php   
  2. class test2Action extends Action{   
  3.     public function index()   
  4.     {   
  5.         $this->display();   
  6.     }   
  7.   
  8.     public function ajax()   
  9.     {   
  10.         if($_GET[‘do’]==‘list’){   
  11.             $_GET[‘page’]=$_POST[‘page’];   
  12.             $perapective_=D(‘Perapective’);   
  13.             import("@.ORG.Page"); //导入分页类      
  14.             C(‘PAGE_NUMBERS’,’10’); //Discuz分布是显示前后共10页的按钮   
  15.             C(‘VAR_PAGE’,‘page’);   
  16.             C(‘AJAX_FUNCTION’,‘getlist’);   
  17.             $total = $perapective_->count();   
  18.             $pnew Page($total,5);   
  19.   
  20.             if($data=$perapective_->findAll(,,‘pid desc’,$p->firstRow.‘,’.$p->listRows)){   
  21.                 $status=0;   
  22.                 $info[‘page’] = $p->show();   
  23.                 $info[‘style’]="manu";//分页样式   
  24.             }else{   
  25.                 $status=1;   
  26.             }   
  27.             $this->ajaxReturn($data,$info,$status);    
  28.         }   
  29.     }   
  30. }   
  31. ?>  

 

前台模板文件:

 

XML/HTML代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <title>ajax测试</title>  
  5.   
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  7. <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />  
  8. <SCRIPT LANGUAGE="JavaScript" src="/public/js/jquery.js"></SCRIPT>  
  9. <style>  
  10. body{font-size:12px;}   
  11. a:link,a:visited,a:active{ color:#000; text-decoration:none;}   
  12. a:hover{ color:#87B600; text-decoration:none;}   
  13. #box{margin:20px auto;width:600px;border:1px solid #E6E6E6}   
  14. #menu{clear:both;float:right;}   
  15. #menu ul{list-style:none;clear:both;}   
  16. #menu ul li{float:left;margin:3px;width:70px;text-align:center;}   
  17. #listbox{margin:10px auto;width:580px;display:none;}   
  18. #listbox ul{list-style:none;}   
  19. #listbox ul li{color:blue;padding-top:10px;}   
  20. #page{clear:both;text-align:left;padding-left:35px;}   
  21. .clear{clear:both;}   
  22. </style>  
  23. <link rel="stylesheet" type="text/css" href="/public/css/style2.css" />  
  24. </head>  
  25. <body>  
  26.   
  27. <div id="box">  
  28.     <div id="menu">  
  29.         <ul>  
  30.                
  31.         </ul>  
  32.            
  33.     </div>  
  34.     <div id="listbox"></div>  
  35.        
  36.     <div class="clear"></div>  
  37. </div>  
  38. <SCRIPT LANGUAGE="JavaScript">  
  39. <!–   
  40.     function getlist(page){   
  41.         url="/test2/ajax/do/list";   
  42.         var html="";   
  43.         $.post(url,{page:page},function(data){   
  44.             list=data.data;   
  45.             page=data.info.page;   
  46.             style=data.info.style;   
  47.             status=data.status;   
  48.             if(status==0){   
  49.                 html+="<ul>";   
  50.                 for(var i = 0; i < list.length; i++){   
  51.                     html+="<li>"+list[i].title+"</li>"   
  52.                 }   
  53.                 html+="</ul>";   
  54.                 html+="<div id=‘page’ class=‘"+style+"’>"+page+"</div>";   
  55.             }else{   
  56.                 html+="无数据!";   
  57.             }   
  58.             $("#listbox").html(html);   
  59.             $("#listbox").show();   
  60.         },"json");   
  61.     }   
  62.     getlist(1);   
  63. //–>  
  64. </SCRIPT>  
  65. </body>  

 

效果图

ddd.jpg

ubuntu安装denyhosts防止暴力破解远程SSH

上网被扫描是经常的事,为了避免 ssh 帐号和密码被暴力破解,可以利用 denyhosts 来加强系统安全性。

1.安装
sudo apt-get install denyhosts

2.配置 /etc/denyhosts.conf 。内容参考:

sshd 登录日志文件。不同系统的不一样。
SECURE_LOG = /var/log/auth.log

限制主机访问的文件
HOSTS_DENY = /etc/hosts.deny

移除 HOSTS_DENY 中超过以下时间的旧条目
PURGE_DENY = 1w

阻止的服务。默认是 sshd ,可以设置为其他或全部。
BLOCK_SERVICE  = sshd

当该主机利用无效用户进行登录尝试失败超过以下的次数时,阻止该主机
DENY_THRESHOLD_INVALID = 3

针对有效用户的
DENY_THRESHOLD_VALID = 4

针对 root 用户的
DENY_THRESHOLD_ROOT = 1

针对有限制的用户的
DENY_THRESHOLD_RESTRICTED = 1

DenyHosts 用于写数据用的。在里面可以看到 hosts,hosts-root,offset,users-hosts,users-valid,hosts-restricted,hosts-valid,suspicious-logins,users-invalid 这些记录。
WORK_DIR = /var/lib/denyhosts

当为 YES 时,如果允许的主机在登录时被认为可疑,则对该主机进行记录。当为 NO 时,如果允许的主机在登录时被认为可疑也不对该主机进行记录。在允许的主机范围外的主机的可疑登录全部会被记录。
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES

反向域名解释
HOSTNAME_LOOKUP=NO

这个文件存在表示 Denyhosts 正在运行。用于保证每次只有一个实例在运行。
LOCK_FILE = /var/run/denyhosts.pid

管理员 EMail
ADMIN_EMAIL = root@localhost

SMTP 主机设置。如果有 SMTP 服务支持,可以给管理员发邮件。
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report

如果在指定的时间内没有失败的登录尝试,将导致此主机的失败计数重置为0。此值适用于除了 root 之外,所有有效用户(在 /etc/passwd 中的)的登录尝试。如果没有定义,这个计数将永远不会重置。
AGE_RESET_VALID=5d

针对 root 用户的
AGE_RESET_ROOT=25d

针对有限制的用户的
AGE_RESET_RESTRICTED=25d

针对无效用户(不在 /etc/passwd 中的)
AGE_RESET_INVALID=1w

当登录成功时,把登录成功的失败计数重置为0。默认是 NO。
#RESET_ON_SUCCESS = yes

当以后台方式运行时,Denyhosts 的日志文件,留空不记录日志。
#DAEMON_LOG = /var/log/denyhosts

当以后台方式运行时,每读一次日志文件的时间间隔。
DAEMON_SLEEP = 30s

当以后台方式运行时,清除机制在 HOSTS_DENY 中终止旧条目的时间间隔。
DAEMON_PURGE = 1h

3.重启 Denyhosts
sudo /etc/init.d/denyhosts restart

ie通过Adobe Reader控件直接显示pdf文件,并使用js调用打印功能

如果项目需要使用ie来直接显示和打印一份pdf文档的话,下面的代码可以非常方便的达到目的。

XML/HTML代码
  1. <body>    
  2. <a href="javascript:PDF1.printWithDialog();">打印</a><hr>  
  3. <object  classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" name="PDF1"  width="950"  height="633"  border="0">    
  4. <param  name="SRC"  value="a.pdf"/>    
  5. </object>    
  6. <script  language="JavaScript" type="text/javascript">  
  7.   //显示工具栏(false为隐藏)       
  8.   PDF1.SetShowToolbar(true);     
  9. </script>    
  10. </body>    

摇滚巨星迈克尔·杰克逊因心脏停博去世 终年50岁

纽约,2009年6月25日 美国歌星迈克尔·杰克逊逝世 6月25日,美国摇滚巨星迈克尔·杰克逊因心脏停搏在洛杉矶逝世,终年50岁。这是2005年6月3日,迈克尔·杰克逊在加州的资料照片。新华社发  新华网洛杉矶5月25日电 美国著名流行歌星迈克尔杰克逊25日因心脏病发作在洛杉矶的一家医院去世。

  美国《洛杉矶时报》网站援引当地警方的消息称,杰克逊当天下午因心脏病发作深度昏迷被送入洛杉矶加州大学医疗中心,不久该中心的医生正式宣布这位50岁的前流行乐坛巨星不治身亡。

巧用svn实现跨平台多服务器即时文件同步

气象项目,因为气象网站对于数据的实时性非常高,按以往的设计理念,采用多台服务器做负载均衡。文件的同步面临着一个问题,因为如果采用定时更新数据的话,一定会有一个时间上的延迟。这样的话,也许对于一个重点靠实时数据为目的的网站会是一个严重的问题,这类网站损失不起几十秒及至几分钟的数据延时。而且在文件同步的软件选择上也挺麻烦的,因为要做到跨平台,很多同步软件要么是windows的要么只支持linux

后来想来完全可以通过svn为实现文件的同步,svn在windows及linux都能非常快捷的部署,而且文件的同步效率较高,还能保存文件的历史版本,关键的是svn支持命令行操作,可以很方便的集成到网站和其它其它语言开发的软件中。

现初步的思路是(后端服务器的集群):

一台后端主服务器A(安装svn服务器、客户端,mysql服务器,nginx 网站服务器,php-cgi,气象数据的获取分析入库程序,生成html程序)

一台或多台后端分服务器B (安装svn客户端,nginx 网站服务器,php-cgi)

1、外网的一台windows气象服务器svn上传数据至服务器A 的svn【版本库1】。

2、上传完毕后通知A服务器分析气象数据并入库。

3、然后在网站目录生成html文件及图片。

4、接着通过svn客户端把网站目录上传至本身svn服务器的【版本库2】。

5、最后通知后端的分服务器B,在内网从svn服务器获取网站目录全部文件的最新版本。

 

从而实现即时的网站数据同步。

改变饮食结构可以让你拥有一个漂亮的宝贝。

>改善偏黑的肤色
有的父母肤色偏黑,孕妇就可以多吃一些富含维生素C的食物,如番茄、葡萄、柑桔、菜花、冬瓜、洋葱、大蒜、苹果、刺梨、鲜枣等蔬菜和水果,其中尤以苹果为最佳。
>告别粗糙肤质,拥有良好视力
孕妇可以多吃些富含维生素A的食物,如动物肝脏、蛋黄、牛奶、鱼肝油、胡萝卜、苹果、番茄以及绿色蔬菜和干果等。其中尤以鸡肝含维生素A为最多,胡萝卜还可以促进血色素的增加,从而提高血液的浓度,是我国民间常用的补血养血佳品。
>培育光泽油亮的乌发
如果父母头发早白或者略见枯黄、脱落,那么孕妇可多吃些含有维生素B族的食物,如瘦肉、鱼、动物肝脏、牛奶、面包、豆类、鸡蛋、紫菜、核桃、芝麻、玉米以及绿色蔬菜,这些食物可以使孩子发质得到改善,不仅浓密、乌黑、而且光泽油亮。
>让孩子个头长高
如果父母个头儿不高,应吃些富含维生素D的食物,如虾皮、蛋黄、动物肝脏以及蔬菜。
>益脑、补脑、健脑
孕妇在怀孕期间多吃些含碘丰富的食物,如海带等海产品,用以补充胎儿对碘的需要,促进胎儿甲状腺的合成,有利于胎儿大脑的良好发育。
另外孕妇在怀孕期间还应该在饮食生活上注意以下几点:
妊娠后三个月是胎儿脑细胞和脂肪细胞增殖的“敏感期”。在这个时期,孕妇一定要注意增加蛋白质、磷脂、和维生素的摄入,应多吃奶类、蛋类、瘦肉、肝、鱼、豆类和青菜,保证食品的充足供应,酱油利于胎儿的智力发育。
钙和维生素D的摄入量要充足。孕妇严重缺钙时会影响胎儿的骨骼、牙齿的构成,甚至可能导致胎儿畸形。注意补充铁等微量元素,应常吃蔬菜、海虾等。
蜂蜜对于孕妇来说是一种极好的保健品,孕妇经常食用蜂蜜,不仅能够补充各种营养素,还可以润燥通便,使孕妇心情舒畅,增强机体的消化和吸收功能。
还有一些食物是孕妇不适宜食用的,比如:生冷硬的食物,如香蕉、石花、木儿等;辛辣类的食物,比如:肉桂、花椒、丁香、胡椒;影响性功能食物,如菱角、兔肉、蕨菜、大麻仁等

用nginx的反向代理做负载均衡

未命名-1.jpg

最近一个项目,网站的流量会比较大,但具体大到什么程序还没有估计,所以先用二台服务器做集群,实现负载均衡。因为网站是门户网站,都是生成的html静态页面,和少量的php,所以采用nginx做反向代理来处理海量访问,同时也方便增加新的服务器做负载均衡。

前端服务器A,利于nginx的反向代理提供对外网的web服务。

台后端主服务器B,利用nginx为前端服务器B提供反向代理服务,提供数据库服务、数据获取服务、数据同步服务的服务器。

其它后端服务器(以后增加),利用nginx为前端服务器A提供反向代理服务,同时自动从后端主服务器B获取数据。