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

2018-12-29  本文已影响0人  A07de21s

阿里云 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等这些端口

上一篇 下一篇

猜你喜欢

热点阅读