- 浏览: 581698 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (188)
- java (14)
- web (14)
- web service (3)
- 杂谈 (14)
- Version Control (13)
- software test (30)
- linux (17)
- database (3)
- distributed storage and computing (1)
- ejb (7)
- project building (46)
- spring & IOC (2)
- Thread (2)
- xml (2)
- tool software (0)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
- project manager (9)
- OSGI (1)
- nosql (3)
最新评论
-
sp42:
好搞笑
你懂不懂xml! (2) -
cherishmmo2004:
感觉你们都很牛掰,我们做的一个运维平台也是用karaf的,用k ...
基于osgi开发大型的企业应用 -
liubey:
“自作聪明”的使用了读写锁,其实只使用ReentrantLoc ...
编码最佳实践(4)--小心LinkedHashMap的get()方法 -
liubey:
你这个代码是sublist后仍然一直持有这个sub的引用,一般 ...
编码最佳实践(5)--小心!这只是冰山一角 -
xiegqooo:
初学maven(5)-使用assembly plugin实现自定义打包
有两年多没有使用resin了,最近打算在机器上安装一个web container跑点java web app,同时也可能需要支持php,原本打算用apache + tomcat,apache可以加载php模块来提供php支持,tomcat作为java web container。但突然想到resin,似乎是可以直接支持php的,而且resin的速度也是稍微快于tomcat,于是跑到resin的官网看了一下,恩,新出了4.0版本(惭愧,两年前用的是3.0或者3.1)。
决定用resin试试,老朋友了。但是在安装过程中,发现了一系列问题,尤其是设置开机自动启动,记录下来提供大家参考。
家里有台服务器,原来安装的是ubuntu 9.10的desktop版本,主要是考虑到ubuntu在作为桌面时非常不错,顺便做服务器。
(1) 下载
从resin的官网
下载到最新的linux版本4.0.5:
http://www.caucho.com/download/resin-4.0.5.tar.gz。
(2) 安装
先解压缩,然后重名为resin
tar xvf resin - 4.0 . 5 .tar
move resin - 4.0 . 5 resin
cd resin
. / configuration --prefix=/work/soft/resin
问题1. ubuntu下JAVA_HOME出错
在这里遇到一个特别奇怪的问题,我明明设置了JAVA_HOME而且肯定路径是有效的,但是resin就是报错:
configure: error: Can ' t find valid JAVA_HOME
检查env:
JAVA_HOME =/ usr / local / java / jdk1. 6
再看目标路径/
usr
/
local
/
java
/
jdk1.
6
,没有问题。有点郁闷,莫名其妙,于是找到resin官网的说明文档resin
installation quick start
,发现一句话,"On Unix, set the JAVA_HOME variable or link /usr/java to the java home."。 好吧,试试/usr/java这个办法,
再执行configure就不再出错了(补充,这个问题只在ubuntu 9.10出现,后来在suse sles11上没有出现,sles只要JAVA_HOME正确就可以了),接着
make install
安装完成,但是报错,应该是没有/etc/init.d/resin的写权限,这样就无法实现开机自动启动resin。
WARNING: Unable to install / etc / init.d / resin
Destination is not writable. Usually, only root has
permissions to install this file.
This file is not required, but is used to start Resin
at boot time.
****************************************************************
启动resin,然后用浏览器访问http://192.168.0.40:8080/,成功。
. / resin.sh start
(3) 快捷设置
1. 为了方便使用resin,编辑.profile文件,加入一些别名:
#resin
RESIN_HOME=/work/soft/resin
alias
cd_resin="cd $RESIN_HOME"
alias
resin_start="$RESIN_HOME/bin/resin.sh start"
alias
resin_stop="$RESIN_HOME/bin/resin.sh stop"
alias
resin_restart="$RESIN_HOME/bin/resin.sh restart"
执行 source
.profile导入。
(4) 开机自动运行
问题2: ubuntu 下开机自动运行设置无效
以前install
/
etc
/
init.d
/
resin失败,
只好自己动手了,将resin/init.d/resin(make 后生成) 这个文件复制过去:
sudo chmod + x / etc / init.d / resin
sudo update - rc.d resin defaults
重启之后,发现resin没有启动起来。反复检查init.d/rc.d的设置,google了n多文档,实验了很多次,始终都是无效!!极其郁闷。
后来看到一些说法,ubuntu在很多设置上和一般常见的linux发行版本不大相同,比如没有chkconfig,需要使用update
-
rc.d等,考虑一般也不怎么用linux桌面,ubuntu在server上用的比较少。手头又正好有个suse sles 11的安装盘,于是一时冲动,决定换个linux版本,以后用suse好了。(从后面的情况,问题不在ubuntu上,算是我冤枉ubuntu了)。
suse安装的过程不提,后面会有单独的文章做安装记录。安装好之后,直奔主题,安装jdk和resin。一路顺风,直到再次执行到安装resin的开启启动
问题3. suse slse 11
下启动自动运行设置无效
sudo chmod + x / etc / init.d / resin
sudo chkconfig resin on
上面算是标准的resin开机启动设置了,结果重启后发现无效。很郁闷,linux版本都换了,还是同样结果。
试着直接使用/
etc
/
init.d
/
resin来启动resin,模拟开机时的系统调用:
. / resin: line 86 : log_daemon_msg: command not found
. / resin: line 96 : log_end_msg: command not found
意外发现上面的错误提示,打开/
etc
/
init.d
/
resin
,以下是启动的脚本片段:
if test - r / lib / lsb / init - functions; then
. / lib / lsb / init - functions
else
log_daemon_msg () {
if [ - z " $1 " ]; then
return 1
fi
return 1
fi
if [ - z " $2 " ]; then
echo - n " $1: "
return
fi
echo - n " $1: $2 "
}
log_end_msg () {
[ - z " $1 " ] && return 1
if [ $ 1 - eq 0 ]; then
echo " . "
else
echo " failed! "
fi
return $ 1
}
fi
从这个if语句看,如果/
lib
/
lsb
/
init
-
functions存在就载入
/
lib
/
lsb
/
init
-
functions的内容,否则就自己定义相关的两个函数。vi打开
/
lib
/
lsb
/
init
-
functions,发现问题:里面根本没有
log_daemon_msg() /
log_end_msg()两个方法!
解决的方法简单,删除掉这个if,直接使用自定义的函数好了。
之后重新执行,resin正常启动,resin的初始化页面可以访问。
很高兴的重启suse,结果还是发现有问题,resin没有起来!继续,ps看进程发现resin 的watchdog进程启动了,但是resin的进程没有起来。找到resin的log,发现在watchdog-manager.log中有大量的异常:
at com.caucho.bootjni.JniProcess.exec(Native Method)
at com.caucho.bootjni.JniProcess. < init > (JniProcess.java: 91 )
at com.caucho.bootjni.JniProcess.create(JniProcess.java: 124 )
at com.caucho.bootjni.JniBoot.exec(JniBoot.java: 69 )
at com.caucho.boot.WatchdogChildProcess.createProcess(WatchdogChildProcess.java: 381 )
at com.caucho.boot.WatchdogChildProcess.run(WatchdogChildProcess.java: 126 )
at com.caucho.boot.WatchdogChildTask.run(WatchdogChildTask.java: 174 )
at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java: 901 )
at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java: 866 )
怀疑是这个造成的,watch dog 启动resin时遭遇异常,因此resin没有启动,而watch dog的进程在,和ps的结果符合。实验了一下,删除所有log文件。使用/etc/init.d/resin start命令直接启动resin,成功,查看日志文件没有异常。
再次清空日志文件,重启resin,启动后ps看进程,并查看watchdog-manager.log,上面的现象重现。问题就应该在这里了,"www
-
data is an unknown user
",用命令看了一下的确系统中不存在所谓的www-data用户,因此问题聚焦到,www-data是哪里冒出来的?很明显直接启动resin时是不会遇到这个问题的。
google "www-data resin"有所发现:在caucho的wiki发现对此的描述:
http://wiki.caucho.com/Migrating_from_Resin_3.0_to_Resin_4.0
(recommended) and bind to port 80 , you ' ll need to start Resin as root. In Resin 4.0, the
Resin process can drop privileges as soon as it ' s bound to all its ports. You can configure
the user that Resin uses in the < server > or < server - default > sections:
< server - default >
< resin: if test = " ${resin.userName == 'root'} " >
< user - name > www - data </ user - name >
< group - name > www - data </ group - name >
</ resin: if >
问题应该在这里了,如果当前用户是root(开机启动时当然只能是root),resin就会使用这里设置的user/group,resin配置文件中默认是www-data/www-data,而这www-data/www-data肯定是不会默认存在的,因此造成上述resin无法启动的问题。
打开resin/conf/resin.xml,找到以下内容:
- If starting Resin as root on Unix, specify the user name
- and group name for the web server user.
-->
< resin:if test ="${resin.userName == 'root'}" >
< user-name > www-data </ user-name >
< group-name > www-data </ group-name >
</ resin:if >
修改user-name/gourp-name为有效user/group,保存。重启suse,这次resin终于正常的启动了,不容易啊。这个www-data的问题估计是resin4.0版本之后带入的,因为以前用3.0版本没有发现类似问题。奇怪的是,resin的安装文档中绝口不提这个东东,呵呵,浪费我不少时间。
发表评论
-
ubuntu10.10 + vista双启动的grub2设置
2011-04-05 18:59 2061新安装了ubuntu10.10 ... -
SUSE sles11安装配置
2010-04-04 11:03 4284安装SUSE sles11的过程记 ... -
linux基本命令学习(3)--ln和lndir
2009-09-02 23:43 4913ln和lndir 1) ln ln命令用于连接 ... -
linux基本命令学习(1)--ls
2009-09-01 00:59 1996ls的用法: ls [OPTION]... [FILE]... ... -
linux基本命令学习(2)--find
2009-09-02 00:17 3278find命令用于查找文件和 ... -
vi常用命令
2006-09-05 10:55 1515用了vi两年,因为不用vi写代码作开发,只是简单的修改配置文件 ... -
linux下安装apache + subversion
2008-01-18 11:03 1359最近准备开工一个大项目,给自己练手用,考虑需要保存源代码,又不 ... -
linux上使用netstat察看mysql端口和连接
2008-02-22 11:14 2712linux上使用netstat察看mysq ... -
netstat 用法详细资料--英文版本
2008-02-22 11:22 2124google到的一份详细的netstat资料,可惜是英 ... -
打造属于自己的ubuntu jeos(1)--安装及网络配置
2008-04-18 20:34 2040Ubuntu JeOS是推出一个针对虚拟技术应用的全新版本,简 ... -
打造属于自己的ubuntu jeos(2)--安装基本软件及java开发环境
2008-04-19 14:26 1730一. 设置apt源 1) 备份默认的apt源,其实应该没 ... -
ubuntu8.10下安装jdk
2009-05-08 00:38 1417不想用apt直接装,跑去s ... -
suse11安装后无法登录的问题
2009-05-12 10:37 2743单位一台服务器装了SUSE 企业版 10,用PUTTY登录不上 ... -
ubuntu 8.10下手动安装vmvare tools
2009-05-28 09:02 1269一直用vmvare跑linux作为开发测试平台,但是总是在 ... -
ubuntu 8.10下修改命令行提示语言为英文
2009-05-29 11:41 3190安装ubuntu 8.10时选择的语言是中文,结果发现在命令行 ... -
linux下安装apache + subversion
2008-03-19 23:59 4232最近准备开工一个 ...
相关推荐
本文将详细介绍如何在 Ubuntu 9.10 中配置智能拼音输入法,包括必要的安装步骤以及可能遇到的问题和解决方案。 #### 二、准备工作 确保您的系统已经更新至最新版本,并且拥有管理员权限。打开终端(快捷键:`Ctrl+...
### Ubuntu 9.10 (Karmic Koala) 软件源配置详解 #### 一、前言 Ubuntu 9.10,代号为 Karmic Koala,是 Ubuntu 发行版的一个版本,发布于2009年10月。此版本在系统稳定性、性能以及用户体验上都有显著提升,特别...
在安装过程中,你需要选择“典型安装”或者“自定义安装”,根据个人需求配置虚拟机的硬件参数,如内存大小、CPU核心数量、磁盘空间等。 接着,创建虚拟硬盘,推荐使用动态分配的方式,这样可以节省硬盘空间。然后...
标题“移动硬盘安装Ubuntu 9.10”指的是在便携式存储设备——移动硬盘上安装Linux操作系统的一个特定版本,即Ubuntu 9.10。Ubuntu 9.10(Karmic Koala)是2009年发布的Ubuntu发行版,它提供了最新的软件和系统改进,...
### 整理后的ubuntu9.10下oracle10.2g安装 #### 知识点一:Ubuntu 9.10 系统环境准备 - **安装 gcc**:为了确保 Oracle 10g 能够顺利安装,在 ...如果在安装过程中遇到任何问题,可以通过提供的联系方式寻求帮助。
### Linux操作系统Ubuntu 9.10 图解安装教程知识点概览 #### 1. Ubuntu简介 - **定义**: Ubuntu是一个基于Debian发行版的Linux操作系统,以其易用性和广泛的社区支持而闻名。 - **特点**: 提供了丰富的预装软件,如...
文档提到了使用Ubuntu 9.10的ISO镜像进行安装,并且在安装过程中需要修改`/boot/grub/menu.lst`文件来正确识别Windows 7。对于Ubuntu 9.10,其使用的Grub版本为Grub 2,不同于Ubuntu 9.04的Grub版本,因此需要对`/...
ubuntu9.10的用户指南汉化包,deb格式.
(2)Ubuntu9.10,注意在安装步骤第7步的时候,点击高级按钮,选择安装启动器引导设备的位置为你手动分区的那个光盘。 (3)登录win7(此时系统直接进入win7的),将此文件解压后直接放在C盘即可。 (4)重启后即有...
XP下从硬盘安装Ubuntu 9.10并设置启动项顺序
在安装Windows 7之后,可能会遇到原有的Ubuntu 9.10操作系统无法正常启动的问题。这是因为Windows 7在安装过程中会修改MBR(主引导记录),覆盖掉原先Ubuntu的引导信息。为了解决这个问题,我们需要手动恢复Ubuntu的...
这说明了在安装过程中需要对这些文件进行特定的配置和放置。 ##### 6. 使用虚拟机进行安装的提示 - 教程中提到:“我不是在虚拟机下安装的,但在虚拟机下安装也应该差不多。”这表明,尽管作者是在物理机上完成的...
ubuntu910界面汉化安装包,deb格式。由于包的相互依赖,需用如下命令安装: #dpkg -i language-pack-gnome-zh-hans_1%3a9.10+20091022_all.deb language-pack-gnome-zh-hans-base_1%3a9.10+20091022_all.deb #dpkg -...
在安装过程中,Ubuntu的安装程序通常会自动检测并添加Windows的引导项到GRUB2配置中。然而,使用"Ubuntu9.10 RC引导文件"可能是因为在某些情况下,自动配置未能成功或者需要手动调整引导选项。 要安装双系统,您...
【Ubuntu9.10 安装Oracle10G】是一个关于在Ubuntu 9.10操作系统上安装Oracle数据库10g的实践教程。这个过程包括了多个步骤,确保系统满足安装Oracle所需的基本要求,并对系统进行必要的配置。 首先,安装过程中涉及...
- **设置引导项**:Wubi 安装器会在安装过程中自动设置 Windows 引导项,使得可以在启动时选择进入 Ubuntu 或返回 Windows。 #### 四、其他注意事项 - **备份数据**:在安装前务必做好数据备份工作,以防万一。 - ...