基于CentOS 7 web服务环境搭建(包含JDK+Nginx+Tomcat+Mysql+Redis)

前言

本文是基于京东云CentOS 7环境下搭建的,腾讯云、阿里云基本都大同小异,无很大的区别。

安装和配置防火墙

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

  • 关闭firewall
     systemctl stop firewalld.service
     systemctl disable firewalld.service
     systemctl mask firewalld.service
    
  • 安装iptables防火墙
    • 查看iptables相关的安装包
      yum list iptables*
      
    • 安装
      yum install -y iptables-services
      
  • 编辑防火墙,增加端口
    • 在-A FORWARD上面编辑防火墙配置文件
      vi /etc/sysconfig/iptables
      添加以下配置

        -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
        -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
        -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
        -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
      
    • 保存退出
      :wq!
      如果需要开通更多的端口,按上面的方式添加配置即可

  • 重启配置,重启服务
    • 开启防火墙
      systemctl start iptables.service
      
    • 重启防火墙使配置生效
      systemctl restart iptables.service
      
    • 查看防火墙是否生效
      systemctl status iptables.service
      
    • 设置防火墙开机启动
      systemctl enable iptables.service
      
    • 查看当前系统下的端口使用情况
      netstat -tunlp
      
  • 云服务安全组
    通过以上方式设置了防火墙之后,如果使用到的云服务器(如腾讯云、阿里云、京东云),需要在其管理平台中设置安全组;然后配置开通相应的端口才能正常开通对应的端口;目前发现京东云的安全组貌似没有什么用,不设置依然可以访问,不知道是否是我的设置问题;但是腾讯云如果不正常设置,端口将无法正常使用


安装telnet服务,语言包

  • 查看xinetd相关的安装包,xinetd先安装

    yum list xinetd*
    
  • 安装xinetd服务

    yum install -y xinetd
    
  • 查看telnet相关的安装包

    yum list telnet*
    
  • 安装telnet服务端

    yum install -y telnet-server
    
  • 安装telnet客户端

    yum install -y telnet
    
  • 添加语言包

    vim /etc/sysconfig/i18n
    

    进入之后添加一下内容(默认已经有以下内容了):

    LANG=zh_CN.UTF-8
    LC_ALL=zh_CN.UTF-8
    


安装JDK

不能以yum的方式安装,因为有时候会缺少jar包,导致tomcat启动不成功。
下载jdk-7u67-linux-x64.tar.gz
通过FTP工具,将压缩包上传至服务器的/usr/local/src目录下

  • 进入压缩包目录

    cd /usr/local/src
    
  • 解压文件

    tar -xf jdk-7u67-linux-x64.tar.gz
    
  • 设置权限

    chown -R root:root ./
    
  • 移动文件至/usr/local/(可根据自己的需求移动到响应的目录即可,该操作非必要操作)

    mv jdk1.7.0_67 /usr/local/
    

    该操作将文件移动至/usr/local/,并将文件夹名称更换为jdk1.7.0_67

  • 添加环境变量

    • 进入配置文件

      vi /etc/profile
      
    • 在文件末尾添加以下配置:

      export JAVA_HOME=/usr/local/jdk1.7.0_67
      export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      export PATH=$PATH:$JAVA_HOME/bin
      

      注:以上配置中的JAVA_HMOE为解压后的路径,如果移动过,就填写移动后的路径

  • 环境变量生效

    source /etc/profile
    
  • 修改java.security
    使tomcat启动不那么慢(几分钟–十几分钟)
    cd /usr/local/jdk1.7.0_67/jre/lib/security
    vim java.security

    修改
    securerandom.source=file:/dev/urandom

    securerandom.soure=file:/dev/./urandom



安装Nginx

方法一:通过自行下载依赖库安装(测试成功)
  • 资源下载

    • 安装c++依赖库

      yum install -y gcc-c++
      
    • 下载依赖文件压缩包

      cd /usr/local/src/
      wget http://nginx.org/download/nginx-1.12.1.tar.gz
      wget http://www.openssl.org/source/openssl-1.1.0f.tar.gz
      wget http://zlib.NET/zlib-1.2.11.tar.gz
      wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
      

      如果以上的下载操作出现问题,可以戳此下载,再通过FTP的形式上传至/usr/local/src/目录下

  • 解压资源

    cd /usr/local/src/
    tar -xf zlib-1.2.11.tar.gz
    tar -xf openssl-1.1.0f.tar.gz
    tar -xf pcre-8.40.tar.gz
    tar -xf nginx-1.12.1.tar.gz
    
  • 设置权限

    chown -R root:root ./
    
  • 编译安装

    • 安装zlib

      cd /usr/local/src/zlib-1.2.11/
      ./configure
      make && make install
      
    • 安装openssl(用于配置ssl证书,本人在测试的时候,这一步无法正常安装,使用yun的方式安装的,详细操作请参考方法二)

      cd /usr/local/src/openssl-1.1.0f/
      ./config
      make && make install
      
    • 安装pcre

      cd /usr/local/src/pcre-8.40/
      ./configure
      make && make install
      
    • 安装nginx

      cd /usr/local/src/nginx-1.12.1/
      ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.40 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/src/openssl-1.1.0f
      make && make install
      

      注:以上为自行通过安装包安装,在安装nginx的时候务必要注意安装的对应路径

方法二:通过系统自带安装包安装
  • 查看gcc相关的安装包

    yum list gcc*
    
  • 安装依赖包

    yum install -y gcc-c++
    yum install -y openssl openssl-devel
    yum install -y zlib zlib-devel
    yum install -y pcre pcre-devel
    
  • 下载nginx

    cd /usr/local/src/
    wget http://nginx.org/download/nginx-1.12.1.tar.gz
    

    可以戳此下载,再通过FTP的形式上传至/usr/local/src/目录下

  • 安装nginx

    cd /usr/local/src/
    tar -xf nginx-1.12.1.tar.gz
    cd /nginx-1.12.1
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module 
    make && make install
    

以下操作是基于方法一和方法二安装之后的公共操作

  • 修改配置文件
    cd /usr/local/nginx/

    • 查看版本

      sbin/nginx -v
      
    • 检查正确性

      /sbin/nginx -t
      
    • 修改/conf/nginx.conf文件
      打开pid和error_log的注释,设置worker_processes(一般这个参数要和操作系统的CPU内核数成倍数),user 默认的nobody根据情况修改。

    • 创建nginx运行使用的用户
      www :/usr/sbin/groupadd www和/usr/sbin/useradd -g www www

    • 建立映射

      ln -s sbin/nginx /usr/bin
      
    • 修改文件拥有者

      chown -R www:www *_temp
      
  • 基础命令

    cd /usr/local/nginx/
    
    • 启动

      sbin/nginx
      
    • 停止

      sbin/nginx -s stop
      
    • 重启(建议用reload)

      sbin/nginx -s reopen
      
    • 修改nginx.conf后重新加载配置

      sbin/nginx -s reload
      
  • 配置开启自启动

    • 添加配置
      vi /etc/init.d/nginx
      在文件中添加以下代码并保存

      	#!/bin/bash
      	#
      	# chkconfig: - 85 15
      	# description: Nginx is a World Wide Web server.
      	# processname: nginx
      	
      	nginx=/usr/local/nginx/sbin/nginx
      	conf=/usr/local/nginx/conf/nginx.conf
      	case $1 in
      	start)
      	echo -n "Starting Nginx"
      	$nginx
      	echo " done"
      	;;
      	stop)
      	echo -n "Stopping Nginx"
      	$nginx -s stop
      	echo " done"
      	;;
      	test)
      	$nginx -t -c $conf
      	;;
      	reload)
      	echo -n "Reloading Nginx"
      	$nginx -s reload
      	echo " done"
      	;;
      	restart)
      	sh $0 stop
      	sh $0 start
      	;;
      	show)
      	ps -aux|grep nginx
      	;;
      	*)
      	echo -n "Usage: $0 {start|restart|reload|stop|test|show}"
      	;;
      	esac
      
    • 测试脚本是否可用

      cd /etc/init.d
      sh nginx start
      

      出现下图,说明脚本无问题

    • 更改配置文件nginx的权限

      chmod 755 /etc/init.d/nginx
      
    • 设置开机自启动

      chkconfig nginx on
      


Tomcat安装(包含多个tomcat的配置说明)

  • 下载安装包
    apache-tomcat-7.0.57.tar.gz
    下载完成之后通过FTP工具上传至/usr/local/src

  • 解压并安装
    如果需要安装多个tomcat,按如下操作,为了便于区分,我们将文件夹带上端口号

    • 第一个tomcat,端口定为8080

      tar -xf apache-tomcat-7.0.57.tar.gz
      mv apache-tomcat-7.0.57 /usr/local/tomcat/apache-tomcat-7.0.57_8080
      
    • 第二个tomcat,端口定为8086

      tar -xf apache-tomcat-7.0.57.tar.gz
      mv apache-tomcat-7.0.57 /usr/local/tomcat/apache-tomcat-7.0.57_8086
      

      注:更多个以此类推

  • 修改各个tomcat下server.xml中的端口

    cd /usr/local/tomcat
    vim apache-tomcat-7.0.57_8080/conf/server.xml
    vim apache-tomcat-7.0.57_8086/conf/server.xml
    

    将各个server.xml选的端口修改为各自的端口
    注:更多个以此类推配置

  • 编辑系统环境变量
    vi /etc/profile

    • 添加8080端口的配置
      export CATALINA_BASE_8080=/usr/local/tkb/apache-tomcat-7.0.57_8080
      export CATALINA_HOME_8080=/usr/local/tkb/apache-tomcat-7.0.57_8080
      export TOMCAT_HOME_8080=/usr/local/tkb/apache-tomcat-7.0.57_8080
      
    • 添加8086端口的配置
      export CATALINA_BASE_8086=/usr/local/tkb/apache-tomcat-7.0.57_8086
      export CATALINA_HOME_8086=/usr/local/tkb/apache-tomcat-7.0.57_8086
      export TOMCAT_HOME_8086=/usr/local/tkb/apache-tomcat-7.0.57_8086
      
      注:多个以此类推配置
    • 重新加载生效配置
      source /etc/profile
      
  • 编辑catalina.sh 文件
    编辑catalina.sh 文件,关联环境变量

    cd /usr/local/tomcat
    
    • 配置8080端口的tomcat
      vim apache-tomcat-7.0.57_8080/bin/catalina.sh
      在 # OS specific support. $var must be set to either true or false.下面增加如下代码

      	export CATALINA_BASE=$CATALINA_BASE_8080
      	export CATALINA_HOME=$CATALINA_HOME_8080
      
    • 配置8086端口的tomcat
      vim apache-tomcat-7.0.57_8086/bin/catalina.sh
      在 # OS specific support. $var must be set to either true or false.下面增加如下代码

      	export CATALINA_BASE=$CATALINA_BASE_8086
      	export CATALINA_HOME=$CATALINA_HOME_8086
      

    注:多个以此类推配置

  • 启动tomcat

    • 启动8080端口tomcat

      cd /usr/local/tomcat/apache-tomcat-7.0.57_8080/bin
      sh startup.sh
      
    • 启动8086端口tomcat

      cd /usr/local/tomcat/apache-tomcat-7.0.57_8086/bin
      sh startup.sh
      

      注:多个以此类推启动



MySQL安装

如果需要下载MySQL或者防止有参与文件,印象后续的操作,可参考以下博客:http://blog.csdn.net/typa01_kk/article/details/49057073

  • 软件资源及安装前准备

  • MySQL资源下载
    官网下载
    云盘下载mysql_5.6.36版本
    下载成功之后通过FTP将资源上传至/usr/local/src目录下

  • 解压资源

    cd /usr/local/src
    tar -xf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
    mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
    cd /usr/local/mysql
    
  • 添加系统mysql组和mysql用户

    groupadd mysql
    useradd -r -g mysql mysql
    
  • 修改当前目录拥有者为mysql用户

    cd /usr/local/mysql
    chown -R mysql:mysql ./
    
  • 安装数据库

    cd /usr/local/mysql 
    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid
    
    • 错误1
      • 错误描述
        如果报错FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
        Data::Dumper
      • 解决方案,执行以下指令
        yum install -y autoconf
        
    • 错误2
      • 错误描述
        如果报错error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
      • 解决方案,执行以下指令,安装依赖包
        yum install libaio*
        
      解决完错误,再执行安装指令,安装成功。
  • 修改目录权限

    • 修改目录拥有者为root用户
      cd /usr/local/mysql
      chown -R root:root ./
      
    • 修改当前data目录拥有者为mysql用户
      cd /usr/local/mysql
      chown -R mysql:mysql data
      
  • 创建日志文件夹、日志文件、socket通讯文件夹

    • log日志
      日志文件:mysql的运行时日志记录的地方,可以通过错误信息方便快速找到问题点
      cd /usr/local/mysql
      mkdir log
      chown -R mysql:mysql log
      cd log
      touch mysql.log
      
    • 通讯文件
      Mysql客户端和服务器端在本机的通信方式,该文件所在目录必须双方都有权限可以访问到,而且服务器在启动时需要写该文件,所以需要授权mysql,文件mysql.sock再启动mysql服务的时候生成
      cd /usr/local/mysql
      mkdir socket/
      chown -R mysql:mysql socket
      
  • 配置文件修改

    • my.cnf配置
      vi /usr/local/mysql/my.cnf
      修改配置以下内容

      #对应安装数据库时的路径
      #修改
      datadir = /usr/local/mysql/data
      #修改
      basedir = /usr/local/mysql/
      #修改
      socket = /usr/local/mysql/socket/mysql.sock 
      port = 3306
      server_id = mysql
      #编码格式
      character-set-server=utf8
      #查询表名不区分大小写
      lower_case_table_names=1
      # 启用主从复制
      log-bin=mysql-bin
      #启动函数
      log-bin-trust-function-creators=1
      event_scheduler=ON
      skip-name-resolve
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      symbolic-links=0
      
    • 配置mysql.server
      vi /usr/local/mysql/support-files/mysql.server

      #对应安装数据库时的路径
      #修改
      basedir = /usr/local/mysql/
      #修改
      datadir = /usr/local/mysql/data
      #修改
      mysqld_pid_file_path =/usr/local/mysql/data/mysql.pid
      
    • 配置mysqld_safe
      vi /usr/local/mysql/bin/mysqld_safe

      #对应安装数据库时的路径
      #修改
      pid_file=/usr/local/mysql/data/mysql.pid
      #修改
      err_log=/usr/local/mysql/log/mysql.log
      
  • 建立映射关系

    cp /usr/local/mysql/my.cnf   /etc/
    cp /usr/local/mysql/support-files/mysql.server   /etc/init.d/mysql
    

    注:准确的位置是/etc/rc.d/init.d/mysql,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射

  • 赋予可执行权限

    chmod +x /etc/init.d/mysql
    
  • 添加服务

    chkconfig --add mysql 
    
  • 显示服务列表(2,3,4,5是on表示ok)

    chkconfig --list
    

  • 启动服务

    service mysql start
    

    注:这时会生成mysql.sock文件

  • 建立映射

    • 映射mysql命令,用户登陆mysql数据库

      ln -s /usr/local/mysql/bin/mysql /usr/bin
      
    • 映射sock文件

      ln -s /usr/local/mysql/socket/mysql.sock /tmp/mysql.sock
      
  • 初始化用户及添加基础信息

    • 登录root账户

      mysql -u root -p
      

      注:这条命令需要输入密码,第一次进入默认root密码为空,直接回车即可,修改之后即用新的密码登录即可

    • 修改root密码

      set password=password('root');
      
    • 创建用户

      create user 'lupf'@'%' identified by '123456789';
      

      注:‘localhost’ 本地登陆,’%'为不限制登录IP

    • 创建数据库并授权

      create database testdb default charset utf8 collate utf8_general_ci;
      grant all privileges on testdb.* to 'lupf'@'%' identified by '123456789';
      
    • 刷新权限

      flush privileges;
      
    • 查看当前的所有数据库用户

      select host,user,password from mysql.user;
      
    • 查看当前所有的数据库

      show databases;
      
  • 可视化工具
    window下载Navicat可视化工具,根据上面的,其中包含了破解工具,直接运行破解工具即可完成破解



Redis安装

  • 资源下载
    cd /usr/local/src
    wget http://download.redis.io/releases/redis-4.0.1.tar.gz
    或者戳次下载4.0.1版本,通过ftp的方式上传至/usr/local/src

  • 解压并安装

    tar -xzf redis-4.0.1.tar.gz
    mv redis-4.0.1 /usr/local/
    cd /usr/local/redis-4.0.1
    make && make install
    
  • 修改配置文件

    • 编辑redis_init_script
      vi utils/redis_init_script
      在第二行增加下面注释

      #!/bin/sh
      # chkconfig: 2345 80 90
      # description: redis Start and Stop
      # 解释下面各行的意思
      REDISPORT=6379  #端口
      EXEC=/usr/local/bin/redis-server  #服务端路径
      CLIEXEC=/usr/local/bin/redis-cli  #客户端路径
      PIDFILE=/var/run/redis_${REDISPORT}.pid  #在启动的时候,redis.conf配了生成路径
      CONF="/etc/redis/${REDISPORT}.conf" #就是redis.conf,但是需要修改文件名
      
    • 复制服务端和客户端到上面的路径下

      cp src/redis-server /usr/local/bin
      cp src/redis-cli /usr/local/bin
      

      注:安装完之后,上面对应的文件夹下会包含相应的客户端、服务端的信息,如果没有的话,按以上的指令拷贝到响应的位置。

    • 建立快捷命令

      cp /usr/local/redis-4.0.1/utils/redis_init_script /etc/init.d/redis
      
    • 设置权限

      chmod +x /etc/init.d/redis
      
  • 编辑redis.conf

    • 创建log日志文件夹及数据持久化文件夹

      mkdir /usr/local/redis-4.0.1/logs
      mkdir /usr/local/redis-4.0.1/data/redisData
      
    • 修改日志
      vim /usr/local/redis-4.0.1/redis.conf
      修改以下对应的信息

      daemonize yes #后台运行
      pidfile /var/run/redis_6379.pid #启动自动生成pid路径,对应上面路径
      logfile "/usr/local/redis-4.0.1/logs/redis.log" #日志生成路径
      dir /usr/local/redis-4.0.1/data/redisData #持久化文件路径
      
  • 配置redis自启动

    • 拷贝配置文件至/etc目录下

      mkdir /etc/redis
      cp /usr/local/redis-4.0.1/redis.conf /etc/redis/6379.conf
      
    • 添加服务项

      cd /etc/redis
      chkconfig --add redis
      
    • 设置开机启动

      chkconfig redis on
      
  • 启动和关闭服务命令

    service redis start 
    service redis stop
    
  • redis测试

    cd /usr/local/bin
    redis-cli
    set test 1
    get test
    



设置linux系统的编码格式

  • 查看命令

    locale
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
    export LC_ALL=zh_CN.utf8
    
  • 添加配置
    vim /etc/sysconfig/i18n
    添加以下配置

    LANG=zh_CN.UTF-8
    LC_ALL=zh_CN.UTF-8
    
  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一行Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值