1. 程式人生 > >基於CentOS 7 web服務環境搭建(包含JDK+Nginx+Tomcat+Mysql+Redis)

基於CentOS 7 web服務環境搭建(包含JDK+Nginx+Tomcat+Mysql+Redis)

前言

本文是基於京東雲CentOS 7環境下搭建的,騰訊雲、阿里雲基本都大同小異,無很大的區別。

安裝和配置防火牆

CentOS 7.0預設使用的是firewall作為防火牆,這裡改為iptables防火牆。

  1. 關閉firewall
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    systemctl mask firewalld.service
  2. 安裝iptables防火牆
    • 檢視iptables相關的安裝包
      yum list iptables*
    • 安裝
      yum install -y iptables-services
  3. 編輯防火牆,增加埠
    • 在-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!
      如果需要開通更多的埠,按上面的方式新增配置即可
  4. 重啟配置,重啟服務
    • 開啟防火牆
      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


安裝Nginx

方法一:通過自行下載依賴庫安裝(測試成功)

  • 資源下載

  • 解壓資源
    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
  • 基礎命令
    cd /usr/local/nginx/

    • 啟動
      sbin/nginx
    • 停止
      sbin/nginx-s stop
    • 重啟
      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/data
      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

          #對應安裝資料庫時的路徑
          #修改
          datadir = /usr/local/mysql/data
          #修改
          basedir = /usr/local/mysql/
          #修改
          mysqld_pid_file_path =/usr/local/mysql/data/mysql.pid
    • 配置mysqld_safe
      vi /usr/local/mysql/bin/mysqld_safe

          #對應安裝資料庫時的路徑
          #修改
          pid_file=/usr/local/mysql-5.6.36/data/mysql.pid
          #修改
          err_log=/usr/local/mysql-5.6.36/log/mysql.log
  • 建立對映關係
    cp /usr/local/mysql-5.6.36/my.cnf /etc/
    cp /usr/local/mysql-5.6.36/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

          #!/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