1. 程式人生 > >CentOS7下搭建Java伺服器環境

CentOS7下搭建Java伺服器環境

       前端時間有幸自己在工作中搭了一套Java伺服器環境,其中有用到JDK、Nginx、Redis、MySQL、tomcat,下面我將詳細的介紹下安裝這些工具的步驟以及一些注意事項,苦於沒有找到一套完整的安裝方案,自己動手記錄下,有不同見解歡迎討論

                                              安裝JDK

安裝環境:CentOS7 64位,安裝JDK1.8

1.查詢是否有舊版jdk

# rpm -qa | grep java

2.解除安裝舊版的jdk

# rpm -e –nodeps

3.安裝jdk1.8,首先建立一個java的資料夾

# mkdir /usr/local/java

4.將安裝包上傳/usr/local/java/目錄下

連結:https://pan.baidu.com/s/1IO7KbcYMtKJXGZqMeETi-w 密碼:wtk4

5.解壓jdk-8u161-linux-x64.tar.gz

# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local/java/

注意:如果提示command not found,那需要安裝下,執行命令:yum install -y tar

6.配置環境變數

# vi /etc/profile

在/etc/profile檔案的末尾加上以下配置:

JAVA_HOME=/usr/local/java/jdk1.8.0_144

JRE_HOME=/usr/local/java/jdk1.8.0_144/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

使修改後的/etc/profile檔案立即生效:

# source /etc/profile

7.測試

# java -version

自此,JDK安裝完畢!

                                             安裝Redis

安裝環境:CentOS7 64位,安裝redis-4.0.10

1.1下載redis

$ cd /opt/sofware #切換目錄

$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz

1.2解壓

解壓到/opt/module目錄下

tar -zxvf redis-4.0.10.tar.gz -C /opt/module/

1.3yum安裝gcc依賴

輸入:y

yum install gcc tcl
Total download size: 23 M
Is this ok [y/d/N]: y

1.4切換到redis解壓目錄下

目錄切換

cd /opt/module/redis-4.0.10

1.5編譯安裝

make MALLOC=libc

cd src && make install

#輸出以下內容:

Hint: It's a good idea to run 'make test' ;)

INSTALL install

INSTALL install

INSTALL install

INSTALL install

INSTALL install

make: warning: Clock skew detected. Your build may be incomplete.

1.6測試是否安裝成功

1、先切換到redis src目錄下

cd /opt/module/redis-4.0.10/src

2、啟動redis服務

輸入./redis-server指令

[[email protected] src]# ./redis-server

2812:C 11 Jun 16:23:12.402 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

2812:C 11 Jun 16:23:12.402 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=2812,

just started 2812:C 11 Jun 16:23:12.402 # Warning: no config file specified, using the default config.

In order to specify a config file use ./redis-server /path/to/redis.conf

如上圖:redis啟動成功,但是這種啟動方式需要一直開啟視窗,不能進行其他操作,不太方便。

按 ctrl + c可以關閉視窗。

3、修改配置檔案,以後臺程序方式啟動redis  第一步:修改redis.conf檔案

cd /opt/module/redis-4.0.10
vi redis.conf

3.1修改daemonize  將 daemonize no #預設為no 修改為 daemonize yes   #後臺程序方式改為yes3.2修改bind 配置  將bind 127.0.0.1                 #預設只有本機才能夠連線 修改為 bind 192.168.8.94   #改為本機ip地址、

3.3修改protected-mode配置  將protected-mode yes        #在預設保護模式下啟用 修改為protected-mode no  #禁用它,任何client不用認證即可連線3.4修改port埠號  將port 6379   #預設為6379埠 修改為其他埠port 6380       #可根據實際情況配置

指定redis.conf檔案啟動

cd /opt/module/redis-4.0.10/src #輸入以下指令./redis-server ../redis.conf 後臺程序啟動redis [[email protected] src]# ./redis-server ../redis.conf  2851:C 11 Jun 16:45:16.619 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 2851:C 11 Jun 16:45:16.619 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=2851, just started 2851:C 11 Jun 16:45:16.619 # Configuration loaded 測試redis

[[email protected] src]# ./redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> set ko 'ok' OK 127.0.0.1:6379> keys * 1) "ko" 127.0.0.1:6379> get ko "ok" 127.0.0.1:6379> 關閉redis程序  首先使用ps -aux | grep redis檢視redis程序

[[email protected] src]# ps aux|grep redis

使用kill命令殺死程序

kill -9 2852 

設定redis開機自啟動1、在/etc目錄下新建redis目錄

mkdir redis2、將/opt/module/redis-4.0.10/redis.conf 檔案複製一份到/etc/redis目錄下,並命名為6379.conf 

 cp /opt/module/redis-4.0.10/redis.conf /etc/redis/6379.conf3、將redis的啟動指令碼複製一份放到/etc/init.d目錄下

cp /opt/module/redis-4.0.10/utils/redis_init_script  /etc/init.d/redisd4、設定redis開機自啟動  先切換到/etc/init.d目錄下

然後執行自啟命令

chkconfig redisd on service redisd does not support chkconfig   看結果是redisd不支援chkconfig  解決方法:

使用vi編輯redisd檔案,在第一行加入如下兩行註釋,儲存退出

# chkconfig:   2345 90 10 # description:  Redis is a persistent key-value database 再次執行開機自啟命令,成功

chkconfig redisd on 現在可以直接已服務的形式啟動和關閉redis了

啟動:

service redisd start 關閉:

                                          安裝nginx

安裝環境:CentOS7 64位 ,安裝nginx-1.14.0

centos平臺編譯環境使用如下指令

安裝make:

yum -y install gcc automake autoconf libtool make

安裝g++:

yum install gcc gcc-c++

安裝PCRE庫

cd /usr/local/src

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

tar -zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure

make

make install

安裝zlib庫

cd /usr/local/src

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure

make

make install

安裝openssl(某些vps預設沒裝ssl)

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz

tar -zxvf openssl-1.0.1t.tar.gz

./config

make

make install

安裝nginx

cd /usr/local/src

wget http://nginx.org/download/nginx-1.14.0.tar.gz

tar -zxvf nginx-1.14.0.tar.gz

cd nginx-1.14.0

./configure

make

make install

進入 /usr/local/nginx/sbin/ 目錄。 通過 ./nginx 啟動nginx服務;

1、檢視程序號 ps -ef |grep nginx

2.停止

kill -TERM 117971

設定開機啟動

vi /lib/systemd/system/nginx.service

內容如下

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

設定開機啟動

systemctl enable nginx.service

啟動服務

systemctl start nginx.service

檢視服務狀態

systemctl status nginx.service

檢視所有已啟動服務

systemctl list-units --type=service

注意:由於當時專案並沒有用到nginx負載均衡之類的,只是作為前端對映,所以只是按照下面這個簡單的進行配置

其中:

root   /usr/local/nginx/html;   前端存放檔案的位置

location /xxxx{             proxy_pass http://127.0.0.1:8080;         }

xxxx是伺服器上配置專案名(我當時是使用的tomcat),後面的埠按情況修改。

當然在這裡將添加了埠,而CentOS7下防火牆一般是開著的,那麼需要外部能訪問的話,我們需要將埠開放

檢視埠:

firewall-cmd --permanent --zone=public --list-ports

新增埠:

firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --reload

                                      安裝MySQL

安裝環境:CentOS7 64位,安裝MySQL5.7

1、下載安裝包

# 下載mysql源安裝包
shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安裝mysql源
shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

檢查mysql源是否安裝成功

shell> yum repolist enabled | grep "mysql.*-community.*"

  看到上圖所示表示安裝成功

2、安裝MySQL

shell> yum install mysql-community-server

3、啟動MySQL服務

shell> systemctl start mysqld

檢視MySQL的啟動狀態

shell> systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 五 2016-06-24 04:37:37 CST; 35min ago
 Main PID: 2888 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─2888 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

6月 24 04:37:36 localhost.localdomain systemd[1]: Starting MySQL Server...
6月 24 04:37:37 localhost.localdomain systemd[1]: Started MySQL Server.

4、開機啟動

shell> systemctl enable mysqld
shell> systemctl daemon-reload

5、修改root預設密碼

mysql安裝完成之後,在/var/log/mysqld.log檔案中給root生成了一個預設密碼。通過下面的方式找到root預設密碼,然後登入mysql進行修改:

shell> grep 'temporary password' /var/log/mysqld.log
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; 

或者

mysql> set password for 'root'@'localhost'=password('MyNewPass4!'); 

注意:mysql5.7預設安裝了密碼安全檢查外掛(validate_password),預設密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤,如下圖所示: 

通過msyql環境變數可以檢視密碼策略的相關資訊:

mysql> show variables like '%password%';

修改密碼策略

在/etc/my.cnf檔案新增validate_password_policy配置,指定密碼策略

# 選擇0(LOW),1(MEDIUM),2(STRONG)其中一種,選擇2需要提供密碼字典檔案
validate_password_policy=0

如果不需要密碼策略,新增my.cnf檔案中新增如下配置禁用即可:

validate_password = off

重新啟動mysql服務使配置生效:

systemctl restart mysqld

6、新增遠端登入使用者

預設只允許root帳戶在本地登入,如果要在其它機器上連線mysql,必須修改root允許遠端連線,或者新增一個允許遠端連線的帳戶,為了安全起見,我新增一個新的帳戶:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'Mambatest!' WITH GRANT OPTION;

7、配置預設編碼為utf8

修改/etc/my.cnf配置檔案,在[mysqld]下新增編碼配置,如下所示:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

重新啟動mysql服務

systemctl restart mysqld

預設配置檔案路徑: 

配置檔案:/etc/my.cnf 

日誌檔案:/var/log//var/log/mysqld.log 

服務啟動指令碼:/usr/lib/systemd/system/mysqld.service 

socket檔案:/var/run/mysqld/mysqld.pid