NPS安装手册Installation Guide

安装手册仅适用于初次安装。

See also

top

安装前检查

NPS是一个WEB应用,运行在中心服务器上,是一整套基于java的信息发布管理、网站运行方案,用于帮助用户通过浏览器管理自己的网站。客户端支持IE6以上版本、FireFox2以上版本浏览器。

硬件
         试用或开发模板调试使用的,NPS运行在一台足够快的PC上(例如1.5+Ghz,512MB内存)就可以了。NPS的JAVA虚拟机建议分配128M内存。如果需要同时安装oracle数据库服务器,建议至少配置1G内存。 可以很方便、快速地从试用环境迁移到生产环境中。
         生产环境所需的硬件依赖于数据规模、使用NPS的并发用户数。一般来说,生产环境应包括WEB服务器、应用服务器、NPS服务器、ORACLE数据库服务器。
         WEB服务器建议运行Aapche或light http,用于静态页面服务。大规模应用应采用集群方案,例如DNS轮询。
         应用服务器建议运行TOMCAT等开源服务器或IBM WAS等商用服务器。应用服务器至少支持SERVLET 2.4标准。 如果使用TOMCAT,WEB服务器和应用服务器间可以采用mod_jk或mod_webapp进行通讯。 对于超过2G内存的服务器,建议运行2个以上应用服务器,建议每个应用服务器JAVA虚拟机最大内存设置为768M以便获得最佳性能。
         小规模应用时,应用服务器可以和WEB服务器合并。如使用mod_jserv方式运行Tomcat服务器或同时运行TOMCAT和APACHE服务。
         大规模应用应采用集群方案。TOMCAT官方说明,一般支持的并发用户不超过200/CPU。商用服务器参见厂商关于集群的说明。
         NPS服务器主要用于信息发布管理使用,主要面向内部用户,因此一般来说并发量不大。 如果NPS管理的站点在10个以内,运行在一台1G内存的服务器上就足够了。 大规模应用的NPS服务器配置参考应用服务器配置方案。
         为简化NPS的配置,建议为NPS服务器分配独立域名用于管理,例如nps.yourdomain.com。
         ORACLE数据库服务器建议用户数据和NPS数据分开存放,即建立独立的tablespace和owner。
操作系统
NPS运行在任何支持JAVA的操作系统中。JWebStar所有服务器都运行LINUX。
JAVA
NPS至少要求JDK 1.5。Sun提供Windows、Solaris、Linux平台下32位和64位版本的JDK。
应用服务器
NPS是一个WEB应用,需要应用服务器支持。应用服务器必须支持SERVLET2.4。
JWebStar的NPS服务器运行在Apache Tomcat5.5.26上。
数据库服务器
Oracle 9i以上版本。建议使用Oracle 10g(10.2以上版本)。
top

NPS下载与安装

将NPS解压到指定目录,例如/opt/nps/。该目录被称为NPS安装目录,使用{$NPS_HOME}表示。

Windows:使用winzip进行解压缩。

Linux:
    1.mkdir /opt/nps/
    2.mv nps_1.0.zip /opt/nps/
    3.unzip nps_1.0.zip

top

ORACLE配置

推荐使用ORACLE 10g。NPS已经在Oracle 9.2和Oracle 10.2上测试通过。

1.创建一个独立的表空间,例如T_NPS用于存放数据,I_NPS用于存放索引。
2.创建一个数据库用户,例如NPS。该用户使用以上表空间。
3.确认该用户具有connect和resources权限。
4.使用SqLPlus或PL/SQL Developer等工具,执行db目录下的NPS_oracle.sql,系统将自动创建一个超级管理员,帐号为system,密码为manager。
5.如果不是使用10.2版本,请使用oracle自带的jdbc驱动替换NPS默认带的10.2的驱动程序。方法如下:
     1)删除{$NPS_HOME}/web/WEB-INF/lib/ojdbc14.jar文件;
     2)将{$ORACLE_HOME}/jdbc/lib/ojdbc14.jar复制到{$NPS_HOME}/web/WEB-INF/lib/。
     3){$ORACLE_HOME}为oracle数据库服务器上安装目录,例如/u01/app/ora9i/
     4){$NPS_HOME}为NPS服务器上NPS安装目录,例如/opt/nps/

top

TOMCAT配置

1.确认web.xml

系统默认的web.xml是根据Tomcat5.5.x生成的。如果是其他版本,web.xml的格式可能有所不同,可以从Tomcat自带的Sample中复制一个web.xml,并将下列表格中内容增加到web-app段中。

<servlet>
<servlet-name>Config</servlet-name>
<servlet-class>nps.core.Config</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Config</servlet-name>
<url-pattern>/servlet/Config</url-pattern>
</servlet-mapping>
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>nps.util.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.修改Tomcat的server.xml文件

打开{$TOMCAT_HOME}/conf/server.xml文件,在你需要的Host段落中添加以下内容。
注意:请将{$NPS_HOME}修改为上面的路径,例如/opt/nps。

<Context path="" docBase="{$NPS_HOME}/web" debug="0"/>
top

NPS配置

1.数据库连接参数配置

打开{$NPS_HOME}/web/WEB-INF/db.xml配置数据库连接。有三种配置方法。推荐使用第二种方法,即ORACLE自带的数据库连接池方法。

1)不使用数据库连接池的配置方法:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<DataSource name="nps">
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@192.168.1.1:1521:pubdb</url>
<user>nps</user>
<password>your password</password>
</DataSource>
</root>
2)使用Oracle自带的数据库连接池的配置方法:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<DataSource name="nps">
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@192.168.1.1:1521:pubdb</url>
<user>nps</user>
<password>your password</password>
<pool>
     <min>5</min>
     <max>100</max>
</pool>
</DataSource>
</root>
3)使用外部数据源的配置方法。这种方法要求在应用服务器连接池管理中增加名为nps的数据库连接池。JNDI地址为java:comp/env/jdbc/nps。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<DataSource name="nps">
</DataSource>
</root>
2.核心配置

打开{$NPS_HOME}/web/WEB-INF/nps.conf配置。

#所有临时文件的根目录,必须填写
为目录名,用于存储运行过程中上传的附件、产生的临时文件、日志文件等。一般建议设置独立分区,注意最后应加上/
TEMP_ROOTPATH=/NPSTEMP/

#编译路径,自动包含/WEB-INF/classes;/WEB-INF/lib;${TEMP_ROOTPATH}/classes
#COMPILE_CLASSPATH=

#是否缓存数据,对于集群模式,建议不缓存,默认为true,表示缓存
#CACHE=true

#Locale,默认为CHINA
可以设置国家或地区,US、UK、TAIWAN、KOREA、JAPAN、ITALY、GERMANY、FRANCE、CHINA、CANADA、CANADA_FRENCH
也可以设置为语言:ENGLISH、FRENCH、GERMAN、ITALIAN、JAPANESE、KOREAN、CHINESE 、TRADITIONAL_CHINESE。
默认设置下(CHINA),所有提示语使用中文。
#LOCALE=

#FTP、索引等作业重试间隔时间(秒),DEFAULT=600
#SCHEDULE_INTERVAL=

#SOLR的URL地址,默认为http://localhost/solr
SOLR索引服务器的URL根路径。一般来说,http://localhost/solr/update用于索引的更新服务;而 http://localhost/solr/select用于索引的查询服务。
如果SOLR参数不设置任何值,那么全文索引服务将被关闭,包括更新和查询服务。
SOLR=http://localhost/solr

#MAIL服务器地址,默认为localhost
MAIL_SERVER=localhost

#MAIL服务器SMTP端口,默认25
MAIL_SMTPPORT=25

#MAIL服务器POP3端口,默认110
MAIL_POP3PORT=110

#MAIL认证用户名,默认为NULL
MAIL_USER=你的邮件帐号

#MAIL认证密码,默认为NULL
MAIL_PASSWORD=你的邮箱密码
3.系统日志配置

NPS使用LOG4J记录日志。打开{$NPS_HOME}/web/WEB-INF/log4j.properties配置。

log4j.rootLogger=nps
log4j.addivity.org.apache=true
log4j.appender.nps=org.apache.log4j.RollingFileAppender
log4j.appender.nps.Threshold=ERROR
#日志文件名,默认存放在/NPSLOG/nps.log文件下,按100M每个文件自动分割。
#鉴于日志较大,建议将/NPSLOG独立分区
log4j.appender.nps.File=/NPSLOG/nps.log
log4j.appender.nps.Append=true
log4j.appender.nps.MaxFileSize=100MB
log4j.appender.nps.MaxBackupIndex=1
log4j.appender.nps.layout=org.apache.log4j.PatternLayout
log4j.appender.nps.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
4.USERDIR配置

USERDIR用于存放用户采编过程中上传的图片及附件(用于采编过程中预览使用),其目录是{$NPS_HOME}/web/userdir/。
系统启动后该目录将被自动创建。对于该类数据较大的用户,在系统配置时建议手工创建该目录,并将该目录mount为独立分区。

5.Quartz配置

Quartz用于后台定时任务的执行,NPS默认自带的Quartz配置是基于Oracle实现集群调度的。
打开{$NPS_HOME}/web/WEB-INF/quartz.properties配置Quartz。

#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
NPS默认配置25个调度线程。
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure JobStore
#============================================================================
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
#============================================================================
# Configure Datasources
#============================================================================
设置数据库连接参数和最大连接数。
org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@192.168.1.1:1521:pubdb
org.quartz.dataSource.myDS.user = nps
org.quartz.dataSource.myDS.password = your password
org.quartz.dataSource.myDS.maxConnections = 5
org.quartz.dataSource.myDS.validationQuery=select 0 from dual