部署项目到云服务器

前言

本篇文章将讲述如果从0-1部署自己的项目部署到云服务器上

ps1:这里不是将本地的项目与云服务器连接,而是将项目放到云服务器上。文件内容较多,也许过程遇到的问题也多,请耐心克服。【多思考,多搜索,多理解】 我在过程中遇到的问题:(如果和你遇到的问题相同可以大致看看)

ps2:需要一定的Linux语句基础(例如:基础的cd ls vi 等等)

一、购买阿里云或腾讯云等

ps:可以跟着下面的去购买,也可以查询别的方式找优惠等购买

这里用阿里云举列子->阿里云主页:http://aliyun.com/

1.先注册一个阿里云账号登录(这里不做讲述)

2.登录后购买服务器

        ①点击控制台:

         ②点击云服务器ECS:

       

         ③点击创建我的ECS

        ④包年包月方式 地域默认或随便选即可

         ⑤根据自己需求选择对应的实例规格即可(因为我们只是学习如果部署项目,不需要买多高级的,选择1vCPU 0.5GB 的即可) 

         ⑥镜像选择 CentOS 位随便选即可。

         ⑦这里使用默认的40即可 后续有需要再加

         ⑧快照不管,实例数量一台 ,然后时间选择1周(我们只是学习,不需要买多久,有需要到时候再续费) ,然后点击下一步。

        ⑨网络安全组这一步不需要改变什么,注意一下这里,必须是默认安全组(当然本来就是默认的)直接点下一步即可

         ⑩选择自定义密码,输入自己的登录密码即可 (记住这里的登录名root和自己的密码)其余的实例名称可填可不填。下一步即可

        ⑩+①:分组设置不管,下一步即可

        ⑩+②:没啥问题就确认订单。 

最后一步:点击云服务器ECS然后点击实例查看即可。

        购买云服务器完成

二、安装SecurityCRT 连接linux的工具。

        SecurityCRT是一款支持ssh(ssh1,ssh2)的终端仿真程序,即windows下可以登陆unix或者linux的一款软件。链接:https://pan.baidu.com/s/13FsgbXNuLuZ_BqWZz--VQw 
提取码:oiat   ||||||ps:如果不行就使用别的连接linux的工具或者找别的方式下载SecurityCRT

1.启动:找到SecureCRT.exe 

2.连接:

        Protocol :使用默认的SSH2

        Hostname: 使用查看阿里云实例中的IP,根据自己的服务器进行输入。

        Port: 使用默认的22. 这个端口在购买ECS服务器-网络里的安全组里已经开放了的。

        Username: 使用root

 3.点击Connect会弹出一个询问是否保存主机的信息,点击中间那个Accept&Save

 4.输入 root 和购买实例时的密码。

 5.连接成功!

三、安装FTP文件传输工具

        安装FTP文件传输工具:链接:https://pan.baidu.com/s/18u_jbtTukHfUqr5cPmK-RQ 
提取码:cj26

1.先通过SecurityCRT工具连接云linux

2.然后输入安装命令:

yum install vsftpd –y

        如果过程中出现y/d/n  按 y 后回车即可

当显示complete!表示安装成功。

3.查看服务器启动状态的方式:(只需执行启动和查看状态,别的可以不管)

启动:systemctl start vsftpd.service   执行此句即可

查看状态:systemctl status vsftpd.service 执行此句即可

一些关闭和启动重启的方法:

        关闭ftp服务:systemctl stop vsftpd.service

        启动fpt服务:systemctl start vsftpd.service

        重启ftp服务:systemctl status vsftpd.service

        检查端口号:netstat -anp|grep 21

      Tcp6 0 0 :::21 这行是这样就行。

4.配置ftp用户:

        4.1创建一个传输目录:

mkdir -p /home/wwwroot/ftptest

        4.2创建用户并分为ftp组:

useradd -d /home/wwwroot/ftptest -g ftp -s /sbin/nologin ftptest

解释:-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端。 这种不能登陆的用户又叫做虚拟用户。创建过程给出的警告信息是正常的。

        4.3设置用户目录权限:把目录/home/wwwroot/ftptest的拥有者设置为ftptest
使ftptest用户拥有这个目录的读写权限。

chown -R ftptest /home/wwwroot/ftptest

chmod -R 775 /home/wwwroot/ftptest

        4.4为ftptest用户设置密码:用于在ftp软件连接:

passwd ftptest

        然后输入想要的密码即可(需要记住,后续通过FTP连接linux传输文件)

        4.5去掉匿名登录:默认情况下vsftpd服务器是允许匿名登陆的,这样非常不安全,所以要把这个选项关闭掉。

首先通过vi命令打开ftp服务器配置文件:(关于vi文本的三大模式,如何输入退出保存,请去自行搜索linux相应知识)

vi /etc/vsftpd/vsftpd.conf

然后把本来的 (ps:如何在vi文本快速里查找字符或查找目的行请自行搜索相应llinux知识)

anonymous_enable=YES

修改为anonymous_enable=NO

        4.6为ftp添加用户清单:

vi /etc/vsftpd/chroot_list

然后再里面加一行:ftptest

允许写权限:

vi /etc/vsftpd/vsftpd.conf

在最后面加一行:allow_writeable_chroot=YES

5.配置端口

        5.1 vsftpd有两种端口,一个是21端口,用来监听客户端连接请求的。 这个一般说来是固定的,就一直使用21端口。另一种是,一旦获取到请求之后,再专门用户服务端和客户端传输数据的端口。
        本知识点就是用于指定第二种端口的获取范围:

        5.2打开配置文件:

vi /etc/vsftpd/vsftpd.conf

在最后添加:

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=30010


这表示使用被动模式,用于传输数据的端口分配从30000-30010之间。
在后续的Linux开放端口教程中也会做相应的配合工作。

6.用户鉴权

        6.1因为用户 ftptest nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误。

vi /etc/pam.d/vsftpd

注释掉/etc/pam.d/vsftpd文件里这一行:
#auth required pam_shells.so
这样不去鉴权,从而允许 ftptest 这种 虚拟用户登录 ftp 服务器.

然后必须重启vsftpd服务器!

重启vsftpd服务器:

        通常重启使用的命令是

service vsftpd restart

但是centos7之后,改用的命令是如下方式:

systemctl restart vsftpd.service

最后执行查看状态,以查看重启成功了

systemctl status vsftpd.service

7.开放端口

7.1到阿里云服务器ESC实例安全组开通端口即可

更多—网络和安全组—安全组配置  可以把常用的22 21 3306 8080 80 30000-30010 都开通了

 (ps:由于本人的云服务器过期了,进行安全组配置请自行搜索,可以把22 21 3306 8080 80 30000-30010 都开通了)

8.打开FTP软件进行传递需要的文件等进入linux

 打开后选择左上角站点—快速连接对话框

 快速连接对话框:输入主机地址即阿里云购买的实例的ip地址,端口选择21。然后输入刚刚配置fpt时所创造的用户名和密码。确定即可

 连接成功!

 9.然后进入与云linux连接的securityCRT里查看,此时此处为空

ls /home/wwwroot/ftptest/

四.传递jdk/tomcat/web项目安装包或材料进linux云服务器

1通过ftp软件连接后传输即可:传输项目war包,jdk,数据库文件,tomcat安装包传输jdk tomcat web项目war包。tomcat和jdk链接:https://pan.baidu.com/s/1JJNp5NeS3-toyW9BNGPh4w 
提取码:7o5q(ps:数据库文件 项目war包需要使用自己的哦~ 如何获取项目的war包和数据库文件请自行搜索)

2此为cd /home/wwwroot/ftptest/  进入FTP传输目录。

3解压jdk :tar –zxvf 包名

4创建jdk存放目录:mkdir /usr/local/java

5移动jdk到该目录:mv jdk-18.0.2 /usr/local/java/

4打开环境配置文件:vim /etc/profile

在最后输入:

export JAVA_HOME=/usr/local/java/jdk-18.0.2
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

然后关闭文件

重新启动该文件:source /etc/profile 必须执行

查看jdk是否安装成功:java -version  如果出现版本等信息就表示安装成功

 五.在linux中安装Mysql

1.先进入tmp:cd /tmp  (ps:如果没有tmp目录,需要创建)

cd /tmp

2.直接输入以下代码:然后等待即可

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

3接着就可以通过yum安装了:最后显示complete!即可  过程中有y/n 按y 回车即可

yum install mysql mysql-server mysql-devel –y

 4.然后需要启动mysql服务

                启动mysql服务器:systemctl start mysql.service

                关闭mysql服务器:systemctl stop mysql.service

                重启mysql:systemctl restart mysqld.servic

5.验证:安装后会自动启动,启动后会占用3306端口。 使用如下命令查看3306端口是否启动,如果启动了则表示mysql处于运行状态。

netstat -anp|grep 3306

通过Yum安装的mysql的管理员账户是没有密码的,这里通过命令设置其密码为 root

mysqladmin -u root password root

 Warning信息并非提示设置失败,而是提示密码出来了,小心后面有人。

登录:mysql -u root -proot   或者mysql -u root -p  然后输入密码

Linux Mysql 大小写敏感

所以修改配置文件:

vi /etc/my.cnf

如图所示在[mysqld]后添加添加lower_case_table_names=1

 然后保存文件

重启mysql

systemctl restart mysqld.service

六.Mysql远程配置

即可通过windows下的workbech软件 来进行远程连接。 输入ip 账号 密码即可。

1.进入与云Linux连接的SecureCRT下进入myesql:

mysql -u root -proot

输入以下代码:

use mysql;
select host,user from user;
update user set host='%' where user='root';
flush privileges; 刷新命令

(ps:)如果出现Duplicate entry '%-root' for key 'PRIMARY'错误

如果有% 就说明对了,没问题。

设置完远程配置后,即在window 可以通过workbechip 账号 密码 链接数据库 。

(ps:放入linux的代码的数据库连接如果127.0.0.1不行就换云服务器的ip地址)

2.配置防火墙 (ps:我们需要开放80或8080端口)

查看firewall服务状态

systemctl status firewalld

查看firewall的状态

firewall-cmd --state

开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start
# 重启
service firewalld restart
#
关闭
service firewalld stop

查看防火墙规则

firewall-cmd --list-all

查询、开放、关闭端口

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp

# 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp

# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

注意:这里开启了防火墙,所以记得将3306mysql端口 21ftp文件传输端口 30000-30010开启 80 8080端口都开启
# 参数解释
1firwall-cmd:是Linux提供的操作firewall的一个工具;
2--permanent:表示设置为持久;
3--add-port:标识添加的端口;

七.安装tomcat

进入传输的目录

然后先解压:tar  -zxvf 包名

然后移动到 /usr/local/tomcat7:

mv apache-tomcat-7.0.92 /usr/local/tomcat7

  (ps:按理说没有目录会自动创建的,如果没有就自己创建吧)

启动tomcat: /usr/local/tomcat7/bin/startup.sh

关闭tomcat: /usr/local/tomcat7/bin/shutdown.sh

查看该端口是否开放并占用:netstat -anp|grep 8080

八.进行项目部署

1.通过FTP传入的数据库sql文件且将其导入linux的mysql(ps:如果这一步始终不行,请自行搜索解决自己的问题)或者在windows下的mysql去创建(之前对mysql进行了远程连接配置)

mysql -u root -p密码 --default-character-set=utf8 数据库名 < /home/wwwroot/ftptest/sql文件名

提示并非导入失败,而是警告密码。

--default-character-set=utf8  表示以utf8导入 后面为导入的数据库  < 表示重定向 然后是sql文件目录。

ps:(如果导入编码格式不同可能会报错)

无论是从workbech还是从Linux用命令导入,数据的sql文件里的所有创建表的最后一行写上

ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 或者对每一个编码格式手动去修改。

将默认字符集改成utf-8  如果有collaction 则改为utf-8_bin

创建数据库这样创建:

        2.通过FTP传输自己的web的war包到linux下。

web项目war包在tomcat关闭状态下放入webapps目录下。然后启动tomcat会自动解压war

(ps:或者修改server.xml文件.。该文件在:/usr/local/tomcat7/conf/,此方法是修改server.xml配置文件,具体的知识请自行搜索tomcat部署独立项目的方式。

提示:原本的项目里连接数据库的语句的账号密码数据库名要改为linux下的哦~

即可通过http://ip地址:端口号/项目名访问项目。(ps:打开时间可能3分钟或更长,需等待),后续任何修改,都只需关闭 打开等待即可。//实在不需就关闭 打开 关闭 打开……。项目名即为解压到tomcat的webapps目录下的文件名,如果是server.xml修改的方式则项目名为自己设置的。

成功:(因为买的机器性能非常低,图片等加载会有点慢)


总结

1.如果你看到这里了,也许你成功了,恭喜你;如果你失败了,在过程中遇到了许多问题,请多搜索遇到的问题,本篇文章内容虽然多,但也不一定就是最详细的。且有些内容或许表达不好,展示不够,如果您有意见在评论提出吧!

2.如果您根据本文章花费了许多时间结果还是没成功,在这里我向您表示歉意。学习本来就是困难的,咱们都需要经历许多困难,许多bug。如果您愿意,可以结合这篇文件的步骤思路,多搜索遇到的问题,多篇结合来达到您的目的~

  • 12
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
为了巩固知识,做的一个网站。基于struts2+spring+springjdbc开发的代码分享网,所有源码已开源。 网站功能介绍: 1、邮件注册(采用阿里云企业邮箱),为了让大家体验一下邮箱注册功能。我已经在分享的源码中,为大家配置好了测试账户,大家可以在自己电脑上进行测试。 2、md5加密,注册用户,所有密码会以密文保存在数据库,可以保证安全。 3、代码分享功能(核心功能),该功能的主要特色是集成了优秀的文本编辑器,支持插入代码、插入链接、插入表情、插入图片、支持在线预览。同时也实现了文件上传(基于struts2的文件上传功能)。 4、代码下载,下载功能会判断用户是否下载过该代码,若下载过则不扣积分。下载功能也是基于struts2的下载模块实现的。 5、代码评论,该功能是我仿照qq空间评论功能实现的,在本站中,我是以时间倒叙方式显示的(也支持正序)。 6、代码收藏,用户可以收藏代码。 7、消息中心,分为了0系统消息、1评论消息、2兑换消息、3上传图片消息、4上传文件消息、5下载消息(用户扣除积分)、6下载消息。 8、代码中心,分为了分享代码、下载代码、评论代码、收藏代码。 9、设置功能,支持修改昵称、城市、性别、座右铭、密码、头像。 10、赞助兑换功能,支持1个赞助兑换10个积分,也支持用赞助升级称号。 11、其他功能包括:图片压缩处理功能(即使是几M的图片,压缩后也只有几十kb)。通用json处理功能(向方法中传递任何参数,int、string等,都会返回json数据,而且速度很快)。分词功能(点击某一个分享,进入详情页的时候,会对该分享名称进行分词,并且加入到head中,利于网站seo)。 可能还有一些其他功能,通过查看源码可了解。 网站技术介绍: 1、采用语言,java 2、后台框架,struts2+spring+spring JDBC 3、前台技术,layui+jquery+ajax 网站设计思路: 前台渲染是采用的jsp技术,为了保证网站的速度,我使用了几种方法: 1、我将重复的代码保存成单独的jsp文件然后引入(这样的好处就是重复的jsp文件只会加载一次,然后浏览器缓存,下次加载速度会提升)。比如,我将link和header单独提取出来,然后在其他页面进行引入: 2、所有的业务功能,我都放在了html加载完成之后,利用jquery+ajax获取数据后再渲染界面(这样的好处就是给用户的感觉是网站速度很快。因为用户打开后,立马渲染html代码,此时网站结构已经出现,接着用jqury+ajx去后台获取数据。由于我的sql语句严格控制在ms级别,所以只需要几百ms,数据即可拿到,此时渲染在页面上给用户的感觉很快) 3、sql语句的控制,本站的所有sql语句,均控制在1s以下。这块我花了很长时间进行sql优化,我举个例子:为了减少数据库的访问次数,我会想方设法通过一条语句获取所有信息,并且严格控制它的执行速度,绝对不可以超过1s。首页的下载榜、评论榜、收藏榜,这三个功能的数据就是通过一条sql语句获取的: #优化联合查询用户评论、下载、收藏的资源列表 select a.sort,a.id,r.name,a.nowtime,r.isjing,r.isyuan, ifnull(c.res_comments_num,0) as res_comments_num, ifnull(d.res_download_num,0) as res_download_num, ifnull(kp.res_keep_num,0) as res_keep_num from #sort为1代表用户评论的代码列表 (select 1 as sort,c.resources_id as id,c.nowtime as nowtime from comments c #需要指定用户 where c.user1_id = 1 group by c.resources_id union all #sort为2代表用户下载的代码列表 select 2 as sort,d.resources_id as id,d.nowtime as nowtime from download d #需要指定用户 where d.user_id = 1 group by d.resources_id union all #sort为3代表用户收藏的代码列表 select 3 as sort,k.resources_id as id,k.nowtime as nowtime from keep

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值