InstallationGuide_CN Roller Weblogger安装向导 v1.0

请参见:用户向导

源文本版权归属 Copyright ? 2002-2004 David M Johnson

  • 介绍
    • 第一步:先决条件 [1]
    • 第二步:解压缩下载的ZIP或TAR文件 [2]
    • 第三步:在数据库中建立Roller涉及的表 [3]
    • 第四步:下载并且安装需要的jars文件 [4]
    • 第五步:在服务器中部署Roller [5]
    • 第六步:启动前的工作 [6]
    • 第七步:启动Tomcat和Roller [7]
    • 第八步:后续工作 [8]
  • 开发者请参见开发者向导



介绍

这篇文档描述了如何在Tomcat Servlet引擎上安装 Roller Weblogger版本1.0, 以及如何设置:

  • Java 1.4.x SDK或更高版本的SDK
  • Tomcat 4.x或5.x Servlet容器(非Tomcat"LE"版本).建议建立国际化的站点使用Tomcat 5.x
  • MySQL 4.x或更高版本
  • Windows或基于Unix的操作系统

对于Roller 0.9.8版本请参见 安装向导098

如何设置其他的servlet引擎? 这篇向导主要支持Tomcat,但是在拥有这些经验以后,你应该可以使Roller工作在任何与Servlet API 2.3兼容的Servlet容器中 (例如Weblogic,Websphere,Jetty,ResinOrionServer等等); 建议建立国际化的站点使用支持Servlet API 2.4的服务器。 如果你把Roller部署在一个非Tomcat的容器中,请贡献你的安装心得来帮助其他人.

如何设置其他的数据库? 这篇向导主要支持MySQL,但是Roller包含了PostgreSQLHSQL-DB的数据库安装脚本.有经验之后你应该能够使Roller工作在任何支持JDBC的数据库上(例如Oracle,Informix,Sybase,MS SQL Server等等)。



第一步:前决条件 [#1]

在你安装Roller之前,你需要确认在你的系统上已经安装并且设置了一下软件:Java SDK,Tomcat Servlet引擎和MySQL数据库.如果在Debian上使用MySQL,请参考DebianMySQL

作为安装Tomcat的一部分,你应该已经正确地设置了CATALINA_HOME环境变量,就像下面的实例所显示的.我们需要设置它,是因为在这篇向导的其他实例中我们会引用该变量.

UNIX(csh)实例:

    % setenv CATALINA_HOME /opt/jakarta-tomcat-5.0.29

Windows实例,MS-DOS或者命令提示窗口:

    C> set CATALINA_HOME d:\jakarta-tomcat-5.0.29



第二步:解压缩下载的ZIP或TAR文件 [#2]

在这步中,应该把下载的ZIP或者TAR文件解压到Servlet容器的web应用程序的部署目录中.Tomcat的部署目录是Tomcat安装目录下的webapps目录.

UNIX实例:

    % cp roller-1.0.tgz $CATALINA_HOME/webapps
    % cd $CATALINA_HOME/webapps
    % tar xzvf roller-1.0.tgz

在Windows下:使用WinZIP,解压roller.zip到%CATALINA_HOME\webapps目录下.



第三步:在数据库中建立Roller涉及的表 [#3]

现在你需要建立一个新的数据库,建立一个拥有适当权限的用户,然后使用SQL脚本来建立运行Roller需要的数据库表.请登陆到数据库,之后运行Roller WEB-INF/dbscripts目录下的Roller数据库建立脚本.

  • WEB-INF/dbscripts/mysql/creatdb.sql - 在MySQL中建立表的数据库脚本
  • WEB-INF/dbscripts/hsql/creatdb.sql - 在HSQL-DB中建立表的数据库脚本
  • WEB-INF/dbscripts/postgresql/creatdb.sql - 在PostgreSQL中建立表的数据库脚本

下面的实例将向你展示在MySQL中如何建立数据库表,假设你的Roller用户的用户名是scott,密码是tiger.关于MySQL的进一步信息请参考MySQL的参考手册.

UNIX实例

    % cd $CATALINA_HOME/webapps/roller/WEB-INF/dbscripts/mysql
    % mysql -u root -p
    password: *****
    mysql> create database roller;
    mysql> grant all on roller.* to scott@'%' identified by 'tiger';
    mysql> grant all on roller.* to scott@localhost identified by 'tiger';
    mysql> use roller;
    mysql> source createdb.sql
    mysql> quit

Windows实例,MS-DOS或者命令提示窗口:

    C> cd %CATALINA_HOME%\webapps\roller\WEB-INF\dbscripts\mysql
    C> mysql -u root -p
    password: *****
    mysql> create database roller;
    mysql> grant all on roller.* to scott@'%' identified by 'tiger';
    mysql> grant all on roller.* to scott@'localhost' identified by 'tiger';
    mysql> use roller;
    mysql> source createdb.sql
    mysql> quit

注意:

从Roller0.9.8升级到Roller1.0:你应该运行098-to-100migration.sql脚本来升级你的数据库.在数据库对应的creatdb.sql所在的目录下你可以找到该脚本。 从Roller0.9.7升级到Roller1.0:你应该首先运行097-to-098-migration.sql,然后再运行098-to-100-migration.sql。

问题: MySQL的用户不要忘记调用“刷新特权”,并且确认你的MySQL没有设置"skip-networking"选项.因为Connector/J只能通过TCP/IP来存取mysql.然而mysql命令行工具默认不使用TCP/IP套接字.使用以下的命令来检查你的连接是否正常工作(使用除了localhost的值来指定主机地址)

    mysql roller -h 127.0.0.1 -u scott -ptiger



第四步:下载并且安装需要的jars文件 [#4]

你需要下载并且安装几个必须的jar(s)包:JDBC驱动和JavaMail jars包。

4.1:JDBC驱动

Roller使用应用服务器提供的数据库连接池,在下一步我们将会设置它。应用服务器想要和数据库进行连接,就需要对应于该数据库的JDBC驱动。

对于Tomcat来说,只需要简单地把JDBC驱动拷贝到Tomcat的common/lib目录中就行了。

实例: MySQL的用户可以在MySQL网站的Connector/J页面上找到MySQLJDBC驱动-Connector/J。 下载并且解压该文件,然后把JDBC驱动jar包拷贝到Tomcat的common/lib目录下。

UNIX实例: 解压(unzip,untar)MySQL Connector/J到一个目录中,cd到该目录,然后拷贝JDBC驱动jar包到Tomcat的common/lib目录下。

    % cp mysql-connector-java-3.0.15-ga-bin.jar $CATALINA_HOME/common/lib

Windows实例,MS-DOS或者命令提示窗口: 解压(unzip,untar)MySQL Connector/J到一个目录中,cd到该目录,然后拷贝JDBC驱动jar包到Tomcat的common/lib目录下。

    C> copy mysql-connector-java-3.0.15-ga-bin.jar %CATALINA_HOME%\common\lib

4.2:JavaMail和激活架构(Activation)jars包

可以设置Roller发送文章评论的email通知。如果想要这个功能工作,Roller需要JavaMail和激活架构jars包来支持。

从Sun的网站下载JavaMail和激活架构jars包,解压下载的文件,然后把解压后的mail.jar和{activation.jar}文件拷贝到roller/WEB-INF/lib目录下。否则Roller将不能启动发送mail的功能。



第五步:在服务器中部署Roller [#5]

在J2EE应用服务器中部署Roller。你必须完成以下三步:

  • 告诉应用服务器Roller的安装目录
  • 告诉应用服务器使用Roller数据库中的rolleruser和userrole表来验证登陆的用户
  • 为数据库设置数据源jdbc/rollerdb

使用Tomcat 4.X 和 5.0.X的实例

对于Tomcat用户来说,就是编辑Tomcat Servlet引擎的conf/server.xml设置文件,添加Roller Servlet Context。在文件中设置使用Roller数据库的Servlet认证信息和Roller数据源。在server.xml文件中找到定义Contexts的位置,如果使用MySQL,应该把本文下面的代码添加到该位置。之前要确认你已经用你的MySQL数据库的用户名和密码取代了代码中的scott和tiger。

另外一种方法是:你可以把下面的Context设置代码添加到webapps/roller.xml文件中。如果你使用的是Tomcat 5.x,可以把该文件放到CATALINA_HOME/conf/Catalina/localhost目录下。 如果你使用Tomcat 5.5.X作为容器,请参考下面的实例。

为了避免jdbc连接问题,请用“&”取代connectionURL中的“&”。这种方法将会解决一些人遇到的xml合法性错误。当然还用改变下面的端口号为主机上正确的端口号。

<Context path="/roller" docBase="roller" debug="0">

<Realm className="org.apache.catalina.realm.JDBCRealm"      
    driverName="com.mysql.jdbc.Driver" 
    connectionURL=
    "jdbc:mysql://localhost:3306/roller?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8"
    connectionName="scott"
    connectionPassword="tiger"
    userTable="rolleruser" 
    userNameCol="username" 
    userCredCol="passphrase" 
    userRoleTable="userrole" 
    roleNameCol="rolename" debug="0" />

<Resource name="jdbc/rollerdb" auth="Container" type="javax.sql.DataSource" />

<ResourceParams name="jdbc/rollerdb">
    <parameter>
       <name>factory</name>
       <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
       <name>driverClassName</name>
       <value>com.mysql.jdbc.Driver</value>
    </parameter>
    <parameter>        
       <name>url</name>
       <value>
          jdbc:mysql://localhost:3306/roller?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8
       </value>
    </parameter>
    <parameter><name>username</name><value>scott</value></parameter>
    <parameter><name>password</name><value>tiger</value></parameter>
    <parameter><name>maxActive</name><value>20</value></parameter>
    <parameter><name>maxIdle</name><value>3</value></parameter>
    <parameter><name>removeAbandoned</name><value>true</value></parameter>
    <parameter><name>maxWait</name><value>3000</value></parameter>
</ResourceParams>

<!--
To enable email notification of comments: uncomment the resouce below, 
set your mailhost, and make sure you have mail.jar and activation.jar 
in <tomcat>/common/lib.
-->
<!--
    <Resource name="mail/Session" auth="Container" type="javax.mail.Session"/>
    <ResourceParams name="mail/Session">
        <parameter>
            <name>mail.smtp.host</name>
            <value>mailhost.example.com</value>
        </parameter>
    </ResourceParams>
-->

</Context>

使用Tomcat 5.5.X的实例

在Tomcat 5.5.X中,定义资源参数的行为已经改变。 对于Tomcat 5.5.x来说,资源参数必须被定义为Resource元素的一个属性;ResourceParams元素不被支持。 你可以使用下面的实例作为设置的起点。 这只对Tomcat 5.5.x有效;对于Tomcat 4.X 和 5.0.X 请使用上面的实例。

<Context path="/roller" docBase="roller" debug="0">

<Realm className="org.apache.catalina.realm.JDBCRealm"      
    driverName="com.mysql.jdbc.Driver" 
    connectionURL=
        "jdbc:mysql://localhost:3306/roller?autoReconnect=true&amp;
        useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8"
    connectionName="scott"
    connectionPassword="tiger"
    userTable="rolleruser" 
    userNameCol="username" 
    userCredCol="passphrase" 
    userRoleTable="userrole" 
    roleNameCol="rolename" debug="0" />

<Resource name="jdbc/rollerdb" auth="Container" type="javax.sql.DataSource"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/roller?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8"
  username="scott"
  password="tiger"
  maxActive="20"
  maxIdle="3"
  removeAbandoned="true"
  maxWait="3000" />

<!--
To enable email notification of comments: uncomment the resouce below, 
set your mailhost, and make sure you have mail.jar and activation.jar 
in <tomcat>/common/lib.
-->
<!--
    <Resource name="mail/Session" auth="Container" type="javax.mail.Session"
       mail.smtp.host="mailhost.example.com" />
-->

</Context>

注意

  • <Context>设置的第一部分设置了Tomcat的认证<Realm>。这个设置会让Tomcat在Roller数据库中的表中查找用户信息,来检查用户登陆的证书(用户名和密码)。我们设置Tomcat使用Roller数据库中的rolleruserrole表。关于设置<Realm>的更多信息,请参考Tomcat文档中关于JDBC Realm的章节。
  • <Context>设置的第二部分用<Resource>设置了Roller的数据源。你必须重复一些在<Realm>设置中的连接参数。
  • ‘&’字符在XML中被用来识别实体引用,所以你必须用‘&user=scott&password=password’来代替connectionURL中‘&user=scott&password=password’,来避免启动Tomcat时的解析异常。--例如:在‘&’后添加‘amp;’--
  • 如果你使用的不是MySQL或者你使用的是更新的MySQL Connector/J JDBC驱动,那你就要用合适的JDBC连接参数来取代代码中的参数(驱动类名和连接URL)。
  • 如果在Roller启动时发生错误,并且在logs(roller.log)中的错误信息类似于“User scott@localhost has already more than 'max_user_connections' active connections”,请尝试减小maxActive,maxIdle和removeAbandoned的值。根据你数据库的设置你必须要做一些调整,例如设置maxActive为6,maxIdle为3,removeAbandonedTimeout为60。
  • 从Roller 0.9.7升级,注意下面的一些变化:
    • role已经被重命名为userrole
    • 表userrole中的role列被重命名为rolename
    • 表rolleruser中的password列被重命名为passphrase



第六步:启动前的工作 [#6]

在启动Roller前,最后的一些工作...

6.1:设置应用服务器的I18N(国际化)

Roller实现国际化的方法就是用UTF-8编码做所用的事情。如果你想要I18N正常地工作,就要设置应用服务器和web服务器使用UTF-8编码。

Web应用服务器URI编码
确认你的应用服务器使用UTF-8来编码URI's。这样就允许你在urls中使用一些区分的字符。对Roller来说这点非常重要,因为在URLs中Weblog的登陆标题被使用。

实例: 在Tomcat中,URL的编码在server.xml文件的Connector中指定:

<Connector port="12345" 
           enableLookups="false" 
           URIEncoding="UTF-8" 
           redirectPort="8443" 
           debug="0"
           protocol="AJP/1.3" />

注意: 你需要在与Roller应用有关的每一个connector中设置该属性。例如,如果你直接使用HTTP connector,而不是AJP和Apache,你也同样需要在connector元素中添加URIEncoding="UTF-8"属性,同样也适用于HTTPS connector。

Web服务器页面的编码
如果你使用一个独立的web服务器,比如Apache,来管理静态内容,请确认web服务器的页面编码被设置为UTF-8。

例如: Apache 2.x的情况,使用AddDefaultCharset来设置。

AddDefaultCharset utf-8

6.2:步骤1的继续

你是否认为6.1更像单独的一部分呢?



第七步:启动Tomcat和Roller [#7]

启动Servlet容器,打开你的浏览器,进入Roller的首页,开始享受Roller吧。

如果你在Tomcat上安装了Roller,Roller首页的URL可能是http://localhost:8080/roller

UNIX实例:

    % cd $CATALINA_HOME/bin
    % ./startup.sh

Windows实例,MS-DOS或者命令提示窗口:

    C> cd %CATALINA_HOME%\bin
    C> startup

正像你做的!Roller正在完美地工作了。如果没有,请到roller-user&#37038;&#20214;&#21015;&#34920;中请求帮助。一些人可能和你遇到相同的问题。注意:你建立的第一个用户将有管理员的权限,所以确定建立第一个用户的是你自己。管理员可以授权给其他用户管理员的权限,并且可以撤销该用户的权限。



第八步:后续工作 [#8]

现在你已经安装了Roller并且确认了它已经开始工作,这里还有一些你可能希望完成的工作。

8.1:设置Roller的命令行管理工具

Roller的命令行管理工具允许你给用户授权和撤销给用户的授权,保存所有的密码到一个文件中,从一个文件中恢复所有的密码,加密数据库中所有的密码。下面将讲解如何设置该工具。

  • 打开命令行窗口
  • 改变目录到Roller安装目录中的WEB-INF/dbscripts目录下
  • 编辑文件 rollerdb.properties ,包含你的数据库连接参数
  • 编辑文件 rollerpw.shrollerdb.bat (Windows平台),设置JDBC驱动的classpath
  • 在UNIX环境中,在你第一次运行该脚本之前,你必须先运行命令 chmod +x rollerpw.sh 使脚本变为可执行的
  • 运行脚本 rollerpw.shrollerdb.bat (Windows平台),然后它将会显示一些脚本的用法信息。

8.2:可选的步骤

一些可选的步骤...(TBD)

你可能感兴趣的:(sql,tomcat,mysql,应用服务器,jdbc,server)