基於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
- 檢視iptables相關的安裝包
- 編輯防火牆,增加埠
- 在-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!
如果需要開通更多的埠,按上面的方式新增配置即可
- 在-A FORWARD上面編輯防火牆配置檔案
- 重啟配置,重啟服務
- 開啟防火牆
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
方法一:通過自行下載依賴庫安裝(測試成功)
資源下載
- 安裝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/目錄下
- 安裝c++依賴庫
解壓資源
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的時候務必要注意安裝的對應路徑
- 安裝zlib
方法二:通過系統自帶安裝包安裝
- 檢視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,埠定為8080
修改各個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
……
注:多個以此類推啟動
- 啟動8080埠tomcat
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 ./
- 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*
解決完錯誤,再執行安裝指令,安裝成功。
- 錯誤描述
- 錯誤1
- 修改目錄許可權
- 修改目錄擁有者為root使用者
cd /usr/local/mysql
chown -R root:root ./ - 修改當前data目錄擁有者為mysql使用者
cd /usr/local/mysql/data
chown -R mysql:mysql data
- 修改目錄擁有者為root使用者
建立日誌資料夾、日誌檔案、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
- log日誌
配置檔案修改
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
- 對映mysql命令,使用者登陸mysql資料庫
初始化使用者及新增基礎資訊
- 登入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;
- 登入root賬戶
視覺化工具
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 #持久化檔案路徑
- 建立log日誌資料夾及資料持久化資料夾
- 配置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
- 拷貝配置檔案至/etc目錄下
啟動和關閉服務命令
service redis start
service redis stopredis測試
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