美文网首页
阿里云ECS CentOS 7 环境搭建 JDK 8 + MyS

阿里云ECS CentOS 7 环境搭建 JDK 8 + MyS

作者: A07de21s | 来源:发表于2018-12-29 11:19 被阅读0次

    阿里云 ECS 服务器在申请以后, 已经有了 SSH 环境 因此不必在自己动手搭建, 以下将基于阿里云 ECS 服务器的 CentOS 7系统进行一个 Java Web 的服务器环境搭建

    1. JDK

    1. 官网上选择自己适用的 JDK 版本进行下载
    2. ssh 连接到 server
    # ssh 连接 Server
    ssh root@host
    
    1. 创建临时目录, 上传 JDK 包 然后解压
    # 创建临时目录 server 端操作
    mkdir /home/temp
    cd /home/temp
    
    # 上传 JDK 包, 本地操作
    scp jdk-xxx.tar.gz /home/temp
    
    # 解压 JDK 包 Server 端操作
    tar -zxvf jdk-xxx.tar.gz
    
    1. 创建工作目录, 并将解压后的 JDK 移动到工作目录中
    # 也可以使用其他路径
    mkdir /usr/local/java
    
    # 移动 JDK
    mv /home/temp/jdkxxx.xxx/ /usr/local/java
    
    1. 配置 JDK 环境变量
    # 使用 vim 修改环境变量
    vim /etc/profile
    
    #在环境变量添加以下代码
    export JAVA_HOME=/usr/local/java #按照自己实际的路径去配置 JAVA_HOME
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
    export PATH=$PATH:${JAVA_PATH}
    
    # 修改保存好profile以后, 使配置生效
    source /etc/profile
    
    1. 检查是否安装配置成功
    javac # 不会出现 command not found
    java -version # java 版本
    echo $PATH # 打印环境变量路径
    

    2. MySQL

    1. 安装

    对于 MySQL 的安装有多种方式, 基本上常用的是 yum 和 wget, 一般来说推荐使用 yum, 因为坑最少

    yum install mysql
    yum install mysql-server
    yum install mysql-devel
    

    一般来说安装 mysql 和 mysql-devel 都能成功,但有时候安装 mysql-server 会失败

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.sina.cn
     * extras: mirrors.sina.cn
     * updates: mirrors.sina.cn
    No package mysql-server available.
    Error: Nothing to do
    

    其原因是因为 CentOS 7 版本将 MySQL 数据库软件从默认的程序列表中移除 用mariadb 代替了, 我们可以安装 mariadb 来解决这个问题, 但我更倾向于下面的方式

    # 官网下载 mysql-server
    wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum install mysql-community-server
    
    # 安装成功以后 没有初始密码 可以用 root 账户直接登录
    mysql -u root 
    
    # 设置密码
    set password for 'root'@'localhost' =password('password');
    
    1. 配置
    # 默认配置文件路径: 
    # 配置文件:/etc/my.cnf 
    # 日志文件:/var/log/var/log/mysqld.log 
    # 服务启动脚本:/usr/lib/systemd/system/mysqld.service 
    # socket文件:/var/run/mysqld/mysqld.pid
    
    # 打开配置文件
    vi /etc/my.cnf
    
    # 配置文件中 设置编码方式
    default-character-set =utf8
    
    # 配置远程连接
    # 把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户
    mysql> grant all privileges on *.* to root@'%'identified by 'password';
    
    # 如果是新用户而不是root,则要先新建用户
    mysql>create user 'username'@'%' identified by 'password'; 
    

    3. Nginx

    1. 安装
    # 如果系统没有带 make, 先安装 make
    yum -y install gcc automake autoconf libtool make
    
    # 安装g++
    yum install gcc gcc-c++
    
    # 安装pcre和pcre-devel
    yum install -y pcre pcre-devel
    
    # 安装zlib nginx 需要 zlib 对 http 进行 gzip
    yum install -y zlib zlib-devel
     
    # 安装 openssl 支撑 nginx 支持 https
    yum install -y openssl openssl-devel
    
    # 下载 nginx 并 scp 上传到 之前安装 jdk 时候的临时目录里并解压
    scp nginx-1.14.2.tar.gz /home/temp
    tar -zxvf nginx-1.14.2.tar.gz
    
    # 创建工作目录, 并将解压以后的包移动到工作目录中
    mkdir /usr/local/nginx
    mv /home/temp/nginx -1.14.2/ /usr/local/nginx
    
    # 编译
    ./configure 
    # 安装
    make && make install
    
    1. 配置
    # 创建开机启动命令脚本
    vi /etc/init.d/nginx
    
    # 在脚本文件中 加入下列代码
    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
        
    # Source function library.
    . /etc/rc.d/init.d/functions
        
    # Source networking configuration.
    . /etc/sysconfig/network
    
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    
    nginx="/usr/sbin/nginx" # 对应编译安装时的sbin-path
    prog=$(basename $nginx)
    
    NGINX_CONF_FILE="/etc/nginx/nginx.conf"
    
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    
    lockfile=/var/lock/subsys/nginx
    
    make_dirs() {
      # make required directories
      user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
      if [ -z "`grep $user /etc/passwd`" ]; then
        useradd -M -s /bin/nologin $user
      fi
      options=`$nginx -V 2>&1 | grep 'configure arguments:'`
      for opt in $options; do
        if [ `echo $opt | grep '.*-temp-path'` ]; then
          value=`echo $opt | cut -d "=" -f 2`
          if [ ! -d "$value" ]; then
            # echo "creating" $value
        mkdir -p $value && chown -R $user $value
          fi
        fi
      done
    }
    
    start() {
      [ -x $nginx ] || exit 5
      [ -f $NGINX_CONF_FILE ] || exit 6
      make_dirs
      echo -n $"Starting $prog: "
      daemon $nginx -c $NGINX_CONF_FILE
      retval=$?
      echo
      [ $retval -eq 0 ] && touch $lockfile
      return $retval
    }
    
    stop() {
      echo -n $"Stopping $prog: "
      killproc $prog -QUIT
      retval=$?
      echo
      [ $retval -eq 0 ] && rm -f $lockfile
      return $retval
    }
    
    restart() {
      configtest || return $?
      stop
      sleep 1
      start
    }
    
    reload() {
      configtest || return $?
      echo -n $"Reloading $prog: "
      killproc $nginx -HUP
      RETVAL=$?
      echo
    }
    
    force_reload() {
      restart
    }
    
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    
    rh_status() {
      status $prog
    }
    
    rh_status_q() {
      rh_status >/dev/null 2>&1
    }
    
    case "$1" in
      start)
        rh_status_q && exit 0
        $1
        ;;
      stop)
        rh_status_q || exit 0
        $1
        ;;
      restart|configtest)
        $1
        ;;
      reload)
        rh_status_q || exit 7
        $1
        ;;
      force-reload)
        force_reload
        ;;
      status)
        rh_status
        ;;
      condrestart|try-restart)
        rh_status_q || exit 0
        ;;
    *)
      echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
      exit 2
    esac
    
    # 保存退出脚本以后 设置所有用户对脚本的执行权限
    chmod a+x /etc/init.d/nginx
    
    # 加入系统服务中
    chkconfig --add nginx
    
    # 如果出现 mkdir() 错误 
    sudo mkdir -p /var/tem/nginx/client
    
    # 查看 nginx 安装情况
    nginx -t
    
    # 进入 sbin 目录 启动 nginx
    cd /usr/sbin
    ./nginx
    
    # 重启命令
    nginx -s reload
    
    # 如果出现[emerg] 65814#0: getpwnam(“nginx”) failed 是因为没有创建 nginx 用户
    /usr/sbin/groupadd -f nginx
    /usr/sbin/useradd -g nginx nginx
    
    # 打开 nginx.conf
    vi /usr/local/nginx/conf/nginx.conf 
    
    #设定http服务器,利用它的反向代理功能提供负载均衡支持
    http {
        #设定mime类型,类型由mime.type文件定义
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        #设定日志格式
        access_log    /var/log/nginx/access.log;
    
       #开启gzip压缩
        gzip  on;
        gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    
        #设定负载均衡的服务器列表
    
       upstream webapp {
        #weigth参数表示权值,权值越高被分配到的几率越大
        server  server0_ip:port weight=4;
        server  server1_ip:port weight=3;
        server  server2_ip:port weight=3;
        ...
        ip_hash;   #粘性session
      }
    
       #第一个虚拟服务器
       server {
        #侦听80端口
        listen       80;
        server_name  webapp;
    
       location / {
         proxy_pass http://webapp;             #请求转向mysvr 定义的服务器列表
         proxy_next_upstream http_502 http_504 error timeout invalid_header;    #错误界面
         proxy_set_header Host $host;              #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
         proxy_set_header X-Forwarded-For $remote_addr;
       }
     }
    }  
    
    # 对于nginx静态资源扫描
    # 创建资源目录
    mkdir /usr/webserver/static/ROOT/ 
    
    # 在 nginx.conf 中添加
    location /images {
                 alias   /usr/webserver/static/ROOT/WEB-INF/images/;
                 autoindex on;
    
            }
            location /css {
                 alias   /usr/webserver/static/ROOT/WEB-INF/css/;
                 autoindex on;
    
            }
            location /js {
                 alias   /usr/webserver/static/ROOT/WEB-INF/js/;
                 autoindex on;
            }
    
    # 最后在需要发布 web 的时候 将 war 包上传至资源文件目录解压即可
    

    4. TomCat

    # 官网上下载好需要的版本 然后上传到 Server的临时目录里
    scp apache-tomcatxxx.tar.gz /home/temp
    
    # 解压安装包
    cd /home/temp
    tar -zxvf apache-tomcatxxx.tar.gz
    
    # 创建工作目录 并移动
    mkdir /usr/local/apache-tomcat
    mv /home/temp/apache-tomcat-xxx /usr/local/apache-tomcat
    
    # 进入工作目录启动 tomcat
    cd /usr/local/apache-tomcat/bin
    ./startup.sh
    

    由于是使用了阿里云 ECS 服务器 因此在管理控制台的安全策略组中需要自己手动配置安全策略 开放需要用到的比如80, 8080等这些端口

    相关文章

      网友评论

          本文标题:阿里云ECS CentOS 7 环境搭建 JDK 8 + MyS

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