0、首先需要购买阿里云轻量级服务器,我卖的是学生机套餐。系统我选择centos7。24岁以下并且身份证认证了的,可以去买学生套餐,学生套餐地址:https://promotion.aliyun.com/ntms/act/campus2018.html
本来想图个便宜买个单品,发现一直选不了:
老是弹出这个东西,怎么选都是这样。
实在没办法,逼我去买阿里云学生套餐:
他丫的竟然可以选了:买就是了。
买不了学生套餐可以如下操作进行购买:
在首页中选择创建实例进入购买即可:
1、由于我前面第一次安装,百度一堆乱七八糟的教程文章,按着操作,出现很多坑,导致我的服务器安装得乱七八糟,里面的设置也是,所以我打算重新初始化磁盘,让它变成新的Linux系统,方便后面的安装。如果是第一次安装,新机就跳过此第1步。
->
需要将服务器给停止掉,才能去重新初始化磁盘:
来到配置信息这里:
会跳到这里:
需要重新设置服务器密码:
这个密码是我们远程连接服务器要用的,随后就是需要验证短信二维码。完成之后就重新启动了一个新的实例磁盘了。
2、在云服务器管理控制台->实例镜像->实例,查看公网ip地址,此时远程连接还差个密码,我们需要重置密码:
->
3、下载安装XShell,用他来远程连接服务器,我这里不提供下载链接以及安装教程,需要的请自行解决。
- 连接账号:服务器公网ip
- 连接密码:我们重置的密码
4、连接上去了,我们需要去上传东西就需要安装一个软件:
yum install lrzsz
安装成功后,我们输入命令:
rz
会弹出一个文件选择框,来让我们上传文件,这时候我们就可以上传文件了。这里为后面上传项目做一些准备。
5、首先安装下jdk1.8:
来到官网:https://www.oracle.com/cn/java/technologies/javase-downloads.html
复制链接地址。有可能要让你登录,我这里提供一个,可能会过期:
然后使用wget命令来下载,如果提示没有wget命令,就需要我们去安装:yum install wget
wget 拼上你复制的链接
本地测试链接超时,下载不了,我本地下载然后上传上去了。
下面进行安装:(有时候你直接复制下面完整命令和路径,可能会报错,需要先填写命令再填文件名称,按tab键会自动补全)
- 首先新建一个目录: mkdir /usr/java
- 添加可执行权限并解压到/usr/java:chmod +x jdk-8u241-linux-x64.tar.gz
- 解压: tar xzf jdk-8u241-linux-x64.tar.gz -C /usr/java
- 设置环境变量:vi /etc/profile 按 i 键 添加如下内容:
- # set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_241
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH - 保存并退出: 按 esc 键,再加上 :wq 回车。
- 运行 source /etc/profile 命令加载环境变量。
- 运行 java -version 命令显示JDK版本信息。
安装成功。
6、安装tomcat之前,我们需要做一些准备操作:
- 在阿里云服务器管理控制台,在左侧导航栏,单击网络与安全 > 安全组。
- 再添加一组80端口,方便日后操作。
- 永久关闭防火墙:systemctl disable firewalld
- 关闭SELinux,查看状态:getenforce
- Disabled为关闭状态,Enforcing为开启状态。我们要永久关闭他:运行命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到
SELINUX=enforcing
这一行,按i
键进入编辑模式,修改为SELINUX=disabled
, 按Esc
键,然后输入:wq
并回车来保存并关闭SELinux配置文件。 - 创建一般用户www来运行Tomcat:useradd www
- 创建网站根目录: mkdir -p /data/wwwroot/default
- 将需要部署的Java Web项目文件WAR包上传到网站根目录下,然后将网站根目录下文件权限改为www。本示例中,将依次运行以下命令直接在网站根目录下新建一个Tomcat测试页面,并将网站根目录下文件权限改为www:
- echo Tomcat test > /data/wwwroot/default/index.jsp
- chown -R www.www /data/wwwroot
7、安装tomcat8:wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz
该链接同样来自官网:https://tomcat.apache.org/download-80.cgi
- 解压:tar xzf apache-tomcat-8.5.51.tar.gz
- 重命名Tomcat目录:mv apache-tomcat-8.5.51 /usr/local/tomcat/
- 设置用户权限:chown -R www.www /usr/local/tomcat/
- tomcat下的webapps目录用来放我们的war包。
- cd /usr/local/tomcat/conf/
- 编辑server.xml文件:vi server.xml
- 将如下内容复制进去:通过ip地址就能访问项目,需要将连接端口改成80,这样每次访问就不需要去写8080端口了
-
<?xml version="1.0" encoding="UTF-8"?> <Server port="8006" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> <Listener className="org.apache.catalina.core.AprLifecycleListener"/> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1000" minSpareThreads="20" acceptCount="1000" maxHttpHeaderSize="65536" debug="0" disableUploadTimeout="true" useBodyEncodingForURI="true" enableLookups="false" URIEncoding="UTF-8"/> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server>
-
设置JVM内存参数:vi /usr/local/tomcat/bin/setenv.sh
-
添加如下内容进去:JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'
-
设置Tomcat自启动脚本:wget https://github.com/lj2007331/oneinstack/raw/master/init.d/Tomcat-init
-
下载成功显示这样:
-
重命名Tomcat-init:mv Tomcat-init /etc/init.d/tomcat
-
添加可执行权限:chmod +x /etc/init.d/tomcat
-
设置启动脚本JAVA_HOME:sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_241@' /etc/init.d/tomcat
-
设置Tomcat开机自启动:chkconfig --add tomcat
-
chkconfig tomcat on
-
启动tomcat:service tomcat start
-
8、安装mysql:https://blog.csdn.net/qq_41723615/article/details/93001225
9、上传sql文件,我项目使用的数据库是mysql,我需要将项目sql给转储下,保存起来。输入rz命令,选择我们本地存储的sql文件,进行上传。
10、创建数据库,并运行我们的sql文件:source xxx.sql
11、我们需要将我们的项目给打成war包,在打包前,我们需要修改项目中一些资源路径,如果项目中有图片资源或者其他的文件,还有数据库连接配置也需要去修改。
例如我们打算在centos下安装mysql,并创建一个数据库叫myweb,mysql需要去设置账号和密码,项目中的配置就要改过来。
项目资源路径要改成我们设置的网站根目录,我这边不打算用对象存储,直接全部装进阿里云服务器里。
查找当前目录命令:pwd
将项目打成war包:
- 添加依赖:
-
<dependency><!--打war包第一步--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>
- 将build改成:
-
<build> <finalName>myweb</finalName><!--打war包第二步--> <plugins> <plugin> <!--<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> </configuration>--> <!--打war包第三步--> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
- 添加:
<packaging>war</packaging><!--打war包第四步-->
- 主启动类需要继承个东西,并重写:
-
@SpringBootApplication public class MywebApplication extends SpringBootServletInitializer { /** * 需要把web项目打成war包部署到外部tomcat运行时需要改变启动方式 */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MywebApplication.class); } public static void main(String[] args) { SpringApplication.run(MywebApplication.class, args); } }
- 使用cmd进入本地项目根目录,利用mvn 命令打war包:mvc clean package
- 可能会出现一个错误: No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- 这个问题还不知道怎么解决?网上说需要用jdk里面的jre,有两个jre,需要分清楚。我这里选择使用idea来进行打包:
- 选择打包位置:
- 创建出框中的目录出来:
- 选中classes目录:
- 选中我们的项目,点ok。
- 这样项目就可以以war包和jar包的方式进行运行了。
- 随后将我们的war包上传到我们在服务器设置的网站根目录下即可。
12、在公网无法访问ip:8080怎么办?
可以使用命令查找问题,进入tomcat/bin目录:./catalina.sh run &
我这里出现了端口被占用是一个8006的端口占用了
查看下该端口:netstat -anp | grep 8006
杀掉该进程: kill -9 xxxx