linux下tomcat的安装

没有评论

2013 年 01 月 15 日 at 下午 3:45分类:Linux

(1)安装apr,这是 Apache 为了提升 Tomcat 的性能搞的一套本地化 Socket, Thread, IO 组件也就是说它有高级 IO 功能, 操作系统级别的功能调用, 以及本地进程处理等等。
(2)安装Tomcat Native,这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。
一、安装apr
(1)安装apr

# wget http://archive.apache.org/dist/apr/apr-1.4.6.tar.gz
# tar zxvf apr-1.4.5.tar.gz 
# cd apr-1.4.5
# ./configure --prefix=/usr/local/apr
# make
# make install

(2)安装apr-iconv

# wget http://archive.apache.org/dist/apr/apr-iconv-1.2.1.tar.gz
# tar -zxvf apr-iconv-1.2.1.tar.gz
# cd apr-iconv-1.2.1
# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr 
# make
# make install

(3)安装apr-util

# wget http://archive.apache.org/dist/apr/apr-util-1.3.10.tar.gz
# tar zxvf apr-util-1.3.10.tar.gz
# cd apr-util-1.3.10
# ./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv 
# make
# make install

二、安装tomcat和tomcat-native

(1)JDK安装

# wget http://download.oracle.com/otn-pub/java/jdk/6u25-b06/jdk-6u25-linux-x64-rpm.bin
# chmod a+x jdk-6u25-linux-x64-rpm.bin
# ./jdk-6u25-linux-x64-rpm.bin
# ln -s /usr/java/jdk1.6.0_25 /usr/local/java

设置环境变量

# vi /etc/profile

末尾增加如下内容

set JAVA_HOME=/usr/local/java
export JAVA_HOME
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH

# java -version

查看java版本,如果是1.6的,就是说明安装成功了。

(2)安装Tomcat

# wget http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.tar.gz
# tar -zxvf apache-tomcat-7.0.14.tar.gz
# mv apache-tomcat-7.0.14 /usr/local/www/tomcat
# vi /usr/local/www/tomcat/bin/catalina.sh

加入一行:

JAVA_HOME=/usr/local/java

(3)安装tomcat-native
安装好tomcat7之后,tomcat-native已经在tomcat的bin目录下了,可以直接使用

# cd /usr/local/www/tomcat/bin   
# tar zxvf tomcat-native.tar.gz 
# cd tomcat-native-1.1.20-src/jni/native   
# ./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/java 
# make  
# make install  

(4)设置 apr 的环境变量:

# vi /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib   
# source /etc/profile  这句是为了让设置生效

启动tomcat:

# /usr/local/www/tomcat/bin/startup.sh

控制台的内容会写在logs/catalina.out中,如果只是查看的话用more logs/catalina.out就行了,效率比vi要高,按空格键可翻页。
如果想要一直查看控制台的输入内容的话,可以使用
# tail -f logs/catalina.out
终止按crul+c
以上所有路径和结果均为本地机器测试正常!

PHP 再看原型模式(Prototype)

没有评论

2013 年 01 月 14 日 at 下午 4:27分类:PHP

原型模式是通过先给出一个对象的原型对象,然后初始化对象的创建。创建初始化后的对象再通过原型对象对其自身进行复制来创建其他对象。

原型模式使用的场景:
1、当要实例化的类实在运行时指定的,如动态装载。
2、为了避免创建与产品的类层次结构相似的工厂类层次结构。
3、当类的实例是仅有的一些不同状态组合之一的时候,建立相应数目的原型并克隆他们可能比每次用合适的状态手工实例化该类更方便一些。

原型模式的优点:
1、可以在运行时添加或删除产品
2、通过改变值指定新对象
3、通过改变结构指定新对象
4、减少子类的生成和使用
5、可以用类动态地配置应用程序

UML类图如下:
20120901225845_61467.jpg_thumb

<?php
abstract class Prototype
{
    private$_id=null;
         
    public function __construct($id)
    {
        $this->_id =$id;
    }
     
    public function getID()
    {
        return $this->_id;
    }
     
    public function __clone() // magic function
    {
        $this->_id +=1;
    }
     
    public function getClone()
    {
        return clone $this;
    }
}
 
class ConcretePrototype extends Prototype{}
 
 //
 $objPrototype = new ConcretePrototype(0);
 $cloneoOjPrototype = clone $objPrototype;
 echo $cloneoOjPrototype->getID()."<br/>";

 $oldobjPrototype = $objPrototype;
 echo $oldobjPrototype->getID()."<br/>";
 
 $newObjPrototype = $objPrototype->getClone();
 echo $newObjPrototype->getID()."<br/>";

个人认为:原型模式是由一个固定的对象,使用的时候经过一系列初始化,然后执行clone,得到目标对象,跟JS的原型链方式继承差不多一个道理!