阿里云ubuntu服务器怎么部署java项目呢

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端口入口 阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 6.最后 开启服务
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版本和位置配置

【阿里云ubuntu服务器怎么部署java项目呢】5.是否安装成功
java -version

阿里云ubuntu服务器怎么部署java项目呢
文章图片
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命令修改文件夹名称,方便日后使用。(注意哪些地方使用到了这些个地址,不然超级坑!)

阿里云ubuntu服务器怎么部署java项目呢
文章图片
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

阿里云ubuntu服务器怎么部署java项目呢
文章图片
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 阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 登陆成功 当你看见这个画面时,你就可以愉快的往服务器上上传文件啦~

阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 参考博客:https://blog.csdn.net/oaix101125/article/details/74454826
idea打war包
点击右上角的图标 阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 新建artifacts Artifacts-加号-Web Application:Archive-Empty

阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 填写信息 阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 打包 Build->Build Artifacts
选择刚刚新建的artifact

编译完成后,即可在输出目录下看到该war包。


阿里云ubuntu服务器怎么部署java项目呢
文章图片
image
部署war到服务器上
1.上传文件 使用FileZilla上传到目录
阿里云ubuntu服务器怎么部署java项目呢
文章图片
image

若遇见这样的问题

阿里云ubuntu服务器怎么部署java项目呢
文章图片
image
选择站点管理,更改协议再次登陆。传输文件成功!

阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 拷贝war包 使用cp或mv将该文件拷贝或移动到tomcat/webapps文件夹中。
阿里云ubuntu服务器怎么部署java项目呢
文章图片
image 再重启tomcat 就部署好了.
导入本地mysql数据库
1.将数据库导出为.sql文件 这里我使用的是Sequel pro,一个方便快捷的可视化管理软件。
2.将.sql文件上传至服务器 如上传war包步骤一样
3.登陆mysql 执行sql文件 登陆
mysql -uroot -p

执行sql文件 ps:这里有个很坑的地方是你需要先新建好sql文件中的数据库,再切换过去才能执行。否则报错。
没有我们要导入的数据库

阿里云ubuntu服务器怎么部署java项目呢
文章图片
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 { listen80 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进程

    推荐阅读