本篇主要讲解 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,即可登进成功。