阿里云CentOS实践

在阿里云CentOS 7服务器上配置并部署JavaSSM框架项目

环境配置

  • Docker

    • 安装

      1
      # yum -y install docker
    • 启动和关闭

      1
      2
      # sudo service docker start
      # sudo service docker stop
    • 镜像加速

      • 增加网易蜂巢的镜像
        1
        2
        3
        4
        5
        6
        7
        # cd /etc/docker
        # vim daemon.json

        增加成
        {
        "registry-mirrors": ["http://hub-mirror.c.163.com"]
        }
  • JDK

    • 下载JDK

      • cd到”/usr/local/tools/“ – Jdk路径为/usr/local/tools/jdk1.8
      • 会出现直接wget拉下来的不是jdk文件而是简单的页面
      • 怀疑是因为要在下载页面勾选同意Oracle有关规则才能下载
      • 解决办法
        • 本地下载然后同步到服务器
        • 获取可用的下载链接然后在服务器上wget
          1
          2
          以下是可行链接,很明显带上了参数
          # wget http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1523515932_e42f8ed4698c8cfb731bc04c03581fbc
    • 给所有用户配置Java环境

      • 用root用户登录

        1
        2
        3
        4
        5
        6
        7
        # vim /etc/profile

        按下insert,然后移动到最后一行,添加如下
        #configuration java development enviroument
        export JAVA_HOME=/usr/local/tools/jdk1.8
        export PATH=$JAVA_HOME/bin:$PATH
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      • 给当前用户配置Java环境

        1
        2
        3
        4
        5
        6
        7
        # vim ~/.bash_profile

        按下insert,然后移动到最后一行,添加如下
        #configuration java development enviroument
        export JAVA_HOME=/usr/local/tools/jdk1.8
        export PATH=$JAVA_HOME/bin:$PATH
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    • 退出重新登录,查看Java版本信息确定安装效果

      1
      # java -version
  • 配置Tomcat

    • 前往Tomcat的官网获取下载链接
    • wget拉下来,然后解压
    • 遇到的天坑 – 阿里云安全组设置
      • 需要在阿里云控制台设置安全端口(入\出)
        • 加入”8080/8080”端口
        • 授权对象改为”0.0.0.0/0”
  • 防火墙修改,增加端口

    • 解决CentOS(6和7版本),/etc/sysconfig/下没有iptables的问题

      • CentOS 7
      1. 停止firewalld
      2. 安装iptables-services
      3. 在引导时启用iptables服务
      4. 启动iptables服务
      5. 保存防火墙规则
      6. 其他管理
        1
        systemctl [stop|start|restart] iptables
    • 修改iptables防火墙文件,增加端口

      • cd到系统配置

        1
        # cd /etc/sysconfig/
      • 编辑iptables

        1
        2
        3
        # vim iptables

        增加8080端口(复制22端口整行,修改端口号为8080即可)
      • 重启iptables

    • curl命令测试端口是否开放
      1
      # curl 127.0.0.1:8080
  • 数据库

    • 望周知
      • CentOS 7开始使用MySQL的分支MariaDB
      • 基本上可以认为一样
    • 安装和配置
    • 服务器执行sql文件
      • 确定文件位置,如”/root/xxshop.mysql”
      • 进入数据库,创建database,设定格式
        1
        2
        3
        4
        5
        # mysql -uroot -pmysql123
        >create database xxshop;
        >use xxshop;
        >set names utf8;
        >source /root/xxshop.sql

实战

xxshop项目在云服务器上跑起来

  • 按以上配置好环境
  • 本地上传文件到服务器

    • 使用SSH服务的scp命令

      1
      2
      3
      4
      # scp a.txt root@127.0.0.1:/home/neo/test/b.txt
      将当前目录下的a.txt文件上传到ssh服务器上test文件夹并改名为b.txt,其中SSH服务器网址为127.0.0.1,用户名root
      # scp -r xxshop.war root@119.23.10.167:
      上传到当前用户目录,如该IP中用户为root,"# cd /root/"即到上传目录
    • 上传数据库sql文件,然后执行

    • 上传war包到Tomcat的webapps路径下
  • Tomcat修改配置文件

    • 修改服务器配置文件
      1
      2
      3
      <!-- Host标签内加上 -->
      <Host><Context path="/" docBase="xxshop" unpackWARs="true" debug="0" privileged="true" reloadable="true" /></Host>
      <!--这里使用的是相对路径,docBase的值是我们放到webapps文件夹下的war名称-->
  • 然后根据云服务器IP在本地浏览器访问

一些小问题

  • CentOS下SSH登录local警告

    • 设置了”默认地区_语言.字符集”为 “en_US.UTF-8”,但是在系统中没有定义这个问题
      1
      -bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
  • 输入以下命令,然后重启

    1
    2
    3
    4
    5
    6
    7
    8
    # tee /etc/environment <<- 'EOF'
    LANG=en_US.utf-8
    LC_ALL=
    EOF

    # source /etc/environment
    /* 生成 en_US.UTF-8 locale文件 CentOS没有locale-gen命令*/
    # localedef -v -c -i en_US -f UTF-8 en_US.UTF-8