mac安装配置Tomcat笔记
最近进行JavaEE开发,服务器选择了免费并且开源的Tomcat,本文是基于安装过程中所有操作所做的笔记。
下载Tomcat
Tomcat由apache基金会托管,官网地址是http://tomcat.apache.org/ ,在左边栏的Download下选择对应的版本(比如Tomcat 9),然后在Binary Distributions->core,选择zip或者tar.gz中的任意一个下载即可,下载完成后解压,我解压得到的根目录名是apache-tomcat-9.0.0.M10。
在/Library下新建文件夹,名为Tomcat,将刚刚解压的文件拷贝到Tomcat下,执行以下命令:
$ cd /Library/Tomcat/apache-tomcat-9.0.0.M10/bin
然后执行
$ ./start.sh
但是终端输出以下信息:
$ -bash: ./startup.sh: Permission denied
这是因为Tomcat的脚本命令执行需要权限,所以要先给Tomcat权限。
Tomcat权限
我们知道,linux下文件的权限为:可读4,可写2,可执行1。现在给脚本分配权限:
`$ sudo chmod 755 /Library/Tomcat/apache-tomcat-9.0.0.M10/bin/*.sh
`
使用*匹配bin目录下的所有脚本文件。
再重新执行
$ cd /Library/Tomcat/apache-tomcat-9.0.0.M10/bin
$ ./start.sh
可以看到终端输出
Using CATALINA_BASE: /Library/Tomcat/apache-tomcat-9.0.0.M10
Using CATALINA_HOME: /Library/Tomcat/apache-tomcat-9.0.0.M10
Using CATALINA_TMPDIR: /Library/Tomcat/apache-tomcat-9.0.0.M10/temp
Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home
Using CLASSPATH: /Library/Tomcat/apache-tomcat-9.0.0.M10/bin/bootstrap.jar:/Library/Tomcat/apache-tomcat-9.0.0.M10/bin/tomcat-juli.jar
Tomcat started.
Tomcat启动成功,在浏览器中输入127.0.0.1:8080,应该可以看到可爱的Tom猫。
配置启动脚本
如果每次都到Tomcat的bin下执行脚本未免过于繁琐,为了更方便启动或关闭Tomcat,在终端包含的路径/usr/bin下新建一个名为tomcat的脚本:
$ sudo touch tomcat
但是会遇到
touch: tomcat: Operation not permitted
即使是超级用户权限也不可以。搜索网络资料,在V2EX和iOS逆向论坛都有相关谈论。从OSX10.11以后,苹果启用了一种称作rootless的机制,限制root用户的权限,即使是root用户也不可以向/usr/bin写入内容。 根据Stackoverflow上的这个回答,可以使用以下代码关闭rootless保护机制:
sudo nvram boot-args="rootless=0"; sudo reboot
但是这种做法不推荐,可能有安全隐患。
考虑到/usr/local不需要sudo权限,可以尝试换另一个终端包含的路径/usr/local/bin,:
$ cd /usr/local/bin
执行以下命令新建tomcat脚本文件:
$ touch tomcat
接着编辑tomcat的内容:
$ vim tomcat
输入以下内容:
#!/bin/bash
TOMCAT_PATH='/Library/Tomcat/apache-tomcat-9.0.0.M10/bin'
case $1 in
start)
sh $TOMCAT_PATH/startup.sh
;;
stop)
sh $TOMCAT_PATH/shutdown.sh
;;
restart)
sh $TOMCAT_PATH/shutdown.sh
sh $TOMCAT_PATH/startup.sh
;;
*)
echo “Usage: start|stop|restart”
;;
esac
exit 0
给予tomcat脚本文件权限:
$ chmod 777 tomcat
以后就可以使用以下命令快速启动或者关闭tomcat:
tomcat start //启动
tomcat stop //关闭
tomcat restart //重启
2016.11.15补充
/usr/local文件夹在macOS Sierra上也需要特殊权限才能操作,会导致Homebrew使用也出现问题,可以执行以下指令修正:
sudo chown -R $(whoami) /usr/local
今天把tomcat从/Library迁移到$HOME/Workspaces,修改启动脚本内容为:
#!/bin/bash
TOMCAT_PATH=$HOME/Workspaces/Tomcat/apache-tomcat-9.0.0.M10/bin'
case $1 in
start)
sh $TOMCAT_PATH/startup.sh
;;
stop)
sh $TOMCAT_PATH/shutdown.sh
;;
restart)
sh $TOMCAT_PATH/shutdown.sh
sh $TOMCAT_PATH/startup.sh
;;
*)
echo “Usage: start|stop|restart”
;;
esac
exit 0
修改过的启动脚本和以前的对比,TOMCAT_PATH定义的地方去掉了单引号,因为单引号会导致$HOME的内容无法展开,仅仅只是符号的字面量$HOME,实际展开应该是/Users/chenxin。
初始参考
- MAC下安装及配置TOMCAT
- Mac 下安装配置Tomcat
- mac下tomcat的安装与配置
- root 账户在 OSX10.11 下竟然不能修改/usr/bin 目录
- 当10.11的/usr/bin目录不可写之后,class-dump应该何处安家?