(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{311:function(s,t,a){"use strict";a.r(t);var n=a(10),e=Object(n.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"安装文档"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装文档"}},[s._v("#")]),s._v(" 安装文档")]),s._v(" "),t("h2",{attrs:{id:"操作系统初始化"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#操作系统初始化"}},[s._v("#")]),s._v(" 操作系统初始化")]),s._v(" "),t("blockquote",[t("p",[s._v("当前安装方法适合操作系统：CentOS8，x86_64")])]),s._v(" "),t("h3",{attrs:{id:"_1-系统初始化操作"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-系统初始化操作"}},[s._v("#")]),s._v(" 1. 系统初始化操作")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 查看")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("uname")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-a")]),s._v(" // 查看操作系统\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 系统更新")]),s._v("\nyum update "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-y")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 关闭SELINUX")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/SELINUX/s/enforcing/disabled/'")]),s._v(" /etc/selinux/config\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 调大服务器所支持的最大文件句柄数（云服务器一般已经默认已经设置）")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"* hard nofile 65536"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/security/limits.conf\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"* soft nofile 65536"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/security/limits.conf\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 配置")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"vm.max_map_count=262144"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/sysctl.conf\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sysctl")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-p")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 安装基础工具")]),s._v("\nyum "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-y")]),s._v(" lrzsz "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("unzip")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("git")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" fontconfig\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使用阿里源，可以加快安装速度（如果使用anolis操作系统，跳过此步骤）")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mv")]),s._v(" /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-O")]),s._v(" /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo\n")])])]),t("h3",{attrs:{id:"_2-用户初始化操作"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-用户初始化操作"}},[s._v("#")]),s._v(" 2. 用户初始化操作")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 新增一个普通用户，系统应用都由这个普通用户来运行")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("useradd")]),s._v(" roncoo\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("passwd")]),s._v(" roncoo\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 用户密码自行管理")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置sudo权限")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/OPASSWD: ALL/a\\roncoo ALL=(ALL) NOPASSWD: ALL'")]),s._v(" /etc/sudoers\n")])])]),t("h2",{attrs:{id:"mysql-8-0的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mysql-8-0的安装"}},[s._v("#")]),s._v(" MySQL-8.0的安装")]),s._v(" "),t("h3",{attrs:{id:"_1-安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# mysql8.0")]),s._v("\nyum "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-y")]),s._v(" https://repo.mysql.com/mysql80-community-release-el8.rpm\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 安装mysql")]),s._v("\nyum "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-y")]),s._v(" mysql-community-server\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#安装完成之后，默认已设置开机启动。")]),s._v("\n")])])]),t("h3",{attrs:{id:"_2-配置"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/my.cnf "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n# 默认时区\ndefault-time_zone='+8:00'\n# 性能优化（若有单独是数据库服务器，推荐innodb_buffer_pool_size设置为系统内存的60%到80%）\ninnodb_buffer_pool_size=4G\ninnodb_log_file_size=256M\nmax_allowed_packet=64M\n# 关闭log-bin（8.0默认是开启的）\ndisable-log-bin\n# 设置身份认证插件（兼容低版本的认证方式）\ndefault_authentication_plugin=mysql_native_password\n# 最大连接数\nmax_connections=10240\n# 需要启用only_full_group_by SQL模式\nsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\nEOF")]),s._v("\n")])])]),t("h3",{attrs:{id:"_3-初始化"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-初始化"}},[s._v("#")]),s._v(" 3. 初始化")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start mysqld\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 查看初始化密码")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" /var/log/mysqld.log "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("|")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("grep")]),s._v(" password\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 初始化，按需进行确认即可（注意密码的强度，不满足无法设置密码）")]),s._v("\nmysql_secure_installation\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 登录设置授权（这里新增用户：roncoo，密码为：RonCoo.123）")]),s._v("\nmysql "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-uroot")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-p")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" create user roncoo@"),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'%'")]),s._v(" identified by "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'RonCoo.123'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" grant all on *.* to roncoo@"),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'%'")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" FLUSH PRIVILEGES"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("exit")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])])]),t("h3",{attrs:{id:"_4-说明"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_4-说明"}},[s._v("#")]),s._v(" 4. 说明")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start mysqld\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 关闭")]),s._v("\nsystemctl stop mysqld\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启")]),s._v("\nsystemctl restart mysqld\n\n配置文件位置：/etc/my.cnf\n软件安装位置：/var/lib/mysql\n应用日志位置：/var/log/mysqld.log\n")])])]),t("h2",{attrs:{id:"mongodb-7-0安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#mongodb-7-0安装"}},[s._v("#")]),s._v(" MongoDB-7.0安装")]),s._v(" "),t("h3",{attrs:{id:"_1-安装-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-2"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/yum.repos.d/mongodb-org.repo "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n[mngodb-org-7.0]\nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/\ngpgcheck=0\nenabled=1\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 安装")]),s._v("\nyum "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-y")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" mongodb-org\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#安装完成之后，默认已设置开机启动。")]),s._v("\n")])])]),t("h3",{attrs:{id:"_2-配置-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置-2"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# /etc/mongod.conf 配置文件")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/bindIp: 127.0.0.1/bindIp: 0.0.0.0/'")]),s._v(" /etc/mongod.conf\n")])])]),t("h3",{attrs:{id:"_3-初始化-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-初始化-2"}},[s._v("#")]),s._v(" 3. 初始化")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start mongod\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 登录（这里创建超级用户：admin，密码：RonCoo.123）")]),s._v("\nmongosh\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" use admin"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" db.createUser"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("user: "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"admin"')]),s._v(",pwd: "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"RonCoo.123"')]),s._v(",roles: "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"root"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 开启认证")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("vi")]),s._v(" /etc/mongod.conf\nsecurity:\n  authorization: enabled \n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("#注意缩进，参照其他的值来改，若是缩进不对，可能导致后面服务不能重启")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启，使认证生效")]),s._v("\nsystemctl restart mongod\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 登录")]),s._v("\nmongosh\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" use admin"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" db.auth"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"admin"')]),s._v(","),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"RonCoo.123"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 创建数据库并授权")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" use education"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" db.createUser"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("user: "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"roncoo"')]),s._v(",pwd: "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"RonCoo.123"')]),s._v(",roles: "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" role: "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"dbOwner"')]),s._v(", db: "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"education"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 删除用户必须由账号管理员来删，所以，切换到admin角色")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" use admin\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" db.auth"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"admin"')]),s._v(","),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"password"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),s._v(" db.system.users.remove"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("user:"),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"roncoo"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n")])])]),t("h3",{attrs:{id:"_4-说明-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_4-说明-2"}},[s._v("#")]),s._v(" 4. 说明")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start mongod\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 关闭")]),s._v("\nsystemctl stop mongod\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启")]),s._v("\nsystemctl restart mongod\n")])])]),t("h2",{attrs:{id:"redis-6-2-9的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#redis-6-2-9的安装"}},[s._v("#")]),s._v(" Redis-6.2.9的安装")]),s._v(" "),t("p",[t("a",{attrs:{href:"https://download.redis.io/releases/",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：https://download.redis.io/releases/"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：redis-6.2.9.tar.gz")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-3"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[s._v("yum "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-y")]),s._v(" gcc tcl\n\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" https://download.redis.io/releases/redis-6.2.9.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" zxvf redis-6.2.9.tar.gz "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" redis-6.2.9\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("make")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s._v("PREFIX")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/opt/redis\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 添加配置文件")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cp")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-r")]),s._v(" /opt/tools/redis-6.2.9/redis.conf /opt/redis/redis.conf\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 创建redis系统用户")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("useradd")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-r")]),s._v(" redis\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" redis:redis /opt/redis\n")])])]),t("h3",{attrs:{id:"_2-配置-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置-3"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置允许外网访问")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/bind 127.0.0.1/bind 0.0.0.0/'")]),s._v(" /opt/redis/redis.conf\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置密码（安全考虑，建议必须设置密码）")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/# requirepass foobared/requirepass RonCoo.123/'")]),s._v(" /opt/redis/redis.conf\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置用守护线程的方式启动")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/daemonize no/daemonize yes/'")]),s._v(" /opt/redis/redis.conf\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/top-writes-on-bgsave-error yes/top-writes-on-bgsave-error no/'")]),s._v(" /opt/redis/redis.conf\n\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/profile "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n# redis\nexport REDIS_HOME=/opt/redis\nexport PATH=${REDIS_HOME}/bin:${PATH}\nEOF")]),s._v("\n")])])]),t("h3",{attrs:{id:"_3-启动"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-启动"}},[s._v("#")]),s._v(" 3. 启动")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /usr/lib/systemd/system/redis.service "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n[Unit]\nDescription=Redis\nAfter=network.target\n\n[Service]\nType=forking\nUser=redis\nLimitNOFILE=65536\nLimitNPROC=65536\nPIDFILE=/var/run/redis.pid\nExecStart=/opt/redis/bin/redis-server /opt/redis/redis.conf\nExecRepload=/bin/kill -s HUP $MAINPID\nExecStop=/bin/kill -s QUIT $MAINPID\nPrivateTmp=true\n\n[Install]\nWantedBy=multi-user.target\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置开机启动")]),s._v("\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("enable")]),s._v(" redis\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start redis\n")])])]),t("h3",{attrs:{id:"_4-说明-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_4-说明-3"}},[s._v("#")]),s._v(" 4. 说明")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start redis\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 关闭")]),s._v("\nsystemctl stop redis\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启")]),s._v("\nsystemctl restart redis\n\n配置文件：/opt/redis/redis.conf\n")])])]),t("h2",{attrs:{id:"elasticsearch-8-11-4的安装-企培版不需要安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#elasticsearch-8-11-4的安装-企培版不需要安装"}},[s._v("#")]),s._v(" Elasticsearch-8.11.4的安装(企培版不需要安装)")]),s._v(" "),t("p",[t("a",{attrs:{href:"https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.4-linux-x86_64.tar.gz",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：https://www.elastic.co/cn/downloads/past-releases#elasticsearch"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：elasticsearch-8.11.4-linux-x86_64.tar.gz")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-4"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.4-linux-x86_64.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-zxvf")]),s._v(" elasticsearch-8.11.4-linux-x86_64.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mv")]),s._v(" /opt/tools/elasticsearch-8.11.4 /opt/elasticsearch\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 创建elastic系统用户")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("useradd")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-r")]),s._v(" elastic\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" elastic:elastic /opt/elasticsearch\n")])])]),t("h3",{attrs:{id:"_2-配置-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置-4"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 配置")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/#node.name: node-1/node.name: node-1/'")]),s._v(" /opt/elasticsearch/config/elasticsearch.yml\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/#network.host: 192.168.0.1/network.host: 0.0.0.0/'")]),s._v(" /opt/elasticsearch/config/elasticsearch.yml\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'cluster.initial_master_nodes: [\"node-1\"]'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/elasticsearch/config/elasticsearch.yml\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'xpack.security.enabled: false'")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/elasticsearch/config/elasticsearch.yml\n\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/profile "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n# elastic\nexport ES_JAVA_HOME=/opt/elasticsearch/jdk\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使配置立即生效")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("source")]),s._v(" /etc/profile\n")])])]),t("h3",{attrs:{id:"_3-启动-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-启动-2"}},[s._v("#")]),s._v(" 3. 启动")]),s._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /usr/lib/systemd/system/elasticsearch.service "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n[Unit]\nDescription=Elasticsearch\n\n[Service]\nUser=elastic\nLimitNOFILE=65536\nLimitNPROC=65536\nExecStart=/opt/elasticsearch/bin/elasticsearch\n\n[Install]\nWantedBy=multi-user.target\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置开机启动")]),s._v("\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("enable")]),s._v(" elasticsearch\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start elasticsearch\n")])])]),t("h3",{attrs:{id:"_4-说明-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_4-说明-4"}},[s._v("#")]),s._v(" 4. 说明")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start elasticsearch\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 关闭")]),s._v("\nsystemctl stop elasticsearch\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启")]),s._v("\nsystemctl restart elasticsearch\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 检测")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("curl")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-XGET")]),s._v(" http://localhost:9200/_cluster/health?pretty\n")])])]),t("h2",{attrs:{id:"tengine-3-1-0的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#tengine-3-1-0的安装"}},[s._v("#")]),s._v(" Tengine-3.1.0的安装")]),s._v(" "),t("p",[t("a",{attrs:{href:"http://tengine.taobao.org/download.html",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：http://tengine.taobao.org/download.html"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：tengine-3.1.0.tar.gz")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-5"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 安装依赖")]),s._v("\nyum "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-y")]),s._v(" gcc gcc-c++ autoconf automake "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("make")]),s._v(" pcre-devel openssl openssl-devel \n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 进入安装")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" http://tengine.taobao.org/download/tengine-3.1.0.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-zxvf")]),s._v(" tengine-3.1.0.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" tengine-3.1.0 "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" ./configure "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("--prefix")]),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v("/opt/nginx --with-http_v2_module\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("make")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("&&")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("make")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 存放独立域名配置(教培版)")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mkdir")]),s._v(" /opt/nginx/conf/education.d\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo:roncoo /opt/nginx/conf/education.d\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 存放独立域名配置(企培版)")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mkdir")]),s._v(" /opt/nginx/conf/enterprise.d\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo:roncoo /opt/nginx/conf/enterprise.d\n")])])]),t("h3",{attrs:{id:"_2-启动"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-启动"}},[s._v("#")]),s._v(" 2. 启动")]),s._v(" "),t("div",{staticClass:"language-bash extra-class"},[t("pre",{pre:!0,attrs:{class:"language-bash"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /usr/lib/systemd/system/nginx.service "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n[Unit]\nDescription=Nginx\nAfter=network.target\n\n[Service]\nType=forking\nLimitNOFILE=65536\nLimitNPROC=65536\nExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf -p /opt/nginx\nExecReload=/opt/nginx/sbin/nginx -s reload -c /opt/nginx/conf/nginx.conf -p /opt/nginx\nExecStop=/opt/nginx/sbin/nginx -s quit -c /opt/nginx/conf/nginx.conf -p /opt/nginx\nPrivateTmp=true\n\n[Install]\nWantedBy=multi-user.target\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置开机启动")]),s._v("\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("enable")]),s._v(" nginx\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start nginx\n")])])]),t("h3",{attrs:{id:"_3-配置nginx-conf"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-配置nginx-conf"}},[s._v("#")]),s._v(" 3. 配置nginx.conf")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 删除")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("rm")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-f")]),s._v(" /opt/nginx/conf/nginx.conf\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 新建")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nginx/conf/nginx.conf "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\nuser  root;\nworker_processes auto;\n\nevents {\n    worker_connections 1024;\n    accept_mutex on;\n    multi_accept on;\n    use epoll;\n}\n\nhttp {\n    include       mime.types;\n    default_type  application/octet-stream;\n\n    keepalive_timeout       60s;\n    client_max_body_size    1024m;\n\n    sendfile                on; \n    gzip                    on; \n    gzip_min_length         1024;\n    gzip_comp_level         2;\n    gzip_buffers            4 32k;\n    gzip_types              text/xml text/plain text/css text/javascript application/javascript application/json application/xml;\n\n    upstream eduweb {\n        server 127.0.0.1:3000;\n    }\n    upstream edugateway {\n        # (教培版)，按需保留\n        server 127.0.0.1:9900;\n        # (企培版)，按需保留\n        server 127.0.0.1:8800;\n    }\n    \n    include conf.d/*.conf;\n    # 存放独立域名配置(教培版)，按需保留\n    include education.d/*/*.conf;\n    # 存放独立域名配置(企培版)，按需保留\n    include enterprise.d/*/*.conf;\n}\nEOF")]),s._v("\n")])])]),t("h3",{attrs:{id:"_4-应用配置conf-d"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_4-应用配置conf-d"}},[s._v("#")]),s._v(" 4. 应用配置conf.d")]),s._v(" "),t("div",{staticClass:"language-sh extra-class"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 创建")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mkdir")]),s._v(" /opt/nginx/conf/conf.d\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 新建")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nginx/conf/conf.d/www.conf "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\nserver {\n    listen 80;\n    server_name localhost;\n    \n    #listen 443 ssl http2;\n    #ssl_certificate xxx.pem;\n    #ssl_certificate_key xxx.key;\n    #ssl_session_timeout 5m;\n    #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;\n    #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\n    #ssl_prefer_server_ciphers on;\n    \n    # nacos\n    location /nacos {\n       proxy_pass  http://127.0.0.1:8848;\n    }     \n    # job\n    location /job {\n       proxy_pass  http://127.0.0.1:9910;\n    } \n    # monitor\n    location /monitor {\n       proxy_pass  http://127.0.0.1:9920;\n       proxy_set_header Host $host;\n    } \n    # gateway\n    location /gateway/ {\n       proxy_pass http://edugateway/;\n       proxy_set_header Host  $http_host;\n       proxy_set_header X-Real-IP $remote_addr;\n       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\n    # boss\n    location /boss {\n        root html;\n        try_files $uri $uri/ /boss/index.html;\n        index    index.html;\n    }\n    # admin\n    location /admin {\n        root html;\n        try_files $uri $uri/ /admin/index.html;\n        index    index.html;\n    }\n    # crm\n    location /crm {\n        root html;\n        try_files $uri $uri/ /crm/index.html;\n        index    index.html;\n    }\n    # teacher\n    location /teacher {\n        root html;\n        try_files $uri $uri/ /teacher/index.html;\n        index    index.html;\n    }\n    # h5\n    location /h5 {\n        root html;\n        try_files $uri $uri/ /h5/index.html;\n        index    index.html;\n    }\n    # web\n    location / {\n      proxy_pass  http://eduweb;\n      proxy_set_header Host  $http_host;\n      proxy_set_header X-Real-IP $remote_addr;\n      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\n}\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 教培版专用")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nginx/conf/conf.d/edu.cnf "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n    # gateway\n    location /gateway/ {    \n       proxy_pass http://edugateway/;\n       proxy_set_header Host  $http_host;\n       proxy_set_header X-Real-IP $remote_addr;\n       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\n    # admin\n    location /admin {\n        root html;\n        try_files $uri $uri/ /admin/index.html;\n        index     index.html;\n    }\n    # teacher\n    location /teacher {\n        root html;\n        try_files $uri $uri/ /teacher/index.html;\n        index    index.html;\n    }\n    # h5\n    location /h5 {\n        root html;\n        try_files $uri $uri/ /h5/index.html;\n        index     index.html;\n    }\n    # web\n    location / {\n        proxy_pass http://eduweb;\n        proxy_set_header Host  $http_host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 企培版专用")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nginx/conf/conf.d/ent.cnf "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n    # gateway\n    location /gateway/ {    \n       proxy_pass http://edugateway/;\n       proxy_set_header Host  $http_host;\n       proxy_set_header X-Real-IP $remote_addr;\n       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\n    # crm\n    location /crm {\n        root html;\n        try_files $uri $uri/ /crm/index.html;\n        index     index.html;\n    }\n    # h5\n    location /h5 {\n        root html;\n        try_files $uri $uri/ /h5/index.html;\n        index     index.html;\n    }\n    # web\n    location / {\n        proxy_pass http://eduweb;\n        proxy_set_header Host  $http_host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 配置完成，要重启nginx才能生效。")]),s._v("\nsystemctl restart nginx\n")])])]),t("h3",{attrs:{id:"_5-说明"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_5-说明"}},[s._v("#")]),s._v(" 5. 说明")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start nginx\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 查看")]),s._v("\nsystemctl stop nginx\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启")]),s._v("\nsystemctl restart nginx\n")])])]),t("h2",{attrs:{id:"nodejs-20-14-0的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#nodejs-20-14-0的安装"}},[s._v("#")]),s._v(" Nodejs-20.14.0的安装")]),s._v(" "),t("p",[t("a",{attrs:{href:"https://nodejs.org/dist/",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：https://nodejs.org/dist/"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：node-v20.14.0-linux-x64.tar.gz（建议选择长期支持版本（大版本号为偶数）。）")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-6"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-6"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" https://nodejs.org/dist/v20.14.0/node-v20.14.0-linux-x64.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-xvf")]),s._v(" node-v20.14.0-linux-x64.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mv")]),s._v(" /opt/tools/node-v20.14.0-linux-x64 /opt/node\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo:roncoo /opt/node\n")])])]),t("h3",{attrs:{id:"_2-配置-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置-5"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/profile "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n# node\nexport NODE_HOME=/opt/node\nexport PATH=${NODE_HOME}/bin:${PATH}\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使配置立即生效")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("source")]),s._v(" /etc/profile\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 验证版本信息")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("node")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-v")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置软连接")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("ln")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-s")]),s._v(" /opt/node/bin/node /usr/local/bin/\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("ln")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-s")]),s._v(" /opt/node/bin/npm /usr/local/bin/\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 安装pm2")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("npm")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" pm2 "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-g")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("ln")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-s")]),s._v(" /opt/node/bin/pm2 /usr/local/bin/\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 安装yarn")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("npm")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("install")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-g")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("ln")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-s")]),s._v(" /opt/node/bin/yarn /usr/local/bin/\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 配置为淘宝源")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" config "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("set")]),s._v(" registry https://registry.npmmirror.com/\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("yarn")]),s._v(" config get registry\n")])])]),t("h2",{attrs:{id:"jdk-21的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#jdk-21的安装"}},[s._v("#")]),s._v(" JDK-21的安装")]),s._v(" "),t("p",[t("a",{attrs:{href:"https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：jdk-21.0.2_linux-x64_bin.tar.gz")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-7"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-7"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 上传到该目录下")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-zxvf")]),s._v(" jdk-21.0.2_linux-x64_bin.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mv")]),s._v(" jdk-21.0.2 /opt/java\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo:roncoo /opt/java\n")])])]),t("h3",{attrs:{id:"_2-配置-6"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置-6"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/profile "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n# java\nexport JAVA_HOME=/opt/java\nexport JRE_HOME=${JAVA_HOME}/jre\nexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib\nexport PATH=${JAVA_HOME}/bin:$PATH\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使配置立即生效")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("source")]),s._v(" /etc/profile\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 添加软连接")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("ln")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-s")]),s._v(" /opt/java/bin/java /usr/local/bin\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 验证版本信息")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("java")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-version")]),s._v("\n")])])]),t("h2",{attrs:{id:"maven-3-9-5的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#maven-3-9-5的安装"}},[s._v("#")]),s._v(" Maven-3.9.5的安装")]),s._v(" "),t("p",[t("a",{attrs:{href:"https://mirrors.tuna.tsinghua.edu.cn/apache/maven/",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：https://mirrors.tuna.tsinghua.edu.cn/apache/maven/"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：apache-maven-3.9.5-bin.tar.gz")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-8"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-8"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-zxvf")]),s._v(" apache-maven-3.9.5-bin.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mv")]),s._v(" apache-maven-3.9.5 /opt/maven\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo:roncoo /opt/maven\n")])])]),t("h3",{attrs:{id:"_2-配置-7"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置-7"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /etc/profile "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n# maven\nexport MAVEN_HOME=/opt/maven\nexport PATH=${MAVEN_HOME}/bin:${PATH}\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 使配置立即生效")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("source")]),s._v(" /etc/profile\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 验证版本信息")]),s._v("\nmvn "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-v")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 删除再重新添加")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("rm")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-f")]),s._v(" /opt/maven/conf/settings.xml\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 阿里云")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/maven/conf/settings.xml "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('\'EOF\'\n<?xml version="1.0" encoding="UTF-8"?>\n<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"\n          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">\n <mirrors>\n  <mirror>  \n    <id>aliyun</id>  \n    <name>aliyun maven</name>  \n    <url>https://maven.aliyun.com/repository/public</url>  \n    <mirrorOf>*</mirrorOf>          \n  </mirror>\n </mirrors>\n</settings>\nEOF')]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 华为云（若使用华为云服务器建议使用）")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/maven/conf/settings.xml "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('\'EOF\'\n<?xml version="1.0" encoding="UTF-8"?>\n<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"\n          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">\n <mirrors>\n   <mirror>\n     <id>huaweicloud</id>\n     <mirrorOf>*</mirrorOf>\n     <url>https://mirrors.huaweicloud.com/repository/maven/</url>\n   </mirror>\n </mirrors>\n</settings>\nEOF')]),s._v("\n")])])]),t("h2",{attrs:{id:"nacos-2-3-2的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#nacos-2-3-2的安装"}},[s._v("#")]),s._v(" Nacos-2.3.2的安装")]),s._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/alibaba/nacos/releases",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：https://github.com/alibaba/nacos/releases"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：nacos-server-2.3.2.tar.gz"),t("br"),s._v("\n特别说明：2.x的服务端也兼容1.4.x的客户端，建议使用最新版的服务端")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-9"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-9"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" https://github.com/alibaba/nacos/releases/download/2.3.2/nacos-server-2.3.2.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" zxvf nacos-server-2.3.2.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mv")]),s._v(" nacos /opt/nacos\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo:roncoo /opt/nacos\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置权限，避免导入配置没权限")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mkdir")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-p")]),s._v(" /work/Tomcat/localhost/nacos\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo:roncoo /work\n")])])]),t("h3",{attrs:{id:"_3-配置"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-配置"}},[s._v("#")]),s._v(" 3. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/server.tomcat.accesslog.enabled=true/server.tomcat.accesslog.enabled=false/'")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/nacos.core.auth.enabled=false/nacos.core.auth.enabled=true/'")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/nacos.core.auth.server.identity.key=/nacos.core.auth.server.identity.key=roncoo/'")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/nacos.core.auth.server.identity.value=/nacos.core.auth.server.identity.value=roncoo/'")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sed")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-i")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'s/nacos.core.auth.plugin.nacos.token.secret.key=/nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789/'")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"spring.datasource.platform=mysql"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"db.num=1"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"db.url.0=jdbc:mysql://127.0.0.1:3306/education_nacos?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&autoReconnect=true"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"db.user.0=roncoo"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nacos/conf/application.properties\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("echo")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"db.password.0=RonCoo.123"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/nacos/conf/application.properties\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 配置完成后，需要把SQL脚本导入数据库，SQL脚本位置：nacos/conf/mysql-schema.sql")]),s._v("\n")])])]),t("h3",{attrs:{id:"_3-启动-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-启动-3"}},[s._v("#")]),s._v(" 3. 启动")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /usr/lib/systemd/system/nacos.service "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n[Unit]\nDescription=Nacos\nAfter=network.target\n\n[Service]\nUser=roncoo\nType=forking\nExecStart=/opt/nacos/bin/startup.sh -m standalone\nExecStop=/opt/nacos/bin/shutdown.sh\nPrivateTmp=true\n\n[Install]\nWantedBy=multi-user.target\nEOF")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 注：-m standalone，表示单机模式启动，默认是集群模式启动")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置开机启动")]),s._v("\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("enable")]),s._v(" nacos\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start nacos\n")])])]),t("h3",{attrs:{id:"_5-说明-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_5-说明-2"}},[s._v("#")]),s._v(" 5. 说明")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start nacos\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 关闭")]),s._v("\nsystemctl stop nacos\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启")]),s._v("\nsystemctl restart nacos\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 访问地址：http://localhost:8848/nacos/，初始化的账号密码：nacos/nacos  ")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 登录控制台，可以直接导入提供的 nacos_config.zip，进行配置初始化，里面的配置按需修改")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 特别注意：修改nacos的密码，建议不要包含有@!等，否则在配置里面需要进行转义")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 特别说明：系统使用的是命名空间ID，不是命名空间名称，这里建议ID和名称设置为一致。")]),s._v("\n")])])]),t("h2",{attrs:{id:"seata-2-0-0的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#seata-2-0-0的安装"}},[s._v("#")]),s._v(" Seata-2.0.0的安装")]),s._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/seata/seata/releases",target:"_blank",rel:"noopener noreferrer"}},[s._v("下载地址：https://github.com/seata/seata/releases"),t("OutboundLink")],1)]),s._v(" "),t("blockquote",[t("p",[s._v("推荐版本：seata-server-2.0.0.tar.gz")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-10"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-10"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/tools\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" https://static.roncoos.com/education/seata-server-2.0.0.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" zxvf seata-server-2.0.0.tar.gz\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mv")]),s._v(" seata /opt/seata\n")])])]),t("h3",{attrs:{id:"_2-配置-8"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-配置-8"}},[s._v("#")]),s._v(" 2. 配置")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[s._v("修改对应的参数：seata/confapplication.yml\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 授权")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chown")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-R")]),s._v(" roncoo.roncoo /opt/seata\n")])])]),t("h3",{attrs:{id:"_3-启动-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_3-启动-4"}},[s._v("#")]),s._v(" 3. 启动")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /usr/lib/systemd/system/seata.service "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n[Unit]\nDescription=Seata\nAfter=network.target\n\n[Service]\nUser=roncoo\nExecStart=/opt/seata/bin/seata-server.sh\nType=forking\nWorkingDirectory=/opt/seata/bin\n\n[Install]\nWantedBy=multi-user.target\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置开机启动")]),s._v("\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("enable")]),s._v(" seata\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 创建日志目录(需要提前创建，否则启动会失败，权限属于roncoo)")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mkdir")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-p")]),s._v(" /home/roncoo/logs/seata\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start seata\n")])])]),t("h3",{attrs:{id:"_4-说明-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_4-说明-5"}},[s._v("#")]),s._v(" 4. 说明")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start seata\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 关闭")]),s._v("\nsystemctl stop seata\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 重启")]),s._v("\nsystemctl restart seata\n\n"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v(". 若需要集群，部署多个seata-server即可实现（原理：因为其注册到nacos，利用nacos实现集群）\n"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),s._v(". 若使用db模式，默认的数据库数据库驱动不适配MySQL8.0，需要将./seata/lib/jdbc下的驱动复制到./seata/lib\n"),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),s._v(". db模式下的脚本地址：https://github.com/seata/seata/tree/v2.0.0/script/server/db\n")])])]),t("h2",{attrs:{id:"job的安装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#job的安装"}},[s._v("#")]),s._v(" Job的安装")]),s._v(" "),t("blockquote",[t("p",[s._v("该应用的功能是提供定时任务服务，为单独的项目：roncoo-job")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-11"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-11"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 打包，需要进入到项目根目录执行该命令")]),s._v("\nmvn clean package\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 完成，上传target下的压缩文件到服务器，并解压到：/opt")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" zxvf job.tar.gz "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-C")]),s._v(" /opt/\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 修改config下的参数配置（按需修改），运行bin里面的脚本即可启动应用")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sh")]),s._v(" /opt/job/bin/job.sh\n")])])]),t("h2",{attrs:{id:"preview-选装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#preview-选装"}},[s._v("#")]),s._v(" Preview(选装)")]),s._v(" "),t("blockquote",[t("p",[s._v("该应用的功能是提供文档预览服务，为单独的项目：roncoo-preview")])]),s._v(" "),t("h3",{attrs:{id:"_1-安装-12"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-12"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 打包，需要进入到项目根目录执行该命令")]),s._v("\nmvn clean package\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 完成，上传target下的压缩文件到服务器，并解压到：/opt")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("tar")]),s._v(" zxvf preview.tar.gz "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-C")]),s._v(" /opt/\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 首次运行，需要先运行bin里面的初始化脚本 init.sh")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sh")]),s._v(" /opt/preview/bin/init.sh\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 修改config下的参数配置（按需修改），运行bin里面的脚本即可启动应用")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("sh")]),s._v(" /opt/preview/bin/priview.sh\n")])])]),t("h2",{attrs:{id:"minio安装-选装"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#minio安装-选装"}},[s._v("#")]),s._v(" MinIO安装(选装)")]),s._v(" "),t("h3",{attrs:{id:"_1-安装-13"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_1-安装-13"}},[s._v("#")]),s._v(" 1. 安装")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("mkdir")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-p")]),s._v(" /opt/minio\n"),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("cd")]),s._v(" /opt/minio\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("wget")]),s._v(" https://dl.min.io/server/minio/release/linux-amd64/minio\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("chmod")]),s._v(" +x minio\n\n"),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /opt/minio/minio.conf "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\nMINIO_ROOT_USER=f8468f81034b1761\nMINIO_ROOT_PASSWORD=f8468f81034b1761\nMINIO_VOLUMES=/opt/minio/data\nMINIO_OPTS=\"--console-address :9001\"\nEOF")]),s._v("\n")])])]),t("h3",{attrs:{id:"_2-启动-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#_2-启动-2"}},[s._v("#")]),s._v(" 2. 启动")]),s._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[s._v("cat")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">>")]),s._v(" /usr/lib/systemd/system/minio.service "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("<<")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'EOF'\n[Unit]\nDescription=MinIO\nAfter=network.target\n\n[Service]\nLimitNOFILE=65536\nLimitNPROC=65536\nEnvironmentFile=/opt/minio/minio.conf\nExecStart=/opt/minio/minio server $MINIO_VOLUMES $MINIO_OPTS\n\n[Install]\nWantedBy=multi-user.target\nEOF")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 设置开机启动")]),s._v("\nsystemctl "),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[s._v("enable")]),s._v(" minio\n\n"),t("span",{pre:!0,attrs:{class:"token comment"}},[s._v("# 启动")]),s._v("\nsystemctl start minio\n")])])])])}),[],!1,null,null,null);t.default=e.exports}}]);