普通用户无法执行java,CentOS tomcat普通用户执行配置安装

CentOS tomcat经过长时间的发展,这里我发表一下个人理解,下面就这就来讲术CentOS tomcat。CentOS tomcat6_jdk1.6_安装配置_开启自动运行,普通用户执行 (转)秀脱linux笔记之CentOS tomcat6实战篇由于前段时间一直在外头出差,没有完成CentOS tomcat以普通用户执行,开机自动运行的文章现在整理好后,包括调试脚本时候出现的错误解决方法

环境:操作系统:centos 4.5_x86数据库oracle 10.2.01_x86_32jvre:1.6:jdk-6u1-linux-i586-rpm.bintomcat6.0:编译好的二进制软件包apache-tomcat-6.0.13.tar.gz

CentOS tomcat6.0 安装路径:/usr/local/tomcat6oracle jdbc:class12.jar软件包存放的路径:/home/xiutuo/software/java安装路径:/usr/java/jdk1.6.0_01使用普通用户:xiutuo来启动CentOS tomcat6tomcat6开机自动启动脚本:/etc/init.d/tomcat

一:安装jre

1.安装jre软件包,

# cd /home/xiutuo/software进入软件包存放目录# chmod a+x jdk-6u1-linux-i586-rpm.bin使它有执行权限# ./jdk-6u1-linux-i586-rpm.bin多敲几个空格,然后看到[yes]的时候输入yes,回车然后在当前目录下就生成了jdk-6u1-linux-i586-rpm# rpm -ivh jdk-6u1-linux-i586-rpm安装jdk如果之前有其他老版本的jdk,卸载掉,如:rpm -e j2sdk-1.4.1-fcs

2.:设置环境变量

仅设置某个用户而不是所有用户可以修改~/.cshrc,~/.bash_profile文件,追加下面一段,如果为所有用户以及以后添加的用户都加上环境变量的话,

追加/etc/profie文件.     ***主意不要在profile和~/.cshrc或~/.bash_profile中重复追加**这里:# vi /etc/profile     //java     //如果你安装的j2sdk的路径不一样,请自行修改JAVA_HOME=/usr/java/jdk1.6.0_01

export JAVA_HOME

CLASSPATH=/usr/java/jdk1.6.0_01/lib:/usr/java/jdk1.6.0_01/jre/lib

export CLASSPATH

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export PATH

JRE=/usr/java/jdk1.6.0_01/jre

export JRE

3:立即生效//如果你修改的是/etc/profile

# source /etc/profile

//如果你修改的是~/.cshrc

# source ~/.cshrc

//如果你修改的是~/.bash_profile

# source ~/.bash_profile

4:测试成功否# java -version

出现

java version "1.4.2" //这里比较怪,本来是jre是1.6这里居然……

gcj (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8)

Copyright (C) 2006 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.    There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

解决这个问题的方法,# cd /usr/java/# ls -l看看default和latest这俩个文件夹是不是jdk1.6.0_01的软连接如果是就不用修改了,否则删除default和latest,# rm -rf default# rm -ff latest然后# ln -s jdk1.6.0_01 default# ln -s jdk1.6.0_01 latest删除/usr/bin/目录中的java,javac,javaws

# cd /usr/bin

# rm -f java

# rm -f javac

# rm -f javaws

然后:# ln -s /usr/java/default/bin/java /usr/bin/java

# ln -s /usr/java/default/bin/javac /usr/bin/javac

# ln -s /usr/java/default/bin/javaws /usr/bin/javaws

***再//如果你修改的是/etc/profile

# source /etc/profile

//如果你修改的是~/.cshrc

# source ~/.cshrc

//如果你修改的是~/.bash_profile

# source ~/.bash_profile

再执行# java -version    //这回正常了

java version "1.6.0_01"

Java(TM) SE Runtime Environment (build 1.6.0_01-b06)

Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

二:安装CentOS tomcat6

1.安装tomcat# cd /home/xiutuo/software                     //进入软件包存放目录

# tar -zvxf apache-tomcat-6.0.13.tar.gz        //解压

# mv apache-tomcat-6.0.13 /usr/local/tomcat6 //安装

# cd /usr/local/tomcat6/bin/                  //进入安装目录

# tar xvfz jsvc.tar.gz                        //解压

# cd jsvc-src                                 //进入jsvc-src目录

# autoconf

# ./configure--with-java=/usr/java/jdk1.6.0_01

# configure时切记加java的jdk路径,否则无法使用普通用户开机自动启动tomcat

# make                                        //编译生成jsvc文件

# cp jsvc ..                                  //拷贝jsvc到上级目录

# cd ..                                       //回到上级目录

# cd /usr/local/tomcat6/

//运行下面的命令可以使tomcat以daemon方式运行# ./bin/jsvc -cp ./bin/bootstrap.jar "

-outfile ./logs/catalina.out "

-errfile ./logs/catalina.err "

org.apache.catalina.startup.Bootstrap

2.配置oralce的jdbc//拷贝oracle的jdbc到/usr/local/tomcat6/lib目录下# cp /home/software/class12.jar ./lib/

3.配置CentOS tomcat用户# cd /usr/local/tomcat6/conf# vi tomcat-users.xml内容如下:<?xmlversion ='1.0'encoding='utf-8'?>

请修改CentOS tomcat里所有定义用户的密码:即修改password为自己想要的值。

4.启动停止tomcat服务# cd    /usr/local/tomcat6/bin

# ./start.sh      //启动tomcat

# ./shutdown.sh //停止tomcat查看tomcat的进程:

# ps -e | grep java

出现了java这个进程的话,说明你的tomcat差不多了。

5.让CentOS tomcat开机运行:# cd /usr/local/tomcat6/bin/jsvc-src/native/

# cp Tomcat.sh /etc/init.d/tomcat

# 这里以tomcat4的自动运行脚本来做修改

# vi tomcat

修改后内容如下:

# Linux下该脚本使用方法

#

# 1.configure时切记加java的jdk路径,否则无法使用普通用户开机自动启动tomcat

# ./configure --with-java=/usr/java/jdk1.6.0_01

#

# 2.先为tomcat生成catalina.out,catalina.err日志文件,存放在

#  路径:/usr/local/tomcat6/logs,

#  方便查看脚本调试时候出现的错误信息

# cd /usr/local/tomcat6

# 先进入tomcat6的安装目录,再执行以下命令,生成日志文件!

# ./bin/jsvc -cp ./bin/bootstrap.jar "

#        -outfile ./logs/catalina.out -errfile ./logs/catalina.err "

#        org.apache.catalina.startup.Bootstrap

#

# 3.更改tomcat安装目录权限

# 切记:tomcat安装目录tomcat6文件权限应该属于运行tomcat的用户

# 这里更改整个tomcat6的文件夹及其下的文件为xiutuo用户和xiutuo组!

# chown -R xiutuo:xiutuo /usr/local/tomcat6

# 不放心的话再执行一次

# chown -R xiutuo:xiutuo /usr/local/tomcat6/*

# chmod -R 755 /usr/local/tomcat6

#

# cd /usr/local/tomcat6/bin/jsvc-src/native/

# 4.自动启动脚本编辑、赋权

# cp tomcat5.sh /etc/init.d/tomcat

# chown xiutuo:xiutuo tomcat

# chmod 711 tomcat

#

# 建立软连接

#

# ln -s /etc/init.d/tomcat /etc/rc.d/rc3.d/K01tomcat

# ln -s /etc/init.d/tomcat /etc/rc.d/rc3.d/S99tomcat

# ln -s /etc/init.d/tomcat /etc/rc.d/rc5.d/K01tomcat

# ln -s /etc/init.d/tomcat /etc/rc.d/rc5.d/S99tomcat

#

# 5.如果查看该脚本已经工作了,方法如下:

#  启动脚本:/etc/init.d/tomcat start

# a.通过web浏览器查看能不能访问tomcat的管理页面

# b.通过查看有没有jsvc进程 ps -e | grep jsvc

#   如果看到俩个jsvc进程,恭喜,你成功啦!

#

# 6.脚本无法正常工作的解决方法:

#  启动脚本:/etc/init.d/tomcat start

#  查看/usr/local/tomcat6/logs/目录下的俩个日志文件:

#  catalina.out,catalina.err, 使用cat查看。

#  a.错误

#  Cannot find daemon loader org/apache/commons/daemon/support/DaemonLoader

#  解决:更改tomcat安装目录权限为所有用户可以读,并属于xiutuo用户和xiutuo组

#  命令:chmod -R 755 /usr/locat/tomcat6

#        chown -R xiutuo:xiutuo /usr/locat/tomcat6

#  b.错误

#   Cannot open PID file /var/run/jsvc.pid

#  解决:chown xiutuo:xiutuo /var/run/jsvc.pid

#        chown 744 /var/run/jsvc.pid

JAVA_HOME=/usr/java/jdk1.6.0_01

#改成你java安装目录

CATALINA_HOME=/usr/local/tomcat6/

#改成你CentOS tomcat安装目录

DAEMON_HOME=/usr/local/tomcat6/bin/jsvc-src/

#改成jsvc程序所在目录

TOMCAT_USER=xiutuo

#改成启动CentOS tomcat使用的普通用户

JAVA_HOME=/usr/java/jdk1.6.0_01

#改成你java安装目录

CATALINA_HOME=/usr/local/tomcat6

#改成你CentOS tomcat安装目录

DAEMON_HOME=/usr/local/tomcat6/bin

#改成jsvc程序所在目录,记住该进程是开机tomcat自动启动进程

#测试该脚本时候,使用/etc/init.d/tomcat start

#如果顺利启动的话,通过ps -e可以看到俩个jsvc进程

TOMCAT_USER=xiutuo

#改成启动tomcat使用的普通用户

TMP_DIR=/var/tmp

CATALINA_OPTS=

#这个环境变量不管

CLASSPATH="

$JAVA_HOME/lib/tools.jar:"

$DAEMON_HOME/commons-daemon.jar:"

$CATALINA_HOME/bin/bootstrap.jar

# classpath这个很重要,一定要确保这三个

# tools.jar、commons-daemon.jar、bootstrap.jar

# 的正确路径。

case "$1" in

start)

#

# Start Tomcat

#

$DAEMON_HOME/jsvc "

-user $TOMCAT_USER "

-home $JAVA_HOME "

-Dcatalina.home=$CATALINA_HOME "

-Djava.io.tmpdir=$TMP_DIR "

-outfile $CATALINA_HOME/logs/catalina.out "

-errfile '&1' "

$CATALINA_OPTS "

-cp $CLASSPATH "

org.apache.catalina.startup.Bootstrap

#

# To get a verbose JVM

#-verbose "

# To get a debug of jsvc.

#-debug "

;;

stop)

#

# Stop Tomcat

#

PID=`cat /var/run/jsvc.pid`

kill $PID

;;

*)

echo "Usage tomcat.sh start/stop"

exit 1;;

esac

【编辑推荐】

【责任编辑:鹏程 TEL:(010)68476606】

点赞 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elementui树形复选框,element-ui checkbox 组件的树形联动

前言示例版本为 Element-ui 2.13.0 Vue 2.6.11最近想弄 Element-ui checkbox 的多级联动&#xff0c;网上相关的例子大多数为二级联动&#xff0c;自己研究了一下&#xff0c;弄了一个树形菜单的多级联动&#xff0c;常用于角色管理等业务。(仅供参考&#xff0c;未考虑性能问…

php 魔术方法 sleep,php 魔术方法 sleep() wakeup()

__sleep() 和 __wakeup()public array __sleep ( void )void __wakeup ( void )serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。如果存在&#xff0c;该方法会先被调用&#xff0c;然后才执行序列化操作。此功能可以用于清理对象&#xff0c;并返回一个包含对象中…

java 先入先出,java_阻塞队列(FIFO先进先出)

java_阻塞队列(FIFO先进先出)ArrayBlockingQueue&#xff1a;由数组结构组成的有界阻塞队列&#xff1b;LinkedBlockingQueue&#xff1a;由链表结构组成的有界阻塞队列(但大小默认值为&#xff1a;Integer.MAX_VALUE)&#xff1b;PriorityBlockingQueue&#xff1a;支持优先级…

PHP能在Mac上运行吗,PHP Composer无法在Mac上运行

我安装了bitnami mac堆栈主要是因为我的项目需要至少PHP 5.4.7版本.但是,我遇到了作曲家的问题.这是我跑步时遇到的错误&#xff1a;php composer.phar install --dev错误&#xff1a;Richard-Knops-MacBook-Pro:my-project richardknop$php composer.phar install --devdyld: …

主机安装php网站,php支持虚拟主机(php网站空间)

php设置虚拟主机&#xff0c;主要是为了在ie输入地址栏是&#xff0c;可以输入任意的&#xff0c;而不是localhost/&#xff0c;为了方便&#xff0c;但是设置起来很不方便的。。发现不能实现每个站点使用不同的PHP版本&#xff0c;想向大家求教一下&#xff0c;有没有能让。支…

php时分获取秒数,javascript与php时/分/秒与秒数互转

javascript&#xff1a;/*时间转换成秒*/function time_to_second(time){var arr time.split(‘:‘)var hour arr[0]?arr[0]:0var minute arr[1]?arr[1]:0var second arr[2]?arr[2]:0var ret hour * 3600 minute * 60 secondreturn ret}/*秒转换成时间*/function sec…

lbp matlab程序,求教大神给解释一下LBP特征提取每部分程序是干什么的

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼function X1 LBP(Resimage)% Returns a rotation invariant LBP (uniform patterns) histogram (10 bins)% of picture X.% the size of picture X must be at least 3x3 pixelsw1 (1/sqrt(2))^2;%根号1/2平方w2 (1-1/sqrt(2))*…

python以20字符宽居中输出,Python 字符串内置方法(一)

以下方法只需要知道用法就行了&#xff0c;权当了解&#xff0c;不用硬背&#xff0c;以后需要用到的时候再回来看说明&#xff1a;一般方法中前面是is开头的就是判断来的&#xff0c;输出不是True就是False&#xff0c;例如isalpha()方法capitalize()方法&#xff1a;首字母大…

php 复选框全选和取消,基于JavaScript实现复选框的全选和取消全选

这篇文章主要为大家详细介绍了基于JavaScript实现复选框的全选和取消全选&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下本文实例为大家分享了js复选框的全选和取消全选的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下效果图&#xff1a;…

oracle 字段全大写,Oracle如何批量将表中字段名全转换为大写(利用简单存储过程)...

前言今天查询一个数据字段一直提示字符无效&#xff0c;明明在数据库表字段中是存在的&#xff1b;查询后得知&#xff0c;数据库表字段为小写时&#xff0c;查询需要将字段名小写并加上双引号&#xff1b;表名同理&#xff0c;我这里表名是大写&#xff0c;暂时不需要改。搜到…

oracle的al32utf8,oracle字符集修改(AL32UTF8-UTF8)

author&#xff1a;skatetime&#xff1a;2012/04/10AL32UTF8->UTF8步骤shutdown immediate;startup mount;alter session set sql_tracetrue;alter system enable restricted session;alter system set job_queue_processes0;alter system set aq_tm_processes0;alter data…

javascript date php date,JavaScript Date 知识浅析

Date函数new Date()Date 对象会自动把当前日期和时间保存为其初始值。date.getDate()从 Date 对象返回一个月中的某一天 (1 ~ 31)。date.getDay()从 Date 对象返回一周中的某一天 (0 ~ 6)。周日是0。date.getMonth()从 Date 对象返回月份 (0 ~ 11)。date.getFullYear()从 Date …

16字节 oracle md5,Oracle中的MD5加密

因为要用到MD5加密&#xff0c;所以在网上搜了一下相关资料&#xff0c;并进行仔细研究。其核心就是MD5编码的数据包函数&#xff1a;DBMS_OBFUSCATION_TOOLKIT.M因为要用到MD5加密&#xff0c;所以在网上搜了一下相关资料&#xff0c;并进行仔细研究。其核心就是MD5编码的数据…

ip字符串转换 linux,Linux网络编程入门

在日常使用&#xff0c;我们更多的使用十进制字符串表示IP地址&#xff0c;比如192.169.130.66&#xff0c;而不是记忆32位的IP地址(关键是太长了记不住呀)&#xff0c;使用字符串IP更为方便&#xff0c;可读性也更好。但是根据上述in_addr定义&#xff0c;网络编程中需要的是网…

linux php目录是否存在,PHP判断文件或者目录是否可写,兼容windows/linux系统

在PHP中&#xff0c;可用is_writable()函数来判断一个 文件/目录 是否可写&#xff0c;用是否可生成文件的方式判断目录是否可写&#xff1b;网上的一些代码大多数能判断linux系统&#xff0c;但windows服务器下判断不准确。下面的代码兼容windows和linux判断文件或目录是否可写…

linux 脚本 发送邮件,shell 脚本发送邮件

有时候会使用脚本完成一系列的自动化工作&#xff0c;工作完成后还需要邮件通知相关人员&#xff0c;此时可以使用第三方的工具&#xff1a;SendEmail,最新版本sendEmail-v1.56.tar.gz下载地址&#xff1a;http://caspian.dotconf.net/menu/Software/SendEmail/sendEmil的使用范…

link linux 跨设备,Linux中的两种link方式

Linux系统中包括两种链接方式&#xff1a;硬链接(hard link)和符号链接(symbolic link)&#xff0c;其中符合链接就是所谓的软链接(soft link)&#xff0c;那么两者之间到底有什么区别呢&#xff1f;inode在Linux系统中&#xff0c;内核为每一个新创建的文件分配一个inode&…

linux 运行ca.crt,linux下使用openssl生成 csr crt CA证书,opensslcsr

linux下使用openssl生成 csr crt CA证书&#xff0c;opensslcsr本文主要借鉴和引用了下面2个地址的内容&#xff0c;然后在自己的机器上进行了测试和执行&#xff0c;并做了如下记录。ref:http://blog.chinaunix.net/uid-26760055-id-3128132.htmlhttp://www.111cn.net/sys/lin…

linux cpu核数和线程数,cpu个数、核数和线程的理解

1.查看物理cpu个数grep physical id /proc/cpuinfo | sort -u | wc -l2.查看核心数量grep core id /proc/cpuinfo | sort -u | wc -l3.查看线程数grep processor /proc/cpuinfo | sort -u | wc -lcat /proc/cpuinfo 查看文件里面关键信息processor : 23 ----------代表…

linux设置超链接,帮助-链接 - Linux Kernel Newbies

this page is outdated and needs to be fixed参考链接形式语法备注内部链接WikiNameCamelCase page name内部自由链接["Page"] or ["free link"]可配置函数内部子页面链接/SubPage or ["/Sub page"]相对于上一级页面外部链接http://example.net…