说在前头:因为在这个搭建的过程中,尝过了不少的苦头,流过了不少的心酸泪,所以我希望后来者们,能够好好的活着,心态炸了也要继续热爱生活。/委屈巴巴
另外,一些我们使用的软件版本最最最好控制与项目同步。(别问我为什么,我先去哭三分钟)
我这里个软件使用到的版本(主要还是控制大版本的变更,例tomcat 7,8,9,mysql5.x , 8):
- linux centos7.3
- jdk1.8
- tomcat 9.0.14
- mysql 8.0.17
l 因为项目所需要的软件安装包(以及后面的项目文件),我都是事先在自己电脑里下载的 (各软件网址有提供),所以要上传到服务器端中,我们先下载一个FileZilla,并在服务器的linux系统里面进行相关的配置。
大部分命令我都采用截图的的方式展现,这样也有利于大家温习或者学习一下linux命令嘛。(CV太麻烦了,我会说出来吗?)
搭建FTP
将文件上传到服务器端需要搭建一个FTP服务。
1.安装vsftpd
[root@admin]# yum -y install vsftpd
2.编辑vsftpd的配置文件
[root@xiaojian /]# vi /etc/vsftpd/vsftpd.conf
清空内容,添加如下内容
listen=YES
background=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to ftptest FTP servers
pam_service_name=vsftpd
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
3.创建管理账户文件
[root@xiaojian /]# touch /etc/vsftpd/vsftpd.chroot_list
4.启动vsftpd服务
[root@xiaojian /]# service vsftpd start
5.下载FileZilla(百度去,网上啥都有)
接下来就可以往服务器端上传文件了
安装配置jre1.8
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html
1.把下载好的文件上传到服务器端(我把搭建所需的环境都放在了 /usr/local 下:java、tomcat、mysql)
2. 来到该目录下 cd /usr/local/java ,解压
[root@xiaojian java]# tar -zxvf server-jre-8u131-linux-x64.tar.gz
3. 删除安装包
rm -rf server-jre-8u131-linux-x64.tar.gz
4. vi /etc/profile启用linux文本编辑器配置jdk环境变量
在文件的末尾添加如下内容:(文件位置啥的,不要让我低估在座各位的智商啊)
#set java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=${JAVA_HOME}/bin:$PATH
vi 操作简单说明:
insert键( 或 i 键 ):插入内容
按下ECS键,输入:qw! 保存退出
按下ECS键,输入:q! 不保存退出
5. 让修改的环境变量文件立即生效
[root@xiaojian java]# source /etc/profile
6. 验证
安装Tomcat
这里我们使用在服务器端通过wget命令下载。
送个福利吧,这个网站apache的软件的一些历史版本也可下载,大家按需下载。
http://archive.apache.org/dist/tomcat
1、将Tomcat安装到 /usr/local 目录下
[root@xiaojian local]# cd /usr/local
2、下载Tomcat版本(选择所需版本地址)
[root@xiaojian local]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.73/bin/apache-tomcat-7.0.73.tar.gz
下载可能会有点慢,静候片刻~
3、解压缩下的压缩包
[root@xiaojian local]# tar -zxvf apache-tomcat-7.0.29.tar.gz
4、删除压缩包
[root@xiaojian local]# rm -rf apache-tomcat-7.0.29.tar.gz
5、修改Tomcat文件夹的名称为tomcat
[root@xiaojian local]# mv apache-tomcat-7.0.29 tomcat
6、启动&关闭Tomcat
[root@xiaojian bin]# ./startup.sh ( 进入到Tomcat的bin目录中,或者通过全路径来启动 )
输入netstat -tulnp查看个端口开启情况(tomcat端口8080)
7.打开浏览器,出现如下,说明服务部署成功!
如果你的服务器时阿里云的,那应该是访问不了,需要配置安全规则,开放8080端口,
安装Mysql
就是这个叫 mysql 的家伙什,不知道在我成功的道路上铺了多少荆棘,每次成功上岸都让我遍体鳞伤。从以前做项目,出过异常最多;到我部署网站时,让我不得不让服务器换一个系统。都是这个mysql作的妖。(其实是我版本没控制好,要做项目时老老实实用5.7的版本,完全没鸟事,非得作贱用8.0的了。。。。)
下载地址:https://downloads.mysql.com/archives/community/
(按项目需求下载,一定要按!!!)
-
上传文件到服务器端(文件有点大,耐心等待)
2.在安装之前,我们先把系统自带的mysql数据库给删咯
查看系统是否已经安装了mysql数据库
[root@xiaojian /]# rpm -qa | grep mysql
将查询出来的文件逐个删除(我这里没有)
yum -y remove filename
3.解压,删安装包
[root@xiaojian mysql]# tar -xf mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar
[root@xiaojian mysql]# rm mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar
4. 安装(网上找的,按这个顺序安装,我也不知道,我也不敢问)
yum install mysql-community-{client,common,devel,embedded,libs,server}-*
等待~~
5. 配置
a) - 启动mysql服务 service mysqld start;
关闭MySQL服务 service mysqld stop
重启mysql服务 service mysqld restart
- 加入到系统服务中 chkconfig --add mysqld
- 自动启动 chkconfig mysqld on
没事就用命令 netstat -tulnp 看看是不是打开了(3306端口)
b) 登录
新安装的mysql系统自动随机生成了密码
grep “password” /var/log/mysqld.log 查看密码
复制
mysql -uroot -p 回车(一定要回车的) 密码
c) 设置密码(注意Mysql8密码设置规则必须是大小写字母+特殊符号+数字的类型)
ALTER user 'root'@'localhost' IDENTIFIED BY 'newPassword';
修改完,exit退出,再登陆下
d) 更改语言
打开my.cnf :vi /etc/my.cnf
在最后添加如下语句:
[client]
port=3306
default-character-set=utf8
#regin
[mysqld]
port=3306
character_set_server=utf8
远程登录
远程登录的用户
1.可以选择创建一个新的用户作为远程登录的用户(因为8.0的设置密码规格太恶心了,不想记,还是直接用下面的root吧)
->create user 'MySQLAdmin'@'%' identified by '*******.' ;
->grant all on *.* to 'MySQLAdmin'@'%'
->flush privileges;(刷新)
2.使用root用户,简单粗暴
进入 mysql 数据库
update user set host = ’%’ where user = ’root’;
^上一步,主要是将root的登录主机localhost,设置为任意主机%可以登录
flush privileges(刷新);
开放端口或关闭防火墙
开放3306端口(也就是你mysql的默认端口)
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT #开启3306端口
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务
*ps:如果是阿里云的服务器的话,还要配置安全组规则,开放3306端口
我用的mysql第三方登录软件是SQLyog
打开我们电脑的SQLyog,创建一个新的用户,登录(我只演示登录)
****PS:此时如果我们用Navicat等第三方应用登录,会提示:
Authentication plugin 'caching_sha2_password' cannot be loaded
经查看发现,8.0改变了 身份验证插件 ,
解决方式*(密码还是那个规则)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root_Password';
远程登录成功!!!
这时候我们就可以使用我们电脑的mysql可视化工具,远程操作服务器端的数据库了。
我们先导出自己的项目文件 ,sql转储->结构和数据->导出。
远程登录的数据库->执行sql脚本。
上传项目文件
项目 -> Export -> war file
上传到 服务器端你的tomcat/webapps/ROOT 下,先将ROOT下的文件全部删除。
解压 jar -xvf filename.war(文件名)
删除 war包 rm filename.war
重新启动一下 tomcat
浏览器输入:远程服务器IP地址:8080/项目名. 访问测试
* 这里你可以修改 tomcat 的端口号为80,可以不再输入端口号就能访问相应的项目
tomcat 服务器的基本操作
PPS:如果到了这里,前面的没毛病,你那里还是出现莫须有的错误,你可以打开 tomcat 下相应日期日志文件查看错误源。
我上传完项目的时候,就出现了错误,没有查看到正确的日志文件,一直没看到正确的错误地点,幸亏后面高人指点,让我查看了相应日子的日志文件,找到了错误地点。
这个错误,大家应该都会报的哦,我之所以放到最后讲嘛,是因为,嘿嘿嘿......
终极错误:MySQL8.0报错.......which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
具体原因我就不详述了,大家可以自己去查,最直接的解决办法呢就是,在 my.cnf 文件下,加上
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
至此,我在阿里云上面的项目就部署完成了~
在此特别感谢这几篇博客给我带来的特大帮助:
https://www.jianshu.com/p/e12faf7c662c
https://blog.csdn.net/weixin_41402352/article/details/84474307
https://www.linuxidc.com/Linux/2018-12/155819.htm
https://blog.csdn.net/chrisjingu/article/details/90291445
https://blog.csdn.net/wujiandao/article/details/100502733