本篇主要講解 Nginx、JDK、Tomcat 和 MySQL 在 Linux 下的安裝方法,注重實用性,每個部分之間沒有太大關係。這裏 Linux 選擇 CentOS 7.2,通過 SSH 進行遠程操作,本地環境如果是 Windows 可以嘗試安裝 SSH 客戶端 Xshell,如果是 Mac 可以嘗試使用自帶的終端工具或者安裝 iterm2。
1.Linux下安裝Nginx
Nginx 是一款高性能的 http 服務器/反向代理服務器/電子郵件代理服務器,還可以配置虛擬主機。官方測試 Nginx 能夠支持 5 萬的併發連接,並且 CPU、內存等資源消耗非常低,運行非常穩定。Nginx 主要優點是可以實現高併發、部署簡單、內存消耗少、成本低等,主要缺點是 rewrite 功能不夠強大,模塊沒有 Apache 的多。
# yum -y install gcc gcc-c++ autoconf automake //gcc、gcc-c++庫文件(-y:全部yes,autoconf:自動配置,automake:自動編譯)
# yum -y install pcre pcre-devel //Nginx依賴包
# yum -y install zlib zlib-devel
# yum -y install openssl openssl-devel //openssl庫
# wget -P /usr/local http://nginx.org/download/nginx-1.16.1.tar.gz
# cd /usr/local
# tar -zxvf nginx-1.16.1.tar.gz //解壓縮
# cd nginx-1.16.1
# ./configure //配置
# make
# make install //安裝
# cd /usr/local //如果存在nginx文件夾,則安裝成功
Nginx的啓動、停止、重新加載配置文件命令:
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf //啓動
# ps -ef|grep nginx //查看Nginx的PID,啓動後會有master和worker兩個進程
# /usr/local/nginx/sbin/nginx -s stop //停止
# /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf //驗證配置文件的正確性
# /usr/local/nginx/sbin/nginx -s reload //重新加載配置文件
注意:如果啓動後訪問失敗,請關閉防火牆。
2.Linux下安裝jdk
1.安裝open jdk
# yum list installed | grep java //查看自帶jdk是否已安裝
# yum -y remove java-1.7.0-openjdk* //卸載系統自帶mysql數據庫,若有多個依賴文件則依次卸載
# yum -y remove tzdata-java.noarch
# yum -y list java* //查看yum庫上的mysql版本信息
# yum -y install java-1.8.0-openjdk*
# java -version //安裝成功,查看版本號
2.安裝oracle jdk
oracle jdk 奇數版本爲 BUG 修正並全部通過檢驗的版本,官方強烈推薦使用這個版本。偶數版本包含了奇數版本所有的內容,以及未被驗證的 BUG 修復。推薦使用奇數版本。
下載 oracle jdk 並上傳至服務器,然後進行安裝:
$ scp ~/Downloads/jdk-8u201-linux-i586.tar.gz [email protected]:/usr/local
$ ssh [email protected] //SSH連接
# cd /usr/local
# tar -zxvf jdk-8u201-linux-i586.tar.gz
# mv jdk1.8.0_201/ jdk //重命名
# vi /etc/profile //編輯配置文件
在末尾添加 java 環境變量的配置:
JAVA_HOME="/usr/local/jdk"
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH=".:$PATH:$JAVA_HOME/bin"
CATALINA_HOME="/usr/local/tomcat"
export JAVA_HOME CATALINA_HOME
# source /etc/profile //更新profile文件
# java -version //安裝配置成功,查看版本號
3.Linux下安裝Tomcat
# wget -P /usr/local http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz
# cd /usr/local
# tar -zxvf apache-tomcat-8.5.51.tar.gz && mv apache-tomcat-8.5.51/ tomcat-8.5.51
# ln -s /usr/local/tomcat-8.5.51 tomcat
Tomcat 默認部署項目的路徑是 /usr/local/tomcat/webapps/
# /usr/local/tomcat/bin/startup.sh //啓動Tomcat服務器
# /usr/local/tomcat/bin/shutdown.sh //停止Tomcat服務器
1.Tomcat爬過的坑
Tomcat 下允許訪問軟鏈接(symbol link)的設置,編輯 conf/context.xml,Context 節點下添加:
<!-- Tomcat設置支持軟連接 -->
<Resources allowLinking="true"/>
CentOS 7 下 Tomcat 啓動巨慢的原因及解決方案:
# yum -y install rng-tools //安裝rngd服務(熵服務,增大熵池)
# systemctl start rngd //啓動服務
# systemctl enable rngd //設置開機自啓動
4.Linux下安裝MySQL5.7
# yum list installed | grep mysql //查看自帶mysql是否已安裝
# yum -y remove mysql-libs.x86_64 //卸載系統自帶mysql數據庫,若有多個依賴文件則依次卸載
# wget -P /usr/local https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
# rpm -ivh mysql57-community-release-el7-11.noarch.rpm //安裝mysql源
# yum -y list mysql* //查看yum庫上的mysql版本信息
# yum -y install mysql-server mysql mysql-devel //安裝mysql
# service mysqld start //啓動mysql
# systemctl status mysqld //查看mysql的啓動狀態
# systemctl enable mysqld //設置開機自啓動
# systemctl daemon-reload
MySQL 安裝完成之後,會在 /var/log/mysqld.log 文件中給 root 生成了一個默認密碼。我們需要找到 root 默認密碼,然後登錄 mysql 進行修改:
# grep 'temporary password' /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: +i:q-r<::0gI
# mysql -u root -p //輸入生成的默認密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; //修改root密碼
MySQL5.7 默認安裝了密碼安全檢查插件,默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於8位。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; //添加mysql用戶並授權遠程登錄
MySQL 默認配置文件路徑分別如下:
配置文件:/etc/my.cnf
日誌文件:/var/log/ 和 /var/log/mysqld.log
服務啓動腳本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
配置默認編碼爲 utf8:
# vi /etc/my.cnf //在[mysqld]下添加編碼配置
[mysqld]
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
# service mysqld restart //重啓MySQL
找一臺計算機測試一下,遠程登錄 MySQL,即可登進成功。