Linux服务器部署

2017-12-08  本文已影响0人  西元前__YP
这学期将要进行J2EE的学习,在正式上课之前想先在自己的VPS上部署环境,也顺便熟悉一下Linux系统,毕竟这学期还有《Linux程序设计》这门课


我的Linux系统选择的是CentOS 7 ,打算在上面部署JAVA开发环境、Mysql以及tomcat。

JAVA部署

首先用ssh远程登录服务器,由于我的服务器什么都没有装,首先更新一下包

yum  update

更新完成之后,在centOS上面下载东西还需要wget 一开始系统也是没有的需要自己下载

yum -y install wget

准备工作做完,前往oracle的官网找到需要下载的JDK,在这里作为开发来讲,直接下载JDK即可,新的版本JAVA 9已经发布,在配置上跟之前也有一些小小的变化,下面会说明,我对应的版本是Linux系统的jdk-9.0.1_linux-x64_bin.rpm,后缀是rpm和tar.gz都可以,只是安装方式不同,选择同意许可后,复制下载链接,然后用wget进行下载,这里wget的使用是有格式要求的,否则会下载到错误的文件。

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.rpm"

下载之后,我们将这个rpm包复制到自己创建的/usr/java/这个文件夹中

创建文件夹

mkdir /usr/java/

复制rpm包

cp  rpm包名  /usr/java/

进入/usr/java/文件夹

cd /usr/java/

为rpm添加可执行权限

chmod +x rpm包名

使用rpm进行安装

rpm -ivh rpm包名

执行这行命令后应该会看到进度条,到达100%后代表安装成功啦这时可以用

java -version

来查看是否安装成功

安装成功之后,还要部署环境变量,通过编辑/etc/profile文件

vim /etc/profile

在文件的末尾添加

export JAVA_HOME=/usr/java/jdk-9
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib

这里PATH是java命令运行时要寻找的路径
CLASSPATH是java文件编译时需要的类文件所存放的相关路径,这里java 9跟之前的java 版本有一些不同
jdk文件夹中没有jre
jdk文件夹中的lib文件夹中也没有dt.jartools.jar这两个包
所以在写CLASSPATH时,我直接写lib文件夹了,这里只是我个人猜测,这里也记录一下如果后期出现了bug 方便排除

配置 Mysql

一开始看在网上搜索“centOS如何安装Mysql” 发现很多教程里的方法已经不适用,centOS7的 yum list中已经没有mysql了,好像是因为mysql被oracle(甲骨文)收购之后,有闭源的趋势,所以centOS使用mysql的一个活跃分支---mariaDB (my和maria分别是数据库作者的两个女儿hhhh)
据说mariaDB几乎和mysql没什么区别
我是一开始安装了mysql之后才发现安装不了mysql-server。然后就装了mariaDB-server和
mariaDB-devel

先安装mysql

yum -y install mysql

安装mariaDB-server和mariaDB-devel

yum install -y  mariadb-server mariadb-devel

自动安装完成之后 使用命令

mysql -u root -p

就会进入数据库,不过是mariaDB

MariaDB [(none)]> 

但其实使用的命令和mysql还是一样呢
查看数据库

MariaDB [(none)]>  show database;

mysql提供了一套安全的初始化操作,使用mysql_secure_installation命令。
退出mariaDB后,在命令行输入

mysql_secure_installation

之后就是一系列配置,包括设置密码等,建议在每一个选项的时候停下来读一下,都是比较简单的英文,自己根据需要配置吧

配置tomcat

首先到tomcat官网寻找下载链接(core 版),这里选择的是tomcat最新版 9.0.2
这回可以直接用wget

wget  下载链接

tomcat的压缩包是tar.gz格式,进行解压

tar -zxvf 压缩包名称

解压成功后,将其移动到/usr/local 文件夹

mv apache-tomcat-9.0.2 /usr/local/

进入tomcat的bin文件夹

cd /usr/local/apache-tomcat-9.0.2/bin

编辑bin文件夹内的setenv.sh文件

vim setenv.sh

进入插入模式之后,将下列代码粘贴进去

#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

为 setenv.sh文件赋予可执行权限

chmod +x setenv.sh

进行到这一步,tomcat还没有配置环境变量,接下来配置环境变量
首先拷贝catalina.sh

cp -p /usr/local/apache-tomcat-9.0.2/bin/catalina.sh /etc/init.d/tomcat

然后编辑 /etc/init.d/tomcat

vim /etc/init.d/tomcat

在文件中复制下列代码

JAVA_HOME=/usr/java/jdk-9.0.1
CATALINA_HOME=/usr/local/apache-tomcat-9.0.2


chmod 755 /etc/init.d/tomcat
chkconfig --add tomcat
chkconfig tomcat on

注意这里的JAVA_HOMECATALINA_HOME要根据自己的实际情况填写
但是后来我发现还不行,启动有可能会报错“Service tomcat does not support chkconfig"
谷歌后找到答案,将开头改为

#!/bin/bash
#
# Tomcat 8 start/stop/status init.d script
# chkconfig: 234 20 80
# description: starts/stops/restarts Tomcat application container

...

至此,环境变量配置结束

接下来配置service,先退出到usr文件夹
进入/usr/lib/systemd/system

进入后执行命令

vim tomcat.service

然后将下列代码粘贴(注意涉及到tomcat版本名称的地方要替换成自己实际的)

[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/apache-tomcat-9.0.2/tomcat.pid
ExecStart=/usr/local/apache-tomcat-9.0.2/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

之后执行以下命令可以选择开机启动等

//配置开机启动 
systemctl enable tomcat
//启动tomcat
systemctl start tomcat
//停止tomcat
systemctl stop tomcat
//重启tomcat
systemctl restart tomcat

配置完成,建议重启服务器,即输入命令 reboot(或者sudo reboot)即可在浏览器里输入你的服务器地址+8080端口(例如:192.168.1.161:8080),如果看到小猫咪表示成功,否则请检查以上所有步骤是否全都执行正确了。

由于我是在digitalOcean上布置的,重启之后忘记开ss了,一度登不上外网还以为是自己配置错了or2....

如果要查看tomcat的启动信息,可以通过

ps -ef|grep tomcat

但是前面刚刚弄的那些有关service的配置。。我自己的服务器上只有开机自动启动可以成功,不知道为什么。。。
我猜测可能是权限的原因?后来索性我就都在bin目录中通过startup.sh和shutdown.sh来开关tomcat,不过记得要sudo

在小猫咪界面,你可能会发现点击manager之后报了403 的错误,解决方法如下
配置gui-manager项目部署方式,切换至Tomcat conf目录,输入vi tomcat-users.xml打开文件,按“i”进入编辑模式,拷贝以下代码放置</tomcat-users>标签之间(注意将password和username换成你自己的)

<role rolename="manager"/>     
 <role rolename="admin"/> 
 <role rolename="admin-gui"/>
 <role rolename="manager-gui"/>
 <user username="your name" password="your password" roles="admin-gui,manager-gui"/>

然后进入apache-tomcat/webapps/manager/MEMETA-INF
输入

vim context.xml

将</Context> 标签下的<Valve> 标签注释掉,这段代码的作用是限制来访IP的,127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1,是正则表达式,表示IPv4和IPv6的本机环回地址,所以这也解释了,为什么我们本机可以访问管理界面,但是其他机器确是403。注释掉即可

<Context antiResourceLocking="false" privileged="true" >
<!--注释掉此标签
 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
...
</Context>

还有一点需要注意,每次tomcat启动速度都会很慢,将近十分钟吧,所以如果你重启之后发现在浏览器中输入地址后卡住不动,就耐心等待一下吧

关于我自己的这个问题,以后有时间,还要慢慢研究一下

上一篇下一篇

猜你喜欢

热点阅读