MySQL资源设置

max_connections=500
wait_timeout=10
max_connect_errors = 100

连接最大个数是在第一行中进行管理的。与 Apache 中的 MaxClients 类似,其想法是确保只建立服务允许数目的连接。要确定服务器上目前建立过的最大连接数,请执行

SHOW STATUS LIKE ‘max_used_connections’。

第 2 行告诉 mysqld 终止所有空闲时间超过 10 秒的连接。在 LAMP 应用程序中,连接数据库的时间通常就是 Web 服务器处理请求所花费的时间。有时候,如果负载过重,

连接会挂起,并且会占用连接表空间。如果有多个交互用户或使用了到数据库的持久连接,那么将这个值设低一点并不可取!

最后一行是一个安全的方法。如果一个主机在连接到服务器时有问题,并重试很多次后放弃,那么这个主机就会被锁定,直到 FLUSH HOSTS 之后才能运行。默认情况下,

10 次失败就足以导致锁定了。将这个值修改为 100 会给服务器足够的时间来从问题中恢复。如果重试 100 次都无法建立连接,那么使用再高的值也不会有太多帮助,

可能它根本就无法连接。

ibatis新手上路

概念:

iBATIS , 又是一个O/R Mapping的解决方案(例如 hibernate的ORM 也是解决方案之一.)

网上很多人便将其称为ORM , 但是用过的人, 应该都会觉得并不恰当.

与其称之为一个OR Mapping , 倒不如叫它SQL Mapping…

iBATIS 的特点是小巧, 简单. 但是要求需要熟悉SQL , 不像hibernate那样, 可以让你一句sql 都不用写

同时, 我觉得要写挺多的配置文件的. 可能会比较繁琐.

sample

还是拿最简单的 User 类来测试. User.java  

public class User {  

 

    private int id;  

    private String username;  

    private String userpwd;  

    private String userdesc;  

 

        //Sets and Gets…  



public class User {

private int id;

private String username;

private String userpwd;

private String userdesc;

        //Sets and Gets…

接下来… 马上看看… dao里面的一个方法有多简单~~ UserDao.java

 

Java代码 

public static List getAllUsers() throws SQLException {  

                  

               SqlMapClient sqlMap = Utils.getSqlmap();  

       try {  

            List li = sqlMap.queryForList(“getAllUsers”);  

              

       } catch (SQLException e) {  

               e.printStackTrace();  

        }  

        return li;  



public static List getAllUsers() throws SQLException {

               

               SqlMapClient sqlMap = Utils.getSqlmap();

try {

List li = sqlMap.queryForList(“getAllUsers”);

} catch (SQLException e) {

e.printStackTrace();

}

return li;

是的, dao里面的一个方法只需要这么几句话.

看看怎么实现的吧…

首先, 我们需要一个跟 User 类对应的 配置文件 User.xml(名字相同并不是硬性规定, 只是方便管理)

Xml代码 

< xml version=”1.0″ encoding=”UTF-8″  > 

<!DOCTYPE sqlMap PUBLIC “-//ibatis.apache.org//DTD SQL Map 2.0//EN”  

   “http://ibatis.apache.org/dtd/sql-map-2.dtd”> 

 

<sqlMap namespace=”User”> 

 

        <typeAlias alias=”user” type=”pojo.User”/> 

 

   <select id=”getAllUsers” resultClass=”user”> 

       select * from user order by id;   

    </select> 

</sqlMap> 

< xml version=”1.0″ encoding=”UTF-8″  >

<!DOCTYPE sqlMap PUBLIC “-//ibatis.apache.org//DTD SQL Map 2.0//EN”

   “http://ibatis.apache.org/dtd/sql-map-2.dtd”>

<sqlMap namespace=”User”>

        <typeAlias alias=”user” type=”pojo.User”/>

<select id=”getAllUsers” resultClass=”user”>

select * from user order by id;

</select>

</sqlMap>

接下来, 需要一个另一个配置文件, 将User.xml 加入 其中, 同时还要在里面配置数据源—- 即数据库的连接等等…   SqlMapConfig.xml

Xml代码 

< xml version=”1.0″ encoding=”UTF-8″ > 

 

<!DOCTYPE sqlMapConfig PUBLIC “-//ibatis.apache.org//DTD SQL Map Config 2.0//EN”  

    “http://ibatis.apache.org/dtd/sql-map-config-2.dtd”> 

<sqlMapConfig> 

      

   <properties resource=”sqlmap.properties”/> 

         

    <transactionManager type=”JDBC”> 

        <dataSource type=”SIMPLE”>      

           <property name=”JDBC.Driver” value=”${jdbc.driverClassName}” /> 

            <property name=”JDBC.ConnectionURL” value=”${jdbc.url}” /> 

           <property name=”JDBC.Username” value=”${jdbc.username}” /> 

            <property name=”JDBC.Password” value=”${jdbc.password}” /> 

       </dataSource> 

   </transactionManager> 

    <sqlMap resource=”sql/User.xml” /> 

 

</sqlMapConfig> 

< xml version=”1.0″ encoding=”UTF-8″ >

<!DOCTYPE sqlMapConfig PUBLIC “-//ibatis.apache.org//DTD SQL Map Config 2.0//EN”

“http://ibatis.apache.org/dtd/sql-map-config-2.dtd”>

<sqlMapConfig>

<properties resource=”sqlmap.properties”/>

<transactionManager type=”JDBC”>

<dataSource type=”SIMPLE”>   

<property name=”JDBC.Driver” value=”${jdbc.driverClassName}” />

<property name=”JDBC.ConnectionURL” value=”${jdbc.url}” />

<property name=”JDBC.Username” value=”${jdbc.username}” />

<property name=”JDBC.Password” value=”${jdbc.password}” />

</dataSource>

</transactionManager>

<sqlMap resource=”sql/User.xml” />

</sqlMapConfig>

在这里, 我们把数据库的相关参数保存在了另一个文件中, sqlmap.properties

Java代码 

jdbc.driverClassName=com.mysql.jdbc.Driver  

jdbc.url=jdbc:mysql://localhost:3306/myblog  

jdbc.username=root  

jdbc.password=netjava 

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/myblog

jdbc.username=root

jdbc.password=ipanel

这样做的好处, 相信大家也明白..  下次我们再写一个项目的时候, 只需要把这个文件copy 过去, 改掉其中的数据库连接就ok啦 ,  也算是资源的充分利用吧..

至此, 所有的配置文件 都已经上场, 当然上面写的都是最简单的测试, 看起来比较没有那么繁琐, 实际应用时候, 可能最麻烦的地方就是在 配置文件的 sqlmap 的编写…

前面 UserDao.java 的方法中, 有这么一句

Java代码 

1.SqlMapClient sqlMap = Utils.getSqlmap(); 

SqlMapClient sqlMap = Utils.getSqlmap();

Utils 类 就是我们抽取其中的初始化的代码, 单独写成一个类, 当然还是方便重用哈.同时采用的是单实例模式, 相当环保.

  Utils.java

Java代码 

1.public class Utils{  

2.      

3.    private static SqlMapClient sqlMapper;   

4.    public static synchronized SqlMapClient getSqlmap()   

5.    {     

6.          if(sqlMapper==null)   

7.          {   

8.              try {   

9.                  Reader reader = Resources.getResourceAsReader(“SqlMapConfig.xml”);   

10.                  sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);   

11.                  reader.close();   

12.                } catch (IOException e) {   

13.                    e.printStackTrace();   

14.                }   

15.          }   

16.            return sqlMapper;   

17.    }   

18.} 

public class Utils{

private static SqlMapClient sqlMapper;

    public static synchronized SqlMapClient getSqlmap()

    {  

          if(sqlMapper==null)

          {

              try {

                  Reader reader = Resources.getResourceAsReader(“SqlMapConfig.xml”);

                  sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);

                  reader.close();

                } catch (IOException e) {

                    e.printStackTrace();

                }

          }

            return sqlMapper;

    }

}

好了,  所有的相关文件都已经上场..  当然, 加上 iBATIS的 jar包是前提 , 还是提醒下, 要注意版本问题…

UserDao 是怎样操作数据库的

首先 , Utils 通过SqlMapConfig.xml里面的配置, 连接到数据库, 取得SqlMap , 同时User.xml 将Sql查询映射成java中可以调用的bean, 通过SqlMap 调用这些bean 就是在执行想对应的sql语句…

  • 大小: 23.1 KB

james下JPA

james的这个版本–james-server 3.0-M2,使用了JPA来进行邮件和其他内容的持久化操作。

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:

ORM映射元数据

  JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;

JPA 的API

  用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。

查询语言

  这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。

james的 3.0-M2这个版本,使用了OpenJPA

OpenJPA概要:

OpenJPA 是 Apache 组织提供的开源项目,它的前身是BEA公司的Kodo Java Persistence API,于2006年7月捐献给ASF(Apache Software Foundation),并于2007年8月28日发布了OpenJPA 1.0.0版本。OpenJPA 100%实现了 EJB 3.0(JSR220) 中的 JPA 标准,为开发者提供功能强大、使用简单的持久层数据管理框架。OpenJPA 当然实现了对象关系映射(ORM)与对象关系等功能。OpenJPA 除了可以运行在符合EJB 3.0 标准的EJB容器中之外,还可以作为独立的持久层框架,轻松地与其它JavaEE应用框架集成。

1.加载持久化配置文件

<bean class=”org.springframework.beans.factory.config.PropertyPlaceholderConfigurer”>

        <property name=”ignoreUnresolvablePlaceholders” value=”true”/>

        <property name = “location” value=”database.properties”/>

</bean>

database.properties的内容很简单,就是简单的键值对:

database.driverClassName=com.mysql.jdbc.Driver

database.url=jdbc:mysql://localhost:3306/james_mail autoReconnect=true

database.username=root

database.password=111111

vendorAdapter.database=MYSQL

openjpa.streaming=false

我配置的是使用了MYSQL数据库进行持久话操作。

james默认的是DERBY,一个文件型的DB。

2。配置datasource

<bean id=”datasource” class=”org.apache.commons.dbcp.BasicDataSource” destroy-method=”close”>

        <property name=”driverClassName” value=”${database.driverClassName}” />

        <property name=”url” value=”${database.url}” />

        <property name=”username” value=”${database.username}” />

        <property name=”password” value=”${database.password}” />

</bean>

这个就不要解释了

3。配置EntityManager对象

<bean id=”entityManagerFactory” class=”org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean”>

        <property name=”dataSource” ref=”datasource”/>

        <property name=”jpaVendorAdapter” ref=”vendorAdapter”/>

</bean>

EntityManager对象的事务管理方式有两 种,分别为JTA和RESOURCE_LOCAL,即Java Transaction API方法和本地的事务管理。

4.配置persistence.xml

persistence.xml 这个文件在classpath下的META-INF文件夹下

james的persistence.xml 内容如下:

<persistence-unit name=”James” transaction-type=”RESOURCE_LOCAL”>

        <class>org.apache.james.mailbox.jpa.mail.model.JPAHeader</class>

        <class>org.apache.james.mailbox.jpa.mail.model.JPAMailbox</class>

  <class>org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMessage</class>

        <class>org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMembership</class>

      <class>org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMembership</class>

        <class>org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMessage</class>

        <class>org.apache.james.mailbox.jpa.mail.model.JPAProperty</class>

        <class>org.apache.james.mailbox.jpa.user.model.JPASubscription</class>

        <class>org.apache.james.domainlist.jpa.model.JPADomain</class>

        <class>org.apache.james.user.jpa.model.JPAUser</class>

        <class>org.apache.james.vut.jpa.model.JPAVirtualUser</class>

        <properties>

            <property name=”openjpa.jdbc.SynchronizeMappings” value=”buildSchema(ForeignKeys=true)”/>

            <property name=”openjpa.jdbc.MappingDefaults” value=”ForeignKeyDeleteAction=restrict, JoinForeignKeyDeleteAction=restrict”/>

            <property name=”openjpa.jdbc.SchemaFactory” value=”native(ForeignKeys=true)”/>

            <property name=”openjpa.jdbc.QuerySQLCache” value=”false”/>

        </properties>

</persistence-unit>

JPA中的事务类 型通过persistence.xml文件中的“transaction-type”元素配置。例如,配置事务为JTA方式的代码如下所示。

5.JPA的注解

1、@Entity(name=”EntityName”)

     必须,name为可选,对应数据库中一的个表

2、@Table(name=””,catalog=””,schema=””)

     可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息

name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名

catalog:可选,表示Catalog名称,默认为Catalog(“”).

schema:可选,表示Schema名称,默认为Schema(“”).

3、@id

必须

@id定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.置于getXxxx()前.

4、@GeneratedValue(strategy=GenerationType,generator=””)

可选

strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE 和 TABLE 4种,分别表示让ORM框架自动选择,

根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生成主键,默认为AUTO

generator:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定uuid等主键生成方式.

5、@Basic(fetch=FetchType,optional=true)

可选

@Basic表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXxxx()方法,默认即为@Basic

fetch: 表示该属性的读取策略,有EAGER和LAZY两种,分别表示主支抓取和延迟加载,默认为EAGER.

optional:表示该属性是否允许为null,默认为true

6、@Column

可选

@Column描述了数据库表中该字段的详细定义,这对于根据JPA注解生成数据库表结构的工具非常有作用.

name:表示数据库表中该字段的名称,默认情形属性名称一致

nullable:表示该字段是否允许为null,默认为true

unique:表示该字段是否是唯一标识,默认为false

length:表示该字段的大小,仅对String类型的字段有效

insertable:表示在ORM框架执行插入操作时,该字段是否应出现INSETRT语句中,默认为true

updateable:表示在ORM框架执行更新操作时,该字段是否应该出现在UPDATE语句中,默认为true.对于一经创建就不可以更改的字段,该属性非常有用,如对于birthday字段.

columnDefinition: 表示该字段在数据库中的实际类型.通常ORM框架可以根据属性类型自动判断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是 DATE,TIME还是TIMESTAMP.此外,String的默认映射类型为VARCHAR,如果要将String类型映射到特定数据库的BLOB或 TEXT字段类型,该属性非常有用.

7、@Transient

可选

@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic

8、@ManyToOne(fetch=FetchType,cascade=CascadeType)

可选

@ManyToOne表示一个多对一的映射,该注解标注的属性通常是数据库表的外键

optional:是否允许该字段为null,该属性应该根据数据库表的外键约束来确定,默认为true

fetch:表示抓取策略,默认为FetchType.EAGER

cascade:表示默认的级联操作策略,可以指定为ALL,PERSIST,MERGE,REFRESH和REMOVE中的若干组合,默认为无级联操作

targetEntity:表示该属性关联的实体类型.该属性通常不必指定,ORM框架根据属性类型自动判断targetEntity.

9、@JoinColumn

可选

@JoinColumn和@Column类似,介量描述的不是一个简单字段,而一一个关联字段,例如.描述一个@ManyToOne的字段.

name:该字段的名称.由于@JoinColumn描述的是一个关联字段,如ManyToOne,则默认的名称由其关联的实体决定.

例如,实体Order有一个user属性来关联实体User,则Order的user属性为一个外键,

其默认的名称为实体User的名称+下划线+实体User的主键名称

10、@OneToMany(fetch=FetchType,cascade=CascadeType)

可选

@OneToMany描述一个一对多的关联,该属性应该为集体类型,在数据库中并没有实际字段.

fetch:表示抓取策略,默认为FetchType.LAZY,因为关联的多个对象通常不必从数据库预先读取到内存

cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其关联的实体也应当被更新或删除

例如:实体User和Order是OneToMany的关系,则实体User被删除时,其关联的实体Order也应该被全部删除

11、@OneToOne(fetch=FetchType,cascade=CascadeType)

可选

@OneToOne描述一个一对一的关联

fetch:表示抓取策略,默认为FetchType.LAZY

cascade:表示级联操作策略

12、@ManyToMany

可选

@ManyToMany 描述一个多对多的关联.多对多关联上是两个一对多关联,但是在ManyToMany描述中,中间表是由ORM框架自动处理

targetEntity:表示多对多关联的另一个实体类的全名,例如:package.Book.class

mappedBy:表示多对多关联的另一个实体类的对应集合属性名称

两个实体间相互关联的属性必须标记为@ManyToMany,并相互指定targetEntity属性,

需要注意的是,有且只有一个实体的@ManyToMany注解需要指定mappedBy属性,指向targetEntity的集合属性名称

利用ORM工具自动生成的表除了User和Book表外,还自动生成了一个User_Book表,用于实现多对多关联

13、@MappedSuperclass

可选

@MappedSuperclass可以将超类的JPA注解传递给子类,使子类能够继承超类的JPA注解

14、@Embedded

可选

@Embedded将几个字段组合成一个类,并作为整个Entity的一个属性.

例如User包括id,name,city,street,zip属性.

我们希望city,street,zip属性映射为Address对象.这样,User对象将具有id,name和address这三个属性.

Address对象必须定义为@Embededable

另:我的小站:

      NB分享http://www.nbshare.com

Linux下PHP5+MySQL5+GD2+Proftpd+phpmyadmin

一直想写篇关于Linux下 PHP环境的详细安装配置文章, 没什么时间
趁现要配几台服务器, 借此机会把自己安装配置的步骤写出来, 供初学者参考!

有什么错误的地方请大家指证批评,谢谢! – by Mayer

首先我在 /root 目录下建了一个 soft 文件夹来保存我要安装的源码包
mkdir /root/soft
cd /root/soft

先找到 apache php mysql proftpd 源码包下载的URL地址
请浏览
http://www.apache.org
http://www.php.net
http://www.mysql.com
http://www.proftpd.org/
等官方网站
使用wget 直接下载

wget http://apache.justdn.org/httpd/httpd-2.0.55.tar.gz

wget http://cn.php.net/get/php-5.0.5.tar.gz/from/cn2.php.net/mirror

wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-standard-5.0.15-linux-i686.tar.gz/from/http://mysql.oss.eznetsols.org/

第一步:安装apache
注:当前目录为/root/soft ,
目录下有
httpd-2.0.55.tar.gz, php-5.0.5.tar.gz
等二进制源码包
#号代表为root 根权限,#后是输入的一条命令

执行下列命令
解压源码包
# tar -zxf httpd-2.0.55.tar.gz
进入安装目录
# cd httpd-2.0.55
配置apache安装信息
# ./configure –prefix=/usr/local/apache –enable-modules=so –enable-rewrite
执行make安装
# make; make install
安装完后
# vi /usr/local/apache/conf/httpd.conf
找到 prefork.c 下的
MaxClients 150
改为
ServerLimit 2000
MaxClients 1000
apache默认工作在prefork.c模式下,并发进程为150,超过后就无法访问,150是远远不够的,所以这里按自己网站的需求改, 如1000
由于apache默认最大并发进程是 256 所以要先设置 ServerLimit 2000 将服务器可设的最大并发数设为2000, 然后再设置最大并发数 MaxClients 1000

找到 #ServerName www.example.com:80 在其下设置 ServerName 如下
ServerName www.mysite.com
基中 www.mysite.com 为你网站名,也可用IP代替
找到 DocumentRoot “/usr/local/apache/htdocs”
设置你的 WEB 服务器的根目录 如
DocumentRoot “/myweb”
找到 DirectoryIndex index.html index.html.var 改为
DirectoryIndex index.html index.php index.htm
找到 ForceLanguagePriority Prefer Fallback 在其下加上
AddDefaultCharset gb2312
改完后保存(vi 的用法请查 Linux vi 命令)
用下面命令启动WEB服务器
# /usr/local/apache/bin/apachectl start
查看自己的站点是否正常 http://www.mysite.com 也可用IP
用 # /usr/local/apache/bin/apachectl stop 可停止服务

安装MYSQL
# tar -zxf mysql-standard-5.0.15-linux-i686.tar.gz
# cp -r mysql-standard-5.0.15-linux-i686 /usr/local/mysql
# vi /usr/local/mysql/support-files/my-medium.cnf
在后面加上
max_connections = 1000
log-slow-queries
long_query_time = 5
注 max_connections 为允许的最大连接数
log-slow-queries 打开低速查询日志
long_query_time 低速查询的秒数(运行一句sql达到此时间记录在日志里)
然后COPY 它为 /etc/my.cnf 文件
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
添加mysql用户及用户组
# groupadd mysql
# useradd -g mysql mysql
修改mysql目录权限
# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
生成mysql系统数据库
# /usr/local/mysql/scripts/mysql_install_db –user=mysql&
启动mysql服务
# /usr/local/mysql/bin/mysqld_safe –user=mysql&
如出现 Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常启动mysql服务了, 按Ctrl + C 跳出
修改 mysql 的 root 密码
# /usr/local/mysql/bin/mysqladmin -u root -p password 123456
回车出现 Enter password: 最开始密码默认为空 继续回车即可
123456 即为你的新密码
注意:在安装MySQL5.0的时候会出现一个问题,就是和PHP联合编译的时候提示-lmysqlclient错误,这个原因是因为使用了另外一个版本的MySQL,我们需要使用的是Linux x86那个版本,不要是glibc-2.2那个。参考(http://forums.mysql.com/read.php 45,100371,101591#msg-101591)

安装GD库(让PHP支持GIF,PNG,JPEG)
首先下载 jpeg6,libpng,freetype 并安装模块
wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
wget http://nchc.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.8.tar.gz
wget http://keihanna.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.10.tar.gz
wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz

安装 jpeg6
建立目录
# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/bin
# mkdir /usr/local/jpeg6/lib
# mkdir /usr/local/jpeg6/include
# mkdir /usr/local/jpeg6/man
# mkdir /usr/local/jpeg6/man/man1
# cd /root/soft
# tar -zxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure –prefix=/usr/local/jpeg6/ –enable-shared –enable-static
# make; make install

安装libpng
# cd /root/soft
# tar -zxf libpng-1.2.8.tar.gz
# cd libpng-1.2.8
# cp scripts/makefile.std makefile
# make; make install

安装 freetype
# cd /root/soft
# tar -zxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# ./configure –prefix=/usr/local/freetype
# make;make install

安装最新的GD库
# cd /root/soft
# tar -zxf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6/ –with-png –with-zlib –with-freetype=/usr/local/freetype/
# make; make install

安装最新的Curl库
# cd /root/soft
# wget http://curl.haxx.se/download/curl-7.15.0.tar.gz
# tar -zxf curl-7.15.0.tar.gz
# ./configure –prefix=/usr/local/curl
# make; make install

安装PHP

由于php5需libxml2的支持, 所以先下载并安装libxml2
# cd /root/soft
# wget http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.19.tar.gz
# tar -zxf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# ./configure –prefix=/usr/local/libxml2
# make; make install

安装 libxslt
# cd /root/soft
# wget http://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.15.tar.gz
# tar -zxf libxslt-1.1.15.tar.gz
# cd libxslt-1.1.15
# ./configure –prefix=/usr/local/libxslt –with-libxml-prefix=/usr/local/libxml2
# make; make install

# tar -zxf php-5.0.5.tar.gz
# cd php-5.05
# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql/ –with-curl=/usr/local/curl –enable-ftp –with-libxml-dir=/usr/local/libxml2 –with-expat-dir=/usr/lib –enable-soap –with-xsl=/usr/local/libxslt –enable-xslt –with-gd=/usr/local/gd2/ –with-jpeg-dir=/usr/local/jpeg6/ –with-zlib-dir=/usr/lib –with-png –with-freetype-dir=/usr/local/freetype –enable-mbstring
# make
# make install

其中./configure 后的
–prefix=/usr/local/php
–with-apxs2=/usr/local/apache/bin/apxs
–with-mysql=/usr/local/mysql/
–with-libxml-dir=/usr/local/libxml2
是必要的选项

–with-gd=/usr/local/gd2/
–with-jpeg-dir=/usr/local/jpeg6/
–with-png
–with-zlib-dir=/usr/lib
–with-freetype-dir=/usr/local/freetype
这是让PHP支持GD库的配置选项

–with-curl=/usr/local/curl 支持CURL库
–enable-ftp 打开FTP库函数支持

–enable-soap –with-xsl=/usr/local/libxslt –enable-xslt
让PHP支持SOAP, 上面这些一般用得少, 可以去掉

配置 httpd.conf 让apache支持PHP
# vi /usr/local/apache/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

重启apache
# /usr/local/apache/bin/apachectl restart
在这里有一个问题,如果你的系统安装了SELinux模块,那么由于安全控制的原因,会出现如下错误:
Starting httpd: Syntax error on line 191 of /etc/httpd/conf/httpd.conf:
Cannot load /etc/httpd/modules/libphp5.so into server: libxml2.so.2: failed to map segment from shared object: Permission denied
[FAILED]
这样需要我们到指定的库文件的目录下执行如下命令:
restorecon libxml2.so.2.6.19
把类似的错误都解决之后,Apache就可以正常启动了。
在你Web目录里建一内容为 <  phpinfo();  > PHP文件, 输入URL地址查看PHP配置是否正确

安装 phpmyadmin
下载
# cd /root/soft
# wget http://nchc.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.6.4-pl3.tar.gz
# tar -zxf phpMyAdmin-2.6.4-pl3.tar.gz
phpMyAdmin必须需要PHP支持MySQL。
并且在2.8以后的版本,解压完毕后,首先需要手工建一个config目录,然后配置完毕后,需要点击页面上的Configuration中的Save把文件存成config.inc.php。
# vi phpMyAdmin-2.6.4-pl3/config.inc.php
找到 $cfg[‘Servers’][$i][‘auth_type’] = ‘config’; 将config 改为 http
保存后
mv phpMyAdmin-2.6.4-pl3 /你的phpmyadmin目录
关于mysql4.1-4移植4.0旧数据库中文乱码问题的解决方法
进入phpmyadmin管理
建立你数据库名并选上 gb2312_bin 的编码
然后导入你先前备份好的SQL文件, 导入时选择 文件的字符集:gb2312
完成后就OK了
注: PHP连接mysql4.1和5.0 数据库后需指定字符集 需执行如 mysql_query(“SET NAMES ‘gb2312’ “);
否则会产生中文乱码问题!

Proftpd 的安装
下面这篇文章介绍得比较详细
http://www.5ilinux.com/blog/archives/000082.html

MySQL优化实例

进行了一系列更新:

PHP 升级到 5.2.6

MySQL 升级到 5.1.24-rc

Apache 升级到 2.2.8

更新都比较顺利,先停掉 mysql 和 apache。都比较顺利,先停掉 mysql 和 apache。

PLAIN TEXT >> CODE:

net stop mysql

httpd -k stop

PHP 和 MySQL 都可以直接解压要原来的目录(MySQL 别覆盖 data 文件夹),Apache 用安装程序,也覆盖以前的目录就可以。

Apache 和 PHP 没啥问题,就不必说了,我的 MySQL 之前是 5.0 的,启动没问题,只是用 mysqld –version 看版本时提示了一个警告信息,大概意思是 thread_stack 参数不再支持 64k 要改成 128k,这个打开 mysql.ini 把 thread_stack 后面的值改成 128k 即可。

改好这个之后再次执行 mysqld –version 又提示需要升级,让执行 mysql_upgrade,需要执行如下命令,然后会进行一系列升级,等升级完毕就一切OK了

PLAIN TEXT >> CODE:

mysql_upgrade -uroot -pYourPassword

在linux上面LAMP安装

1. Apache安装

1. download httpd 2.2.16

# mkdir -p /usr/local/apache2
生成/usr/local/apache2目录

2. ./configure \
   
–prefix=/usr/local/apache2 \
   
–enable-so \
   
–enable-mods-shared=all \
   
–with-included-apr \
   
–enable-proxy=shared \
   
–enable-cache=shared \
   
–enable-file-cache=shared \
   
–enable-disk-cache=shared \
   
–enable-mem-cache=shared

 

if compile error show zlib not found, then use command check:

rpm -qa | grep -i zlib

if zlib is already installed, zlib-devel is needed to be installed:

yum install zlib-devel

 

we can use ./configure -help | grep mpm to see module options. After installation, we can use httpd -l  to see compiled modules.


   
make
   
make install

 

# vi /usr/local/apache2/conf/httpd.conf
设置DocumentRoot 的路径
保存退出,现在就这么简单配置apache。

# /usr/local/apache2/bin/apachectl -k start
启动apahce


用浏览器查看
(这里写你自己网站,如http://localhost/
),得到It works,说明apache已经配置成功了。


# /usr/local/apache2/bin/apachectl -k stop
停止apache

# /usr/local/apache/bin/apachectl restart
重启Apache

 
把httpd 添加到系统的启动项里
# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
# chmod 700 /etc/rc.d/init.d/httpd
# vi /etc/rc.d/init.d/httpd
在第三行后增加
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 90 90
# description:http server
注意:没有这几行,在使用chkconfig时会提示你:service httpd does not support chkconfig。
chkconfig –add httpd
chkconfig –level 345 httpd on
这样,在运行级别345上httpd就可以自动启动了。


 

二,Mysql的安装
 
# cd /root
# tar -zvxf  mysql-5.1.32-linux-i686-glibc23.tar.gz
# mkdir -p /usr/local/mysql (省略也可)
# cp -r  mysql-5.1.32-linux-i686-glibc23/* /usr/local/mysql
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

添加mysql用户及用户组

# groupadd mysql
# useradd -g mysql mysql
修改mysql目录权限

# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
生成mysql系统数据库

# /usr/local/mysql/scripts/mysql_install_db –user=mysql&
启动mysql服务

# /usr/local/mysql/bin/mysqld_safe –user=mysql&
如出现 Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常启动mysql服务了, 按Ctrl + C 跳出
修改 mysql 的 root 密码


# /usr/local/mysql/bin/mysqladmin -u root -p password “wengdo”

wengdo 这里可以换为你自己的密码

 
把你编译目录的一个脚本COPY过去

# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

# chkconfig –add mysqld

用ntsysv设置使mysql每次启动都能自动运行

好了,至此mysql安装完毕,你可以这样起动你的mysql服务

# /etc/rc.d/init.d/mysqld start

下面这步比较关键,

# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
# ln -s /usr/local/mysql/include/mysql /usr/include/mysql

大家可以不做这步,大可以在编译其他软件的时候自定义myslq的库文件路径,但我还是喜欢把库文件链接到默认的位置,这样你在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址。

 
三,安装GD库 (如果你用系统自带的GD库,可以省略这一步)

  • 安装 jpeg6 

建立目录:

# mkdir -p /usr/local/jpeg6 
# mkdir -p /usr/local/jpeg6/bin 
# mkdir -p /usr/local/jpeg6/lib 
# mkdir -p /usr/local/jpeg6/include 
# mkdir -p /usr/local/jpeg6/man 
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1

# cd /root
# tar -zvxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure –prefix=/usr/local/jpeg6/ –enable-shared –enable-static
# make
# make install

  • 安装libpng
    # cd /root
    # tar -zvxf libpng-1.2.35.tar.gz
    # cd libpng-1.2.35
  • mkdir -p /usr/local/libpng
    # ./configure –prefix=/usr/local/libpng
    # make
    # make install 
  • 安装 freetype
    # cd /root 
    # tar -zvxf freetype-2.3.9.tar.gz 
    # cd freetype-2.3.9
    # mkdir -p /usr/local/freetype
    # ./configure –prefix=/usr/local/freetype 
    # make
    # make install
  • 安装zlib
  • 安装curl
  • 安装GD库

# cd /root
# tar -zvxf gd-2.0.35.tar.gz
# mkdir -p /usr/local/gd2
# cd gd-2.0.35
# ./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6/
 –with-png=/usr/local/lib/ –with-zlib=/usr/local/lib/
–with-freetype=/usr/local/freetype/ –enable-m4_pattern_allow
# make
# make install

四,安装PHP5
php5必须有libxml2支持!

安装libxml2

# cd /root
# tar -zxvf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# mkdir -p /usr/local/libxml2
# ./configure –prefix=/usr/local/libxml2
# make
# make install
 
安装php5

# cd /root
# tar -zvxf php-5.2.9.tar.gz 
# mkdir -p /usr/local/php
# cd php-5.2.9
# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs
–with-mysql=/usr/local/mysql/
–with-curl=/usr/local/curl –enable-ftp
–with-libxml-dir=/usr/local/libxml2
–with-gd=/usr/local/gd2/
–with-jpeg-dir=/usr/local/jpeg6/
–with-zlib-dir=/usr/local/zlib/
–with-png-dir=/usr/local/libpng/
–with-freetype-dir=/usr/local/freetype/
–enable-mbstring
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini (别忘记了)

其中./configure 后的
–prefix=/usr/local/php
–with-apxs2=/usr/local/apache2/bin/apxs
–with-mysql=/usr/local/mysql/
–with-libxml-dir=/usr/local/libxml2
是必要的选项

–with-gd=/usr/local/gd2/
–with-jpeg-dir=/usr/local/jpeg6/
–with-png=/usr/local/lib
–with-zlib-dir=/usr/lib
–with-freetype-dir=/usr/local/freetype
这是让PHP支持GD库的配置选项

–with-curl=/usr/local/curl 支持CURL库
–enable-ftp 打开FTP库函数支持

–enable-soap –with-xsl=/usr/local/libxslt –enable-xslt
让PHP支持SOAP, 上面这些一般用得少, 可以去掉

 

五,安装 ZendOptimizer
 
# cd /root
# tar -zxvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
# cd ZendOptimizer-3.3.0a-linux-glibc21-i386
# ./install.sh
然后出现图形界面,按提示Next

 
六,配置一些信息

配置 httpd.conf 让apache支持PHP

# vi /usr/local/apache2/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

重启apache

# /usr/local/apache2/bin/apachectl restart
在你设置的目录里建一内容为 <  phpinfo();  > PHP文件, 输入URL地址查看PHP配置是否正确

apache2+PHP4.4.1+Mysql4.1.18+GD2+ZendOptimizer(原创)

apache2+PHP4.4.1+Mysql4.1.18+GD2+ZendOptimizer

安装前准备

所有软件目录:/soft/lapm

工作目录:    /soft/dotmp

安装后的程序工作目录: /httpd

package list:

freetype-2.1.10.tar.gz

gd-2.0.33.tar.gz

httpd-2.0.54.tar.gz

jpegsrc.v6b.tar.gz

libpng-1.2.8-config.tar.gz

mysql-4.1.18.tar.gz

php-4.4.1.tar.gz

ZendOptimizer-2.6.0-Linux_glibc21-i386.tar.gz

zlib-1.2.3.tar.gz

1. 安装zlib (安装libpng和gd前需要先安装zlib)

# tar zxvf zlib-1.2.3.tar.gz

# cd  zlib-1.2.3

# ./configure

# make

# make install

2. 安装libpng

# tar zxvf libpng-1.2.8-config.tar.gz

# cd libpng-1.2.8-config

# ./configure

# make

# make install

3. 安装freetype

# tar zxvf freetype-2.1.10.tar.gz

# cd freetype-2.1.10

# ./configure –prefix=/httpd/freetype

# make

# make install

4. 安装jpeg

# tar zxvf jpegsrc.v6b.tar.gz

# cd jpeg-6b

# mkdir /httpd/jpeg

# mkdir /httpd/jpeg/bin

# mkdir /httpd/jpeg/lib

# mkdir /httpd/jpeg/include

# mkdir /httpd/jpeg/man

# mkdir /httpd/jpeg/man/man1

# ./configure –prefix=/httpd/jpeg –enable-shared –enable-static

#make

#make install

5. 安装gd

修改 freetype.h

#cd /httpd/freetype/include/freetype2/freetype/freetype.h

#vi freetyp.h

注释掉下面的

//#ifndef FT_FREETYPE_H

//#error “`ft2build.h’ hasn’t been included yet!”

//#error “Please always use macros to include FreeType header files.”

//#error “Example:”

//#error ”  #include <ft2build.h>”

//#error ”  #include FT_FREETYPE_H”

//#endif

加入这一句

#include “/httpd/freetype/include/ft2build.h”

# tar zxvf gd-2.0.33.tar.gz

# cd gd-2.0.33

# ./configure –prefix=/httpd/gd –with-jpeg=/httpd/jpeg –with-freetype=/httpd/freetype –with-png –with-zlib

//编译过程中会看到如下信息

** Configuration summary for gd 2.0.33:

   Support for PNG library:          yes

   Support for JPEG library:         yes

   Support for Freetype 2.x library: yes

   Support for Fontconfig library:   no

   Support for Xpm library:          no

   Support for pthreads:             yes

//可以看到png 、 jpeg 、 freetype都已经安装上了

# make

# make install

6. 安装mysql

# tar zxvf mysql-4.0.24.tar.gz

# cd mysql-4.0.24

# ./configure –prefix=/httpd/mysql  –sysconfdir=/httpd/mysql –enable-assembler –with-unix-socket-path=/tmp/mysql.sock  –with-mysqld-user=mysql –with-mysqld-ldflags=-all-static –with-innodb  –with-extra-charsets=all –with-charset=gb2312  –with-collation=gb2312_chinese_ci –enable-thread-safe-client

# groupadd mysql

# useradd mysql -g mysql

#make

#make install

#cp support-files/my-medium.cnf /etc/my.cnf

# ./scripts/mysql_install_db –user=mysql

# cd /httpd/mysql

# chown -R root .

# chown -R mysql var

# chown -R mysql var/.

# chown -R mysql var/mysql/.

# chgrp -R mysql .

#cp support-files/mysql.server /etc/

#chmod +x /etc/mysql.server

#chkconfig –del mysql

#chkconfig –add mysql

#/etc/mysql.server start  

# /httpd/mysql/bin/mysqld_safe –user=mysql &

# /httpd/mysql/bin/mysqladmin -u root password ‘new-password’

或修改密码

mysql>;GRANT USAGE ON *.* TO root@”localhost” IDENTIFIED BY ‘new-password’;

7. 安装apache2

# tar zxvf httpd-2.0.33.tar.gz

# cd httpd-2.0.54

# ./configure –prefix=/httpd/apache –enable-so –enable-track-vars–enable-mods-shared=all –enable-cache –enable-disk-cache –enable-mem-cache –enable-rewrite –with-mpm=worker

# make

# make install

/*********************************************

svn的:

./configure –prefix=/httpd/apache –enable-so –enable-track-vars–enable-mods-shared=all –enable-cache –enable-disk-cache –enable-mem-cache –enable-rewrite –with-mpm=worker –enable-dav –enable-dav=share –enable-dav-fs  –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util

**********************************************/

8. 安装php

# tar zxvf php-4.3.11.tar.gz

# cd php-4.3.11

# ./configure –prefix=/httpd/php4 –with-config-file-path=/httpd/apache/conf –with-apxs2=/httpd/apache/bin/apxs –with-gd=/httpd/gd –enable-gd –enable-gd-native-ttf –with-jpeg-dir=/httpd/jpeg –with-png –with-ttf –with-zlib –with-freetype-dir=/httpd/freetype –enable-magic-quotes –with-mysql=/httpd/mysql –with-mysql-sock=/tmp/mysql.sock –with-iconv –with-mbstring –enable-mbstring=all –enable-track-vars –enable-force-cgi-redirect –enable-short-tags –disable-debug –enable-safe-mode –enable-trans-sid –with-xml

# cp php.ini-dist /httpd/apache/conf/php.ini

/****************************************************

php5的:

./configure –prefix=/httpd/php5 –with-config-file-path=/httpd/apache/conf –with-apxs2=/httpd/apache/bin/apxs –with-gd=/httpd/gd –enable-gd –enable-gd-native-ttf –with-jpeg-dir=/httpd/jpeg –with-png –with-ttf –with-zlib –with-freetype-dir=/httpd/freetype –enable-magic-quotes –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-libxml-dir=/usr/local/libxml2 –with-expat-dir=/usr/lib –enable-soap  –with-xsl=/usr/local/libxslt –enable-xslt –enable-sqlite-utf8 –with-iconv –with-mbstring –enable-mbstring=all –enable-track-vars –enable-force-cgi-redirect –enable-short-tags –disable-debug –enable-safe-mode –enable-trans-sid –with-xml

****************************************************/

配置apache

ServerName 168.1.1.199 :80

AddType application/x-httpd-php .php

LoadModule php4_module modules/libphp4.so

9. 安装ZendOptimizer

# tar zxvf ZendOptimizer-2.5.7-Linux_glibc21-i386.tar.gz

# cd ZendOptimizer-2.5.7-Linux_glibc21-i386

# ./install.php

安装操作: [ok] ->; [EXIT] ->; [YES] ->; [/httpd/zend] ->; [/httpd/apache/conf] ->; [yes] ->; [/httpd/apache/bin/apachectl] ->; [OK] ->; [OK] ->; [NO]

安装svn

CAS-单点登录环境安装+JDBC支持配置

由于工作原因,很久没有写点东西了。

写在另一个博客上:

http://cid-5c0c98dd2e25c135.spaces.live.com/blog/cns!5C0C98DD2E25C135!128.entry

哎,space太慢了,很久没有使用了,还不容易使用一次啊,还赶上了逼迁啊。算了,还是使用国内的吧。

可恶的网易,这技术文章也要阉割,好吧,我直接贴出来。

 

 

一:软件准备

apache-tomcat-6.0.26

mysql5.1

cas-server-3.4.2.1-release

cas-client-3.1.10-release

 

二:安装数据库

参见在win7下安装绿色版mysql

三:配置cas-服务端

1)将cas.war文件拷贝到tomcat webapps目录下面

2)增加jdbc数据库支持

将Mysql数据库驱动(mysql-connector-java-5.1.13-bin.jar)拷贝到apache-tomcat-6.0.26\lib目录,或者拷贝apache-tomcat-6.0.26\webapps\cas\WEB-INF\lib目录

为了方便我将驱动包拷贝到了apache-tomcat-6.0.26\lib目录。

修改文件:deployerConfigContext.xml

<property name="authenticationHandlers">
			<list>
				<!--
					| This is the authentication handler that authenticates services by means of callback via SSL, thereby validating
					| a server side SSL certificate.
					+-->
				<!--
				<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
					p:httpClient-ref="httpClient" />
				-->
				
				<!--
					| This is the authentication handler declaration that every CAS deployer will need to change before deploying CAS 
					| into production.  The default SimpleTestUsernamePasswordAuthenticationHandler authenticates UsernamePasswordCredentials
					| where the username equals the password.  You will need to replace this with an AuthenticationHandler that implements your
					| local authentication strategy.  You might accomplish this by coding a new such handler and declaring
					| edu.someschool.its.cas.MySpecialHandler here, or you might use one of the handlers provided in the adaptors modules.
					+-->
				<!-- 	
				<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
				-->
				
				<!-- jdbc  -->
				<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
					<property name="sql" value="select sPassword from tbosstaff where sStaffAccount= " />
          <property name="dataSource" ref="dataSource" />
				</bean>
				
				
			</list>
		</property>
	</bean>
增加数据源配置
  <!-- jdbc DataSource -->
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
                <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
                <property name="url"><value>jdbc:mysql://localhost:3306/dzyw-cas</value></property>
                <property name="username"><value>root</value></property>
                <property name="password"><value></value></property>
        </bean>

四:配置cas-客户端

以tomcat里面的docs应用作为客户端来完成本次配置

1)在docs/WEB-INF下面建立lib文件夹

2)将cas-client-core-3.1.10.jar和commons-logging-1.1.jar拷贝到docs/WEB-INF/lib下面

3)权限认证过滤器配置

修改web.xml文件

xml version="1.0" encoding="ISO-8859-1" >
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 

  <display-name>Tomcat Documentation</display-name>
  <description>
     Tomcat Documentation.
  </description>
  
  <filter>
  	<filter-name>CAS Authentication Filter</filter-name>
  	<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
  	<init-param>
  		<param-name>casServerLoginUrl</param-name>
  		<param-value>http://localhost:8081/cas/login</param-value>
  	</init-param>
		<init-param>
			<param-name>serverName</param-name>
			<param-value>http://localhost:8081</param-value>
		</init-param>
</filter>

<filter-mapping>
      <filter-name>CAS Authentication Filter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>


</web-app>

4)登出配置

A)使用过滤器的方式

B)使用监听器的方式

四:测试

1)测试是否是否能够登录系统

使用ie访问http://localhost:8081/docs ,会自动切换到CAS-OSS的登录页面,输入数据库中保存的用户名和密码,则可以正常跳转到docs。

五:思考问题

1)数据库的密码使用加密的方式,cas怎么配置?

2)本问中的数据源使用的是简单的jdbc连接,实际项目总可能需要使用JNDI或者数据库连接池这些配置应该怎么配置?

3)怎么将登录者的信息在整个环境中传递?

4)怎么对CAS服务端做压力测试。

PHP5+MYSQL5+APACHE2+phpMyAdmin-2.7.0+ZendOptimizer,WINDOWS下装法

WINDOWS下:

注:以下此法只能用于PHP5的安装!不适于PHP4,

  PHP5和PHP4的不同点:

    1:php5和php4不同的地方就是它的动态连接库目录变了

    2:PHP5并不像PHP4那样默认支持MYSQL!

  因此PHP5比较烦!

配置为:

apache_2.0.55-win32-x86-no_ssl.msi  http://www.apache.org

mysql-5.0.16-win32.zip              http://www.mysql.com

php-5.0.5-Win32.zip                 http://www.php.net

ZendOptimizer-2.6.0-Windows-i386.exehttp://www.zend.com/

phpMyAdmin-2.7.0.zip               

注:要支持MYSQWL5。0以上,ZendOptimizer要为2。6以上版本!

第一步:安装apache2

apache安装成功测试方法:在地址栏打入http://localhost/  看到页面,表示    

                        成功!                 

  这没有什么可说的了!

主要是设一下httpd.conf文件(在C:\apache2\Apache2\conf这是我的安装路径)

注:最好是完成PHP5的安装后才设httpd.conf文件。就是做完以下第二步后!

用记事本打开它,也可以用一个叫EditPlus的软件打开!

      php一直都存在两种运行方式:

         一:以apache模块方式运行(Installing as an Apache module)。它的好

处是运行速度,本人也喜欢,推荐这种方式

         二:以cgi 方式运行(Installing as a CGI binary)。php3 在windows环

境下只能以这种方式,而以后的版本则没有该限制.   

         以下用第一种方式:

  1:在httpd.conf文件最后加上以下代码:

          LoadModule php5_module “c:/(php安装路径名)/php5apache2.dll”

          AddType application/x-httpd-php .php

  2:在httpd.conf文件中:

     找到DocumentRoot:’C:/apache2/Apache2/htdocs’

     改为DocumentRoot:’c:/web/’     不改也可以,这是改网页存放地址,我的 

     主要放在c:\web\里!

  3:找到DirectoryIndex index.html之后加上 index.php (这些表示当打开网页 

   时的默认查找顺序)

  4:重启apache

二:安装PHP5

  1:解压到你想放的目录:本人的为C:\php 

  2:把php5目录下的 php5ts.dll和php.ini-dist 拷贝到windows 的系统目录下, 

  就是Windows(XP/2000)或Wint(98)

  3:把php.ini-dist名改为php.ini

  4:安装成功测试方法:新建记事本文件改名为index.php  请注意格式为 *.php

     打开。写入如下内容:

     < 

      phpinfo();

      >

  保存到c:\web下,这是改网页存放地址

  在地址栏下打入http://localhost/index.php看到页面,表示成功!

三:安装MYSQL5

  1:在WIN装好后!在windows 的系统目录下,就是Windows(XP/2000)或Wint(98)

建一个名为my.ini的文件

输入如下内容:

    [mysqld]

basedir=c:/Program Files/MySQL/MySQL Server 5.0/

datadir=c:/Program Files/MySQL/MySQL Server 5.0/data

[WinMySQLAdmin]

Server=C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqld-nt.exe

注:C:/Program Files/MySQL/MySQL Server 5.0/为MYSQL的安装路径。根据你自 

   己的定!建此文件的目的是为了使MYSQL为WIN系统服务并隋开机启动,很重要的



保存!

2:运行–cmd  打开DOS

    先后输入

    cd \

    cd C:/Program Files/MySQL/MySQL Server 5.0/bin(MYSQL的安装路径)

    mysql-nt –install

    net start mysql

    退出。

   重启apache!

3:让PHP5支持MYSQL5:

   打开在windows 的系统目录下的php.ini文件

   找到extension_dir = “./” 改为 extension_dir = “d:/(php安装路径)/ext”

   找到;extension=php_mysql.dll 去掉前面的;

   保存!

4:接下来一点很重要的就是把php目录下的libmysql.dll复制到windows/system32 

   下,如果不这样做,mysql动态连接库就无法正常加载。

   重新启动apache!

5:测试是否成功!

   在c:\web下建文件test.php

   内容为:

   < php

   $link=mysql_connect(‘localhost’,’root’,’123456′);

   if(!$link) echo “fail”;

   else echo “success”;

   mysql_close();

    >

   保存!

      在地址栏打入http://localhost/test.php   显示success时就可以的,当然

   你也可以用phpMyAdmin来测!

四:phpMyAdmin

    解压到c:\web下,在地址栏打入http://localhost/phpMyAdmin/就可以管理   

MYSQL5了!

五:ZendOptimizer

    这个不一定要装,它的主要功能为:

    1:加速PHP文件执行!

    2:能显示被Zend Encode加密的PHP代码!这点很重要!

 

到此已经完成了PHP5+MYSQL5+APACHE2+phpMyAdmin-2.7.0+ZendOptimizer-2.6.0-

Windows-i386.exe环境构建!

phpvista图文版安装方法请点此查看http://www.phpchina.com/bbs/viewthread.php tid=11650&page=6#pid75527

Aapche2.2和PHP5.2以及Mysql5.0的整合配置

因为公司的一个PHP论坛要升级,以前的负责人已经离职,不得已,要我把这套东西重新配置一下~

安装apache和mysql,解压php,没什么可说的,然后将php目录中的php.ini.recommended修改为php.ini。

到网上找了找,发现简单麻烦的都有,各有各的说法。

没有办法,去php.net上找了找,按照他的配置,很简单,就可以了

引用



# For PHP 4 do something like this:

LoadModule php4_module “c:/php/php4apache2.dll”

# Don’t forget to copy the php4apache2.dll file from the sapi directory!

AddType application/x-httpd-php .php

# For PHP 5 do something like this:

LoadModule php5_module “c:/php/php5apache2.dll”

AddType application/x-httpd-php .php

# configure the path to php.ini

PHPIniDir “C:/php”


其中module的位置是自己的dll的位置,说明一点的就是,Apache2.2的要用php5apache2.2.dll,而不是给出配置中的php5apache2.dll。PHPIniDir就是你的php.ini的位置。

这样下来的话,apache支持php就没有问题了,但是要支持mysql,还需要一下两步:

1.修改php.ini。

在php.ini中找到

;extension=php_mysql.dll

;extension=php_mysqli.dll

去掉前边的分号,使它起作用。(其他的extension也可以依照自己的需要启用,如果不知道extension的作用是什么,都可以到www.php.net上去查。)

2.将libmysql.dll加入PATH当中,不然mysql是用不了的,我的是这样,不知道大家的情况怎么样

另外,在php.ini中还有关于mysql的一系列配置,大家可以根据自己的经验和需要进行修改,其中的参数作用和默认值在www.php.net上都可以查得到。