ubuntu16.04配置mysql+jdk+tomcat+ftp+nginx部署idea的java web项目
学长们说:后端可以不懂安卓,但是安卓一定要懂后端。秉承着这样的心态,最近我学习了一下python,爬了一份数据,通过java web的servlet并且自己制作了一个查询xx信息的接口。但是想一步到位,想把java web项目直接部署到服务器上。网上参差不齐的教程坑死我了,于是我就打算记录自己配置的过程,方便以后查看。
Mysql安装
1.更新软件源
apt-get update
2.安装
apt-get install mysql-server
执行中会要求你初始化mysql的登陆密码
apt-get install mysql-client
apt-get install libmysqlclient-dev
3.查看是否安装成功
netstat -tap | grep mysql
4.开启远程访问
vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉 bind-address = 127.0.0.1
5.在阿里云安全组内开启3306端口入口
image image image6.最后
开启服务
service mysql start
登陆mysql
mysql -uroot -p
JDK安装
1. 下载jdk
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
2. 创建安装目录
mkdir /usr/local/jdk
3. 解压
tar -zxvf jdk-8u141-linux-x64.tar.gz -C /usr/local/jdk
4. 设置环境变量
vi /etc/profile
在文件尾添加:
set java environment
JAVA_HOME=/usr/local/jdk/jdk1.8.0_141
JRE_HOME=/usr/local/jdk1.8.0_141/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
然后保存退出
注意:JAVA_HOME与JRE_HOME根据你所下载的jdk版本和位置配置
5.是否安装成功
java -version
image
显示版本号则证明安装成功
Tomcat安装
1.下载文件
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz
2.创建安装目录
mkdir /usr/local/tomcat
3.解压
tar -zxvf apache-tomcat-8.5.34.tar.gz -C /usr/local/tomcat/
4.启动tomcat
打开
cd /usr/local/tomcat/apache-tomcat-8.5.34/bin
启动
./startup.sh
访问8080端口 看见tomcat的页面 则表示tomcat配置成功
我们可以通过mv命令修改文件夹名称,方便日后使用。(注意哪些地方使用到了这些个地址,不然超级坑!)
image
vsftpd安装
1.安装
sudo apt-get install vsftpd
2.运行
启动ftpd服务
sudo service vsftpd start
停止ftpd服务
sudo service vsftpd stop
重启ftpd服务
sudo service vsftpd restart
查看21号端口是否打开
sudo netstat -npltu | grep 21
image
查看当前ftpd运行状态
sudo service vsftpd status
3./etc/vsftpd.conf 相关配置
# 设置为YES时vsftpd以独立运行方式启动,设置为NO时以xinetd方式启动
#(xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗)
listen=YES
# ipv6网络
listen_ipv6=YES
# 匿名用户访问
anonymous_enable=NO
# 本地用户访问
local_enable=YES
# 本地用户是否允许上传
write_enable=YES
# 本地用户上传文件的权限掩码
local_umask=022
# 匿名用户上传文件
#anon_upload_enable=YES
# 匿名用户创建目录
#anon_mkdir_write_enable=YES
# 用户进入目录时是否显示message_file指定的文件内容
#dirmessage_enable=YES
# 强制ftp数据传输使用20端口
connect_from_port_20=YES
# 登陆后显示的信息
ftpd_banner=Horizon FTP.
# 如果禁止所有用户访问上级目录,即chroot_local_user=YES,则该项需配置为YES
# 如果没有配置该项,则要求ftp根目录权限不可写,否则登录时报:500 OOPS错误
# vsftp2.3.5之后版本,该配置项需要手动添加
allow_writeable_chroot=YES
# 和前面同名配置项一样
chroot_local_user=YES
# 设置chroot_list_file是否有效
chroot_list_enable=YES
# 当chroot_list_enable=YES时,该文件生效,该文件需要手动添加,存放用户列表
# 如果所有用户被限制只能访问家目录,禁止访问上级目录(即chroot_local_user=YES)
# 那么该文件内的用户为特权用户,可以不被限制地访问家目录之上的目录
# 反之,如果所有用户都不被限制,都可以访问上级目录,即(chroot_local_user=NO)
# 则该文件内部的用户为被限制的用户,只能访问各自家目录,禁止访问上级目录
chroot_list_file=/etc/vsftpd.chroot_list
# 设置vsftpd使用utf8编码的文件系统
utf8_filesystem=YES
4.如果要用root登陆
vim /etc/ftpusers
该文件内的用户一律禁止ftp连接,所以去除掉root字段就可以用root登陆ftp了。
5.下载Filezilla
这是一个可视化连接ftp的软件,操作十分方便。
登陆Filezilla
image登陆成功
当你看见这个画面时,你就可以愉快的往服务器上上传文件啦~
image
参考博客:https://blog.csdn.net/oaix101125/article/details/74454826
idea打war包
点击右上角的图标
image新建artifacts
Artifacts-加号-Web Application:Archive-Empty
image
填写信息
image image打包
Build->Build Artifacts
选择刚刚新建的artifact
编译完成后,即可在输出目录下看到该war包。
部署war到服务器上
1.上传文件
使用FileZilla上传到目录
image若遇见这样的问题
image
选择站点管理,更改协议再次登陆。传输文件成功!
image
拷贝war包
使用cp或mv将该文件拷贝或移动到tomcat/webapps文件夹中。
image再重启tomcat 就部署好了.
导入本地mysql数据库
1.将数据库导出为.sql文件
这里我使用的是Sequel pro,一个方便快捷的可视化管理软件。
2.将.sql文件上传至服务器
如上传war包步骤一样
3.登陆mysql 执行sql文件
登陆
mysql -uroot -p
执行sql文件
ps:这里有个很坑的地方是你需要先新建好sql文件中的数据库,再切换过去才能执行。否则报错。
没有我们要导入的数据库
image
创建数据库 create database students;
mysql> create database students;
Query OK, 1 row affected (0.00 sec)
切换数据库 use students
mysql> use students
Database changed
执行sql source /root/students.sql
mysql> source /root/students.sql
这样就成功地导入了本地mysql的数据库(注意本地mysql与远程mysql的密码是否一致,否则可能远程会连不上数据库)
nginx反代80端口到8080
1.安装nginx
sudo apt-get update
sudo apt-get install nginx
2.修改nginx.conf
在http{
#里面添加如下配置
server {
listen 80 default_server; #监听80端口
server_name 127.0.0.1; #转发的服务器地址
location / {
proxy_pass http://127.0.0.1:8080; #代理的地址
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
}
}
3.重启
nginx -s reload
4.验证
当你访问80端口时显示tomcat的页面,则反代成功。
5.其他
卸载nginx
sudo apt-get remove nginx nginx-common # 卸载删除除了配置文件以外的所有文件。
sudo apt-get purge nginx nginx-common # 卸载所有东西,包括删除配置文件。
sudo apt-get autoremove # 在上面命令结束后执行,主要是卸载删除不再被使用的依赖包。
sudo apt-get remove nginx-full nginx-common #卸载删除nginx两个主要的包。
若apt-get安装失败,出现这样的问题,则是80端口被占用,需要杀掉该占用该端口的进程再重新安装。
Errors were encountered while processing:
nginx-core
nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)
sudo netstat -nlp #查看应用占用端口的情况
sudo kill -9 [占用80的应用的PID] #kill进程
网友评论