Linux 安裝Nginx+Jdk+Redis

  • 安裝nginx(源碼安裝,需要gcc編譯器)

1.下載

cd /usr/local
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz

2.首先安裝 gcc、pcre、zlib、openssl

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

3.安裝nginx

 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module

4.編譯源文件

make
make install

5.啓動nginx

[root@localhost nginx-1.12.0]# cd /usr/local/nginx/sbin    ##進入目錄下
[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ./nginx    ## 開啓
[root@localhost sbin]# netstat -antlp    ## 查看端口號

6.測試

可以打開瀏覽器,輸入本機ip或localhost,進入nginx主頁即安裝成功

或者使用命令測試

[root@localhost sbin]# curl -I localhost    ## 測試
HTTP/1.1 200 OK
Server: nginx/1.12.0        ## 環境版本
Date: Tue, 09 Jan 2018 06:20:20 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 09 Jan 2018 06:14:15 GMT
Connection: keep-alive
ETag: "5a545db7-264"
Accept-Ranges: bytes


7.優化

通過上面顯示,訪問者可以得到服務器版本號,不安全

而且可以查看安裝文件,佔據空間較大

## 通過du命令查看文件大小
[root@localhost sbin]# du nginx
5.15M    nginx

主要原因是安裝時,默認安裝了Debug模式

但實際服務器是不需要調式功能,可以把它去掉

8.準備工作

刪除壓縮包重新解壓

關閉nginx服務

[root@localhost sbin]# ./nginx -s stop    ## 關閉nginx服務

a.修改nginx.h


[root@localhost sbin]# cd nginx-1.12.0/    ## 進入源碼目錄
[root@localhost nginx-1.12.0]# cd src/core    ## 進入此目錄下
[root@localhost core]# vim nginx.h    ## 編輯 nginx.h
找到#define NGINX_VER

修改值爲:"nginx"


b.修改gcc

[root@localhost core]# cd nginx-1.12.0/    ## 回到源碼目錄
[root@localhost nginx-1.12.0]# cd auto/cc/    ## 進入此目錄下
[root@localhost cc]# vim gcc    ## 編輯gcc
## 找到如下兩行(在最後),註釋掉即可

# debug
#CFLAGS="$CFLAGS -g"    ## 註釋掉此行

9.重新安裝

[root@localhost cc]# cd nginx-1.12.0/    ## 回到源碼目錄
## 重新安裝
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
## 再執行make 和 make install

[root@localhost nginx-1.12.0]# cd /usr/local/nginx/sbin    ##進入目錄下
[root@localhost sbin]# ./nginx    ## 開啓
[root@localhost sbin]# netstat -antlp    ## 查看端口號爲80
測試

[root@localhost sbin]# curl -I localhost    ## 測試
HTTP/1.1 200 OK
Server: nginx        ## 版本號已經不再顯示
Date: Tue, 09 Jan 2018 08:12:59 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 09 Jan 2018 06:14:15 GMT
Connection: keep-alive
ETag: "5a545db7-264"
Accept-Ranges: bytes

## 通過du命令查看文件大小
[root@localhost sbin]# du nginx
872    nginx

 

  • 安裝jdk,配環境變量

1.解壓版(需要配環境變量)

下載後解壓到目錄下


[root@localhost ~]# tar zxf jdk-8u121-linux-x64.tar.gz  -C /usr/local/java    ## 將jdk解壓到 /usr/local/java 下


2.安裝版rpm(不用配環境變量)

直接執行

[root@foundation78 Desktop]# yum install -y jdk-8u121-linux-x64.rpm 


3.配環境變量(只針對解壓版)

## 配環境變量
[root@localhost ~]# vim /etc/profile    ## 編輯該文件
## 在最後一行配環境變量
export JAVA_HOME=/usr/local/java/jdk1.8.0_121
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

[root@localhost ~]# source /etc/profile ## 加載配置文件


4.檢測

## 查看jdk配置
[root@foundation78 Desktop]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

## 查看jre配置
[root@foundation78 Desktop]# javac -version
javac 1.8.0_121


5.查看jdk路徑

[root@foundation78 Desktop]# which java
/usr/bin/java
[root@foundation78 Desktop]# which javac
/usr/bin/javac
  • 安裝Redis

1.下載

[root@iZwz991stxdwj560bfmadtZ local]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz

2.解壓

[root@iZwz991stxdwj560bfmadtZ local]# tar -zxvf redis-4.0.6.tar.gz

3.yum安裝gcc依

[root@iZwz991stxdwj560bfmadtZ local]# yum install gcc

4.跳轉到redis解壓目錄下

[root@iZwz991stxdwj560bfmadtZ local]# cd redis-4.0.6

5.編譯安裝

[root@iZwz991stxdwj560bfmadtZ redis-4.0.6]# make MALLOC=libc
[root@iZwz991stxdwj560bfmadtZ redis-4.0.6]# cd src && make install
    CC Makefile.dep
Hint: It's a good idea to run 'make test' ;)
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
 

6.啓動redis的三種方式

[root@iZwz991stxdwj560bfmadtZ redis-4.0.6]# cd src

 

a、直接啓動redis

[root@iZwz991stxdwj560bfmadtZ src]# ./redis-server
18685:C 13 Dec 12:56:12.507 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18685:C 13 Dec 12:56:12.507 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=18685, just started
18685:C 13 Dec 12:56:12.507 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 4.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 18685
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

18685:M 13 Dec 12:56:12.508 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
18685:M 13 Dec 12:56:12.508 # Server initialized
18685:M 13 Dec 12:56:12.508 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
18685:M 13 Dec 12:56:12.508 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
18685:M 13 Dec 12:56:12.508 * Ready to accept connections  

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

 

按 ctrl + c可以關閉窗口。

  

b、以後臺進程方式啓動redis

第一步:修改redis.conf文件

daemonize no

 

修改爲

daemonize yes

 

第二步:指定redis.conf文件啓動

[root@iZwz991stxdwj560bfmadtZ src]# ./redis-server /usr/local/redis-4.0.6/redis.conf 
18713:C 13 Dec 13:07:41.109 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
18713:C 13 Dec 13:07:41.109 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=18713, just started
18713:C 13 Dec 13:07:41.109 # Configuration loaded

第三步:關閉redis進程

首先使用ps -aux | grep redis查看redis進程
 

[root@iZwz991stxdwj560bfmadtZ src]# ps -aux | grep redis
root     18714  0.0  0.1 141752  2008 ?        Ssl  13:07   0:00 ./redis-server 127.0.0.1:6379
root     18719  0.0  0.0 112644   968 pts/0    R+   13:09   0:00 grep --color=auto redis
# 使用kill命令殺死進程
[root@iZwz991stxdwj560bfmadtZ src]# kill 18714

 

c、設置redis開機自啓動

1、在/etc目錄下新建redis目錄

2、將/usr/local/redis-4.0.6/redis.conf 文件複製一份到/etc/redis目錄下,並命名爲6379.conf  

3、將redis的啓動腳本複製一份放到/etc/init.d目錄下

4、設置redis開機自啓動

先切換到/etc/init.d目錄下

然後執行自啓命令

[root@iZwz991stxdwj560bfmadtZ etc]# mkdir redis
[root@iZwz991stxdwj560bfmadtZ redis]# cp /usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf
[root@iZwz991stxdwj560bfmadtZ init.d]# cp /usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redis
[root@iZwz991stxdwj560bfmadtZ init.d]# chkconfig redis on
service redisd does not support chkconfig 


看結果是redisd不支持chkconfig

解決方法:

使用vim編輯redisd文件,在第一行加入如下兩行註釋,保存退出

#!/bin/sh
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database

 

註釋的意思是,redis服務必須在運行級2,3,4,5下被啓動或關閉,啓動的優先級是90,關閉的優先級是10。

再次執行開機自啓命令chkconfig redis on,成功

啓動:

service redis start 

關閉:

方法1:service redisd stop

方法2:redis-cli SHUTDOWN

 

d、參考資料

1、http://blog.csdn.net/zc474235918/article/details/50974483

2、http://blog.csdn.net/gxw19874/article/details/51992125

 

如果出現如下問題:

可參考資料:http://blog.csdn.net/luozhonghua2014/article/details/54649295

[root@iZwz991stxdwj560bfmadtZ ~]# service redis start
/var/run/redis_6379.pid exists, process is already running or crashed

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章