美文网首页
Linux服务器部署

Linux服务器部署

作者: 西元前__YP | 来源:发表于2017-12-08 18:29 被阅读0次
    这学期将要进行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启动速度都会很慢,将近十分钟吧,所以如果你重启之后发现在浏览器中输入地址后卡住不动,就耐心等待一下吧

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

    相关文章

      网友评论

          本文标题:Linux服务器部署

          本文链接:https://www.haomeiwen.com/subject/vucyixtx.html