上海建设网站,wordpress 悬浮播放器,wordpress 显示商品,实名制认证网站引入依赖 Spring-boot-maven-plugin 用maven进行打包的时候必须用到这个插件。看看自己pom.xml中有没有这个插件 并且看看配置正确不正常。 注#xff1a;我们这个项目打的jar包在30MB左右。 plugingroupIdorg.springframework.boot/groupIdartif… 引入依赖 Spring-boot-maven-plugin 用maven进行打包的时候必须用到这个插件。看看自己pom.xml中有没有这个插件 并且看看配置正确不正常。 注我们这个项目打的jar包在30MB左右。 plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin
部署前的准备
1.linux环境搭建
我使用的是腾讯云服务器
Xshell、finalshell只是客户端。通过一些SSH协议等等连接上了云服务器。
通过这个客户端连接服务器。我们的服务器在腾讯的机房。我们的机器大概率是虚拟机的一小块。
Linux发行版
通用用途适合个人和企业用户Ubuntu、Debian、Fedora、openSUSE
企业级发行版稳定性和支持性强RHEL、CentOS、AlmaLinux Rocky Linux、Oracle Linux
我的是CentOS
cat /etc/centos-release2.Java环境搭建
我们部署Spring项目只需要JDK和MySQL就行了。
2.1安装MySQL
在 CentOS 上使用 yum 安装 MySQL 1.CentOS 通常默认安装 MariaDB需先卸载以避免冲突 sudo yum remove mariadb* -y2. 添加 MySQL 官方 Yum Repository MySQL 不在默认的 CentOS 软件仓库中需要手动添加 MySQL 官方仓库。 sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm3. 启用所需的 MySQL 版本 MySQL 官方仓库默认启用的是 MySQL 8.x。如果需要其他版本如 MySQL 5.7可以切换仓库。 查看可用仓库 yum repolist all | grep mysql启用 MySQL 5.7示例 通过这两行命令。我们再次查看可用仓库发现5.7被启用 sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community默认仓库 mysql80-community 表示 MySQL 8.xmysql57-community 表示 MySQL 5.7 4. 安装 MySQL 运行以下命令安装 MySQL Server sudo yum install mysql-community-server如果安装不了就 如果你确认源可信可以使用 --nogpgcheck 跳过 GPG 签名检查 sudo yum install mysql-community-server --nogpgcheck5. 启动 MySQL 服务 安装完成后启动 MySQL 服务并设置为开机自启动 sudo systemctl start mysqld
sudo systemctl enable mysqld6. 获取初始密码 安装完成后MySQL 会生成一个随机的 root 用户初始密码 查看密码 sudo grep temporary password /var/log/mysqld.log使用随机生成的密码登录 MySQL 并配置安全选项 7.登录 MySQL mysql -u root -p登录成功 修改密码 登录成功后建议尽快修改 root 用户的密码。你可以使用以下命令来修改密码 ALTER USER rootlocalhost IDENTIFIED BY Qyy2024!; 修改密码成功 刷新权限 修改密码后执行以下命令使权限生效 FLUSH PRIVILEGES;8. 验证安装 查看 MySQL 服务状态 sudo systemctl status mysqld登录 MySQL 检查版本 mysql -u root -p
mysql SELECT VERSION();退出mySQL exit;2.2安装JDK 1.更新软件包列表 首先确保你的系统软件包是最新的 sudo yum update -y2. 安装 JDK 8 使用 Yum 安装 CentOS 7 默认的软件仓库中可以找到 OpenJDK 8。你可以使用以下命令来安装 sudo yum install java-1.8.0-openjdk-devel -y这将安装 OpenJDK 8开发工具包。安装完成后使用以下命令检查 JDK 版本 java -version一、部署 Web 项目到 Linux
1.1部署简介 工作中涉及到的 环境 开发环境开发人员写代码用的机器。 测试环境测试人员测试程序使用的机器。 生产环境线上环境最终项目发布时所使用的机器对稳定性要求很高。 把程序安装到生产环境上这个过程称为“部署”也叫“上线”。 一旦程序部署成功那么这个程序就能被外网中千千万万的普通用户访问到。 换句话说如果程序有 BUG这个 BUG 也就被千千万万的用户看到了。 部署过程至关重要属于程序开发中最重要的一环。一旦部署出现问题极有可能导致严重的事故服务器不可用之类的。 为了防止部署出错一般公司内部都有一些自动化部署工具如 Jenkins 等。当前我们先使用手工部署的方式来完成部署。 1.2环境配置
程序正常运行需要保证环境和程序都正确。我们需要先设置环境。
下面内容都算是在配置环境
二、数据准备 按照之前的数据库建表脚本在服务器上运行建立相同的表结构。 2.1进入MySQL
使用下面命令
mysql -u root -p 然后输入你设定的数据库密码。 进入MySQL 2.2查看所有数据库
SHOW DATABASES;2.2建立项目数据库
create database if not exists spring_blog charset utf8mb4; 2.3创建并插入用户表的数据 创建用户表 DROP TABLE IF EXISTS spring_blog.user;
CREATE TABLE spring_blog.user(id INT NOT NULL AUTO_INCREMENT,user_name VARCHAR ( 128 ) NOT NULL,password VARCHAR ( 128 ) NOT NULL,github_url VARCHAR ( 128 ) NULL,delete_flag TINYINT ( 4 ) NULL DEFAULT 0,create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now(),
PRIMARY KEY ( id ),
UNIQUE INDEX user_name_UNIQUE ( user_name ASC )) ENGINE INNODB DEFAULT
CHARACTER SET utf8mb4 COMMENT ⽤⼾表; 插入数据 INSERT INTO spring_blog.user (id, user_name, password, github_url, delete_flag, create_time, update_time) VALUES (1, 祁洋洋, d320f77068b94c09917527a01e66641237df2f24979a5640223d68eda19db72f, https://gitee.com/Bwindmill, 0, 2024-11-11 18:06:02, 2024-11-11 18:06:02);
INSERT INTO spring_blog.user (id, user_name, password, github_url, delete_flag, create_time, update_time) VALUES (2, lisi, 0f1aa87de7264681bedd1a93ec2a1c7e03f98725955d67127895a573aa54eeea, https://gitee.com/Bwindmill, 0, 2024-11-11 18:06:02, 2024-11-11 18:06:02);
INSERT INTO spring_blog.user (id, user_name, password, github_url, delete_flag, create_time, update_time) VALUES (3, wangwu, 9462b4c2bc2a400fae42215063b0da7a8afef7e4684de09de9158af4454a7066, https://gitee.com/Bwindmill, 0, 2024-11-11 18:06:02, 2024-11-11 18:06:02);
INSERT INTO spring_blog.user (id, user_name, password, github_url, delete_flag, create_time, update_time) VALUES (4, luliu, 809a42b7834c42bcbf0344112766947d3c8f106803baf19a0736febd045afe55, https://gitee.com/Bwindmill, 0, 2024-11-11 18:06:02, 2024-11-11 18:06:02);2.4创建并插入博客表的数据
drop table if exists spring_blog.blog;
CREATE TABLE spring_blog.blog (id INT NOT NULL AUTO_INCREMENT,title VARCHAR(200) NULL,content TEXT NULL,user_id INT(11) NULL,delete_flag TINYINT(4) NULL DEFAULT 0,create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now(),PRIMARY KEY (id))ENGINE InnoDB DEFAULT CHARSET utf8mb4 COMMENT 博客表; INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (1, 第⼀篇博客, 1111111, 1, 0, 2024-11-12 18:09:29, 2024-11-12 18:09:29);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (2, 代码测试, 你好我是测试的正文, 2, 1, 2024-11-12 18:09:29, 2024-11-12 18:09:29);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (3, 我是第三篇博客, 你好你好我是第三篇博客的正文, 2, 0, 2024-11-12 18:14:53, 2024-11-12 18:14:53);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (4, 这是我今天写的博客11/13, 我真的服了今天我太坏了了我大黑阿辉阿訇后哦ID除外反馈就问你打开几句话ID号呕吼后欧欧尼哦i就哦ID哦ijoin1io囧, 1, 0, 2024-11-13 21:31:54, 2024-11-13 21:31:54);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (5, 测试一下, ##在这里写下一篇博客
咋回事呀我回答我i啊好ID
#带娃地哦啊哦判定为, 1, 0, 2024-11-13 21:50:37, 2024-11-13 21:50:37);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (6, 今天是什么日子, #一、今天
##1.1今天是什么
今天是个好日子。好呀好日子。
##1.2今天能干什么
今天我吃饭了写了博客系统的好多内容。我还准备早点睡觉呢红红火火恍恍惚惚哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈, 1, 0, 2024-11-13 22:09:02, 2024-11-13 22:09:02);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (7, 今天的博客日记, ##一、这是我新发布的一篇博客
今天我要做的内容有很多。首先上完课。再利用课余时间好好的学习Java呀红红火火恍恍惚惚哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈, 1, 0, 2024-11-14 11:18:29, 2024-11-14 11:18:29);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (8, 哈达, ##在这里写下一篇博客
这是待删除博客, 1, 1, 2024-11-14 22:24:24, 2024-11-14 22:24:24);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (9, 这是我LiSi的文章, ##在这里写下一篇博客
这是我发布的文章希望大家支持!!!, 2, 0, 2024-11-16 14:02:19, 2024-11-16 14:02:19);
INSERT INTO spring_blog.blog (id, title, content, user_id, delete_flag, create_time, update_time) VALUES (10, 我是第三篇博客, 你好你好我是第三篇博客的正文, 2, 0, 2024-11-16 22:11:53, 2024-11-16 22:11:53);2.5查看我们创建的数据库以及数据表 博客中的数据太多了就不截图了。自此数据准备工作完成。 三、打prod版本的Jar包程序配置文件修改 实际工作中开发环境、测试环境以及生产环境的配置都是不一样的例如 MySQL 的用户名和密码。 我们可以针对不同的环境设置不同的配置文件。 3.1创建application-dev.yml文件 写入我们原本的配置文件 # 应用服务 WEB 访问端口
server:port: 1208spring:datasource:url: jdbc:mysql://127.0.0.1:3306/spring_blog?characterEncodingutf8useusername: rootpassword: 12345678driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:configuration:map-underscore-to-camel-case: true #配置驼峰⾃动转换 #user_id转userIdlog-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句mapper-locations: classpath:mapper/**Mapper.xml#设置⽇志⽂件的⽂件名
logging:file:name: spring-blog.log 3.2创建application-prod.yml文件 写入部署到linux环境中的配置文件 # 应用服务 WEB 访问端口
server:port: 1208spring:datasource:url: jdbc:mysql://127.0.0.1:3306/spring_blog?characterEncodingutf8useusername: rootpassword: Qyy2024!driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:configuration:map-underscore-to-camel-case: true #配置驼峰⾃动转换 #user_id转userId
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句mapper-locations: classpath:mapper/**Mapper.xml#设置⽇志⽂件的⽂件名
logging:file:name: spring-blog.log在pom.xml添加如下代码 3.3自定义配置pom.xml profilesprofileiddev/idproperties!--自定义配置--profile.namedev/profile.name/properties/profileprofileidprod/idproperties!--自定义配置--profile.nameprod/profile.name/properties/profile/profiles maven中上面会出现一个配置文件。 我们在原本的配置文件 3.4application.yml文件 中写入 spring:profiles:active: ${profile.name}
// active: profile.name 这样我们就可以勾选。便于我们引用不同配置文件了 我们打一个prod版本的jar包。 多平台文件配置 在多平台部署时可能需要为不同的操作系统或平台配置不同的文件。根据平台的不同配置文件的内容也需要做相应调整确保程序能够在所有目标平台上正确运行。 四、正式部署
4.1创建部署目录 我们将项目部署在 Production-deployment/spring_blog目录下面 4.2将jar包放到部署目录中 拖动jar包。到这个目录中由于我使用的是finalshell不支持拖拽方式将 .jar 文件从 Windows 本地环境传输到服务器。 我使用 SCP 从 Windows 上传 .jar 文件到 CentOS 服务器 下载并安装 WinSCP。 输入你的服务器 IP 地址、SSH 登录用户名、以及密码。连接到你的 CentOS 服务器。 然后我就可进行拖拽了 放置成功 4.3开放端口号
参考链接
Centos防火墙设置与端口开放的方法
如何还不行就
云服务器上看 安全组 开放1208端口
4.4启动项目
4.4.1通过 java -jar jar包全名非后台启动方式 这种方式当我们把启动的窗口关掉。进程也就被杀掉了。 示例
java -jar spring-blog-0.0.1-SNAPSHOT.jar 启动成功 不过 4.4.2 nohup .... 后台启动方式
完整命令
nohup java -jar spring-blog-0.0.1-SNAPSHOT.jar 这样启动之后。即便我们关掉启动窗口。服务依然是启动的 这样启动敲空格后是可以直接输入命令的。看错误日志也可以直接在这里看 检查日志输出 默认情况下nohup 会将日志输出到 nohup.out 文件。查看该文件内容 cat nohup.out如果内容过多使用 tail 命令查看最新的日志 tail -n 50 nohup.outeg
tail -100f spring-blog.log 查看下面100行日志 坑点 通过后台部署。如果 项目进行更新了。我们启动新的jar包。 我们以为更新部署成功。实际上么有。一定要通过 cat nohup.out看日志 这时候会发现 报错了。端口号已经被使用了。项目部署失败。 解决办法 1.杀死进程推荐 首先查看进程Id.如下图14723就是我们spring_blog系统的进程Id ps -ef|grep java 使用kill -9 杀掉进程 kill -9 14723 如上图进程已经被杀死。此时我们就可以发布新的jar包了 2.修改端口号 nohup java -jar spring-blog-0.0.1-SNAPSHOT.jar --server.port9090 不过此时我们就启动了两个程序了。 不过此时日志混在了一起。我们也可以进行指定日志。 4.5启动项目时遇到的问题
4.5.1要我将profile.name修改为${profile.name}
spring:profiles:active: profile.name
修改为
spring:profiles:active: ${profile.name}不过这样修改之后还是有点问题。因此我直接 spring:profiles:active: prod 自此项目终于启动成功 4.5.2无法访问 考虑原因 1.服务未启动 2.端口未开放 看服务是否启动的方法 1.通过命令 ps -ef|grep java ps -ef 拿到所有程序 grep java 查询进程里面有java的东西 如图并没有查询到我们的java程序。 这个查出来的只是grep命令。 然后我们启动服务再次查询 2.通过curl curl http://127.0.0.1:1208/blog_login.html 若能得到Html代码说明服务已经启动。那么就是端口号未开放了。只需要去开放端口号就行了 注意事项 1.在配置文件中 IP 地址依然是127.0.0.1 2.部署后打开项目的 IP 地址填云服务器的公网IP地址。也就是主机。 我的是 150.158.148.151 3.错误日志跟踪命令 tail -f spring.log | grep ERROR